gambar ffmpeg pipa diekstraksi dari video

8

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?

Birjolaxew
sumber
Coba-f png - | ...
Gyan
@Mulvya Ini menghasilkan kesalahan dengan [NULL @ 0x10e2860] Requested output format 'png' is not a suitable output format pipe:: Invalid argument.
Birjolaxew
2
Coba -f image2pipe -vcodec png - | .... PNG mungkin tidak berfungsi, jika demikian output akan menjadi MJPEG setelah menghapus vcodec.
Gyan
@Mulvya Itu memang berhasil. Terima kasih banyak :)
Birjolaxew

Jawaban:

7

ya ada!

tambahkan argumen -f image2pipe, dan tentukan nama file keluaran sebagai satu hypen ( -, dalam konteks ini artinya stdout), dan tentukan nama file input juga sebagai satu hypen ( -i -, dalam konteks ini artinya stdin) dan secara eksplisit menentukan format output (misalnya untuk png : -c:v png), di sini adalah contoh lengkap:

ffmpeg -i - -ss 00:00:3 -s 650x390 -vframes 1 -c:v png -f image2pipe -
hanshenrik
sumber