immagini di pipe ffmpeg estratte dal video


8

Posso usare il seguente comando per estrarre immagini da un video usando ffmpeg, salvandole nel filesystem:

... | ffmpeg -i - -f image2 'img-%03d.png'

Vorrei reindirizzare queste immagini a un'altra applicazione, piuttosto che salvarle nel filesystem: il modo in cui sono separate nella pipe è di scarsa importanza, poiché sarà uno script NodeJS che mi controllo.

Quanto segue non funziona:

... | ffmpeg -i - -f image2 pipe: | ...

Errore con

[image2 @ 0xe1cfc0] Could not get frame filename number 2 from pattern 'pipe:' (either set updatefirst or use a pattern like %03d within the filename pattern)
av_interleaved_write_frame(): Invalid argument

Esiste un modo per eseguire il pipe delle immagini estratte da un video utilizzando ffmpeg, senza utilizzare il filesystem?


Prova-f png - | ...
Gyan

@Mulvya Questo si traduce in un errore con [NULL @ 0x10e2860] Requested output format 'png' is not a suitable output format pipe:: Invalid argument.
Birjolaxew,

2
Prova -f image2pipe -vcodec png - | .... PNG potrebbe non funzionare, in tal caso l'output sarà MJPEG dopo aver rimosso vcodec.
Gyan

@Mulvya Ha funzionato davvero. Grazie mille :)
Birjolaxew,

Risposte:


7

si C'è!

aggiungi l'argomento -f image2pipee specifica il nome del file di output come singolo hypen ( -, in questo contesto significa stdout), e specifica il nome del file di input anche come singolo hypen ( -i -, in questo contesto significa stdin) e specifica esplicitamente il formato di output (ad es. per png :) -c:v png, ecco un esempio completo:

ffmpeg -i - -ss 00:00:3 -s 650x390 -vframes 1 -c:v png -f image2pipe -
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.