Menggunakan ffmpeg untuk membuat film dari file png

11

Saya memiliki 277 800x600 file png dengan nama file dengan format island_sizes-CSH (II) - ###. Png di mana ### adalah angka yang dimulai dengan 084 dan berakhir pada 360.

Aku melakukan

ffmpeg -i island_sizes-CSH\(II\)-*.png output.mpg -y

tetapi tidak berhasil:

ffmpeg -f image2 -i island_sizes-CSH \ (II \) - *. png video.mpg -y
ffmpeg versi 1.2.1 Hak cipta (c) 2000-2013 para pengembang FFmpeg
  dibangun pada 10 Mei 2013 15:14:14 dengan gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4)
  konfigurasi: --prefix = / usr --libdir = / usr / lib64 --shlibdir = / usr / lib64 --mandir = / usr / share / man --enable-shared --enable-runtime-cpudetect --enable- gpl --enable-version3 --enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab --enable-vdpau --disable-avisynth --enable-frei0r --enable-libopencv --enable- libdc1394 --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopencore-amrnb --enable-libopencore-amrwbenable-libopenjpeg --enable-librtmp --enable-librtmp --enable-libspmp --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --extra-cflags = '- O2 -g -pipe -Wall -Wp, -D_FORTIFY_SOURCE = 2 -feksepsi - 2 fstack-protector --param = ssp-buffer-size = 4 -m64 -mtune = generik -fPIC '--disable-stripping
  libavutil 52. 18.100 / 52. 18.100
  libavcodec 54. 92.100 / 54. 92.100
  libavformat 54. 63.104 / 54. 63.104
  libavdevice 54. 3.103 / 54. 3.103
  libavfilter 3. 42.103 / 3. 42.103
  libswscale 2. 2.100 / 2. 2.100
  contoh lib kami 0.17.102 / 0.17.102
  libpostproc 52. 2.100 / 52. 2.100
Masukan # 0, image2, dari 'island_sizes-CSH (II) -084.png':
  Durasi: 00: 00: 00,04, mulai: 0,000000, bitrate: N / A
    Streaming # 0: 0: Video: png, rgba, 800x600 [SAR 3937: 3937 DAR 4: 3], 25 tbr, 25 tbn, 25 tbc
[png @ 0x1468c20] ff_frame_thread_encoder_init gagal
Output # 0, image2, ke 'island_sizes-CSH (II) -085.png':
    Streaming # 0: 0: Video: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Output # 1, image2, ke 'island_sizes-CSH (II) -086.png':
    Streaming # 1: 0: Video: png, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
...
Output # 274, image2, ke 'island_sizes-CSH (II) -359.png':
    Streaming # 274: 0: Video: tidak ada, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Output # 275, image2, ke 'island_sizes-CSH (II) -360.png':
    Streaming # 275: 0: Video: tidak ada, rgba, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Output # 276, mpeg, ke 'video.mpg':
    Streaming # 276: 0: Video: tidak ada, yuv420p, 800x600 [SAR 1: 1 DAR 4: 3], q = 2-31, 200 kb / s, 90k tbn, 25 tbc
Pemetaan aliran:
  Streaming # 0: 0 -> # 0: 0 (png -> png)
  Streaming # 0: 0 -> # 1: 0 (png -> png)
...
  Streaming # 0: 0 -> # 274: 0 (png -> png)
  Streaming # 0: 0 -> # 275: 0 (png -> png)
  Streaming # 0: 0 -> # 276: 0 (png -> mpeg1video)
Kesalahan saat membuka encoder untuk aliran keluaran # 218: 0 - mungkin parameter yang salah seperti bit_rate, rate, lebar atau tinggi
rhombidodecahedron
sumber
Dari man mencoder: mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4, sama untuk ffmpeg
Eddy_Em
1
@ Eddy_Em Ini tidak serupa untuk ffmpeg- mencodersayangnya, memiliki sintaks yang sama sekali berbeda.
slhck
1
mencoder bekerja untukku! Terima kasih. Sejujurnya saya tidak peduli program apa yang saya gunakan - hanya saja saya mendapatkan filmnya.
rhombidodecahedron

Jawaban:

23

Ini adalah sintaks yang salah untuk melewatkan beberapa gambar sebagai input ffmpeg. Silakan lihat panduan Wiki FFmpeg tentang membuat tayangan slide video dan image2opsi demuxer .

Anda perlu mengatakannya untuk menggunakan tiga digit untuk nomor urut, dan mulai dari 84, yaitu

ffmpeg -start_number 84 -i island_sizes-CSH\(II\)-%03d.png output.mpg

Beberapa tips lebih lanjut:

  • MPEG-1 sebagai codec video kurang optimal dan memberikan kualitas buruk pada ukuran file yang tinggi. Kecuali Anda menginginkan kompatibilitas untuk perangkat atau komputer lama (atau Windows XP tanpa codec), goreskan itu dan gunakan enkoder MPEG-4 Part 10 (H.264), seperti libx264:

    ffmpeg -i … -c:v libx264 out.mp4
    

    Untuk tutorial tentang opsi x264 (cara mengubah kualitas dll.) Periksa panduan penyandian x264 .

  • File PNG menggunakan format piksel RGB, yang tidak didukung dalam codec video normal. Dengan MPEG-1 itu tidak masalah, tetapi dengan codec MPEG-4 itu akan, karena ffmpegakan secara otomatis mengkonversi format piksel ke YUV non-subsampled. Dalam hal ini, Anda perlu menerjemahkan ini ke format subsampel kroma seperti YUV 4: 2: 0, jika tidak, video Anda mungkin tidak dapat diputar di sebagian besar aplikasi:

    ffmpeg -i … -c:v libx264 -pix_fmt yuv420p out.mp4
    
slhck
sumber
Kamu. Aku suka kamu.
rhombidodecahedron