題 使用ffmpeg從png文件製作電影


我有277個800x600 png文件,文件名格式為island_sizes-CSH(II) - ###。png,其中###是一個以084開頭並以360結尾的數字。

我正在做

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

但它不起作用:

ffmpeg -f image2 -i island_sizes-CSH \(II \) -  *。png video.mpg -y
ffmpeg版本1.2.1版權所有(c)2000-2013 FFmpeg開發人員
  建於2013年5月10日15:14:14,gcc 4.4.6(GCC)20120305(Red Hat 4.4.6-4)
  配置: -  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-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --extra-cflags =' -  O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE = 2 -fexceptions  - fstack-protector --param = ssp-buffer-size = 4 -m64 -mtune = generic -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
  libswresample 0. 17.102 / 0.17.102
  libpostproc 52. 2.100 / 52. 2.100
輸入#0,image2,來自'island_sizes-CSH(II)-084.png':
  持續時間:00:00:00.04,開始:0.000000,比特率:N / A.
    流#0:0:視頻:png,rgba,800x600 [SAR 3937:3937 DAR 4:3],25 tbr,25 tbn,25 tbc
[png @ 0x1468c20] ff_frame_thread_encoder_init失敗
輸出#0,image2,到'island_sizes-CSH(II)-085.png':
    流#0:0:視頻:png,rgba,800x600 [SAR 1:1 DAR 4:3],q = 2-31,200 kb / s,90k tbn,25 tbc
輸出#1,image2,到'island_sizes-CSH(II)-086.png':
    流#1:0:視頻:png,rgba,800x600 [SAR 1:1 DAR 4:3],q = 2-31,200 kb / s,90k tbn,25 tbc
...
輸出#274,image2,到'island_sizes-CSH(II)-359.png':
    流#274:0:視頻:無,rgba,800x600 [SAR 1:1 DAR 4:3],q = 2-31,200 kb / s,90k tbn,25 tbc
輸出#275,image2,到'island_sizes-CSH(II)-360.png':
    流#275:0:視頻:無,rgba,800x600 [SAR 1:1 DAR 4:3],q = 2-31,200 kb / s,90k tbn,25 tbc
輸出#276,mpeg,到'video.mpg':
    流#276:0:視頻:無,yuv420p,800x600 [SAR 1:1 DAR 4:3],q = 2-31,200 kb / s,90k tbn,25 tbc
流映射:
  流#0:0  - >#0:0(png  - > png)
  流#0:0  - >#1:0(png  - > png)
...
  流#0:0  - >#274:0(png  - > png)
  流#0:0  - >#275:0(png  - > png)
  流#0:0  - >#276:0(png  - > mpeg1video)
打開輸出流#218的編碼器時出錯:0  - 可能是不正確的參數,如bit_rate,rate,width或height

9
2017-07-17 18:33


起源


從 man mencoder: mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4,類似於ffmpeg - Eddy_Em
@Eddy_Em它不相似 ffmpeg  - mencoder 遺憾的是,語法完全不同。 - slhck
mencoder為我工作!謝謝。老實說,我不關心我使用的是什麼程序 - 只是我得到了這部電影。 - rhombidodecahedron


答案:


這是將多個圖像作為輸入傳遞的錯誤語法 ffmpeg。請查看FFmpeg Wiki指南 製作視頻幻燈片 和 image2 分路器選項

您需要告訴它使用三位數作為序列號,並從84開始,即

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

一些進一步的提示

  • 作為視頻編解碼器的MPEG-1不是最佳的,並且在高文件大小時會給您帶來不良品質。除非您想要兼容舊設備或計算機(或沒有任何編解碼器的Windows XP),否則請將其劃分並使用MPEG-4 Part 10編碼器(H.264),例如 libx264

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

    有關x264選項的教程(如何更改質量等),請檢查 x264編碼指南

  • PNG文件使用RGB像素格式,普通視頻編解碼器不支持。使用MPEG-1並不重要,但是使用MPEG-4編解碼器​​就可以了 ffmpeg 會自動將像素格式轉換為非子採樣的YUV。在這種情況下,您需要將其翻譯為 色度子採樣格式 例如YUV 4:2:0,否則您的視頻可能無法在大多數應用程序中播放:

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

23
2017-07-17 18:47



您。我喜歡你。 - rhombidodecahedron