2012-10-26 13 views
6

m budowania aplikacji z node.js, pomyślnie przesłany film ale muszę wygenerować miniaturkę wideo dla niego, obecnie używam węzła exec do excute polecenia systemowego ffmpeg zrobić miniaturkęjak wygenerować miniaturę wideo w pliku node.js?

exec("C:/ffmpeg/bin/ffmpeg -i Video/" + Name + " -ss 00:01:00.00 -r 1 -an -vframes 1 -f mjpeg Video/" + Name + ".jpg") 

ten kod pochodzi z samouczka z http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-resumable-video-uploade-in-node-js/

powyższy kod nie wygenerowanie pliku jpg, ale jej nie miniaturę ale zrzut ekranu wideo, zastanawiam się czy jest jakiś inny sposób, aby generować miniatury wideo, czyli jak exec z ffmpeg polecenie, aby zrobić prawdziwy thumbanil (zmiana rozmiaru), a ja wolę plik PNG, proszę o pomoc!

Odpowiedz

1

Zmień rozmiar, dodając opcję -s widthxheight do swojego polecenia.

+0

dobrze to działa, ale jest to jedyny sposób, aby to zrobić, to znaczy czy naprawdę trzeba używać exec, czy istnieje moduł węzeł obsługiwać ten problem – paynestrike

1

Jest to moduł węzeł: video-thumb

To w zasadzie tylko owija połączenia do Exec FFmpeg

8

Reference to GitHub fluent-ffmpeg project.

Powtarzając przykład z original StackOverflow answer:

var proc = new ffmpeg('/path/to/your_movie.avi') 
    .takeScreenshots({ 
     count: 1, 
     timemarks: [ '600' ] // number of seconds 
    }, '/path/to/thumbnail/folder', function(err) { 
    console.log('screenshots were saved') 
    }); 
+0

co jest 'liczyć: 1 'tutaj ?? – vineet

+0

powołując się na dokumentację: "count: określa liczbę generowanych miniaturek. Podczas korzystania z tej opcji, miniatury są generowane w regularnych odstępach czasu w filmie (na przykład, gdy żądają 3 miniatur, przy 25%, 50% i 75% wideo length) .licznik jest ignorowany, gdy określone są znaczniki czasu lub znaczniki czasu. " – Risadinha

+0

czy /path/to/your_movie.avi może być adresem URL? – Andrea

0

Zamiast polecam korzystania thumbsupply. Oprócz zapewnienia miniatur, buforuje je, aby znacznie poprawić wydajność.

npm install --save thumbsuppply 

Po zainstalowaniu modułu można go używać w następujący sposób.

const thumbsupply = require('thumbsupply')("com.example.application"); 

thumbsupply.generateThumbnail('some-video.mp4') 
.then(thumb => { 
    // serve thumbnail 
}) 
Powiązane problemy