Saya berhasil menangkap tangkapan layar setiap 15 detik dengan perintah di bawah ini, tetapi saya perlu menghubungkan gambar ke tempat di mana video diambil.
% D memberi saya bilangan bulat, tetapi apakah ada variabel yang sama, filter, atau selain itu untuk memasukkan atau entah bagaimana menangkap cap waktu gambar dalam nama file output?
c:\ffmpeg\bin>ffmpeg -i c:\files\video.mp4 -vf fps=1/15 c:\images\image_%d.png";
Output saat ini adalah:
c:\images\image1.png
c:\images\image2.png
c:\images\image3.png
...
c:\images\image999.png
Output yang diinginkan adalah sesuatu seperti:
c:\images\image_00-00-00.png // Capture at start of video
c:\images\image_00-00-15.png // Capture at 00:00:15
c:\images\image_00-00-30.png // Capture at 00:00:30
c:\images\image_00-00-45.png // Capture at 00:00:45
c:\images\image_00-01-00.png // Capture at 00:01:00
...
c:\images\image_01-25-15.png // Last capture
Jawaban:
Seperti yang ditulis beberapa orang, mungkin tidak ada pilihan untuk itu
ffmpeg
perintah, yang dapat melakukan apa yang Anda inginkan. Di mesin linux saya sarankan Anda menggunakan skrip berikutAnda dapat menyebutnya di direktori dengan gambar sebagai
dimana
NNN
adalah jumlah total gambar (saya berasumsi bahwa Anda mulai penomoran dengan 0 bukan 1, tidak sulit).Seperti yang Anda lihat, saya mengandalkan perintah linux
date
, yang mampu mengubah detik menjadi jam.Karena Anda tampaknya menggunakan mesin Windows, ada beberapa opsi, bagaimana Anda dapat menggunakan skrip ini.
Tulis ulang menjadi file batch Windows. Ada sebuah topik di sini , yang membahas cara menggunakan perintah yang mirip dengan
date
di Windows.Memasang cygwin dan jalankan skrip di atas dari baris perintah cygwin
Gunakan mandiri bash command line untuk menjalankan skrip di atas.
sumber