Saya ingin membuat video timelapse singkat menggunakan ffmpeg di bawah ubuntu 12,04 LTS. Saya memiliki folder yang berisi semua gambar dengan nama DSC_0000.jpg DSC_0001.jpg dan seterusnya. Saya menemukan pertanyaan ini ffmpeg: membuat video dari gambar dan saya mencoba menjalankan perintah yang sama seperti yang disebutkan di sana:
ffmpeg -i DSC_%d.jpg -vcodec mpeg4 timelapse.avi
dan gagal dengan
DSC_% d.jpg: Tidak ada file atau direktori seperti itu
Saya juga sudah mencoba
ffmpeg -i DSC_%04d.jpg -vcodec mpeg4 timelapse.avi
dan gagal dengan kesalahan yang sama
Dan juga untuk beberapa alasan ffmpeg saya tidak mengerti opsi -start_number , jika saya jalankan
ffmpeg -start_number 0 -i DSC_%d.jpg -vcodec mpeg4 timelapse.avi
Saya mendapatkan kesalahan ini:
Opsi tidak dikenal 'start_number'
Gagal menetapkan nilai '0' untuk opsi 'start_number'
Saya sangat menghargai bantuan apa pun
UPD1: Saya mencoba perintah kedua lagi dan sekarang untuk beberapa alasan itu berhasil. Tetapi file video outputnya sedikit aneh: Ini dimulai secara normal, tetapi kemudian kualitasnya semakin buruk dengan setiap frame. Dan menjadi mengerikan di akhir video. Dan sebagai hasilnya, file video sangat kecil (hanya 1,2 Mb, sedangkan masing-masing dari 46 frame adalah 900 kb) Tapi opsi -start_number masih tidak berfungsi. Ini adalah hasil lengkapnya:
$ ffmpeg -i DSC_%04d.jpg -vcodec mpeg4 timelapse.avi
ffmpeg version 0.10.12-7:0.10.12-1~precise1 Copyright (c) 2000-2014 the FFmpeg developers
built on Apr 26 2014 09:49:36 with gcc 4.6.3
configuration: --arch=amd64 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.12-1~precise1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
libavutil 51. 35.100 / 51. 35.100
libavcodec 53. 61.100 / 53. 61.100
libavformat 53. 32.100 / 53. 32.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 61.100 / 2. 61.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 6.100 / 0. 6.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, image2, from 'DSC_%04d.jpg':
Duration: 00:00:01.84, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj422p, 2304x1536 [SAR 300:300 DAR 3:2], 25 fps, 25 tbr, 25 tbn, 25 tbc
File 'timelapse.avi' already exists. Overwrite ? [y/N] y
Incompatible pixel format 'yuvj422p' for codec 'mpeg4', auto-selecting format 'yuv420p'
[buffer @ 0x7134e0] w:2304 h:1536 pixfmt:yuvj422p tb:1/1000000 sar:300/300 sws_param:
[buffersink @ 0x70bbe0] auto-inserting filter 'auto-inserted scale 0' between the filter 'src' and the filter 'out'
[scale @ 0x6f7a20] w:2304 h:1536 fmt:yuvj422p -> w:2304 h:1536 fmt:yuv420p flags:0x4
Output #0, avi, to 'timelapse.avi':
Metadata:
ISFT : Lavf53.32.100
Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 2304x1536 [SAR 1:1 DAR 3:2], q=2-31, 200 kb/s, 25 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg -> mpeg4)
Press [q] to stop, [?] for help
frame= 46 fps= 17 q=31.0 Lsize= 1143kB time=00:00:01.84 bitrate=5090.2kbits/s
video:1137kB audio:0kB global headers:0kB muxing overhead 0.591912%
roman@Z500i5:~/Camera/Thunder/video$ ffmpeg -start_number 0 -i DSC_%04d.jpg -vcodec mpeg4 timelapse.avi
ffmpeg version 0.10.12-7:0.10.12-1~precise1 Copyright (c) 2000-2014 the FFmpeg developers
built on Apr 26 2014 09:49:36 with gcc 4.6.3
configuration: --arch=amd64 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.12-1~precise1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
libavutil 51. 35.100 / 51. 35.100
libavcodec 53. 61.100 / 53. 61.100
libavformat 53. 32.100 / 53. 32.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 61.100 / 2. 61.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 6.100 / 0. 6.100
libpostproc 52. 0.100 / 52. 0.100
Unrecognized option 'start_number'
Failed to set value '0' for option 'start_number'
Ffmpeg saya diinstal dari ppa ini: https://launchpad.net/~jon-severinsson/+archive/ffmpeg
Output dari ffmpeg dari repo ubuntu standar hanya dua baris terakhir:
Unrecognized option 'start_number'
Failed to set value '0' for option 'start_number'
UPD2: Lihat jawabannya di bawah
ffmpeg
output konsol lengkap . Saya menduga Anda menggunakan "ffmpeg
" palsu dari garpu yang mungkin tidak mendukung-start_number
opsi. Output konsol akan mengkonfirmasi ini.-crf n
mana n adalah angka dari 1 (tertinggi kualitas / kompresi paling sedikit) ke 35 (ish) (kualitas sampah, kompatibel dengan netscape navigator 1.0). -Crf 20 akan memberi Anda sekitar encoding kualitas DVD. -mulai angka mungkin berlebihan jika foto Anda mulai dari 0.Jawaban:
Akhirnya saya menemukan solusi, tetapi tanpa ffmpeg. Perintah ini melakukan apa yang saya inginkan:
Tampaknya sedikit rumit, tetapi itu berhasil :)
sumber