Saya dapat menggunakan perintah berikut untuk mengekstrak gambar dari video menggunakan ffmpeg, menyimpannya ke sistem file:
... | ffmpeg -i - -f image2 'img-%03d.png'
Saya ingin mem-pipe gambar-gambar ini ke aplikasi lain, daripada menyimpannya ke sistem file - bagaimana mereka dipisahkan dalam pipa itu tidak begitu penting, karena itu akan menjadi skrip NodeJS yang saya kontrol sendiri.
Berikut ini tidak berfungsi:
... | ffmpeg -i - -f image2 pipe: | ...
Kesalahan dengan
[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
Apakah ada cara untuk mengeluarkan gambar yang diekstraksi dari video menggunakan ffmpeg, tanpa menggunakan sistem file?
-f png - | ...
[NULL @ 0x10e2860] Requested output format 'png' is not a suitable output format pipe:: Invalid argument
.-f image2pipe -vcodec png - | ...
. PNG mungkin tidak berfungsi, jika demikian output akan menjadi MJPEG setelah menghapus vcodec.Jawaban:
ya ada!
tambahkan argumen
-f image2pipe
, dan tentukan nama file keluaran sebagai satu hypen (-
, dalam konteks ini artinyastdout
), dan tentukan nama file input juga sebagai satu hypen (-i -
, dalam konteks ini artinyastdin
) dan secara eksplisit menentukan format output (misalnya untuk png :-c:v png
), di sini adalah contoh lengkap:sumber