使用ffmpeg从png文件制作电影


11

我有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
来自'island_sizes-CSH(II)-084.png'的输入#0,image2:
  时长: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

来自man mencodermencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4,类似于ffmpeg
Eddy_Em 2013年

1
@Eddy_Em相似之处在于ffmpegmencoder语法完全不同。
slhck

1
mencoder为我工作!谢谢。老实说,我不在乎我使用什么程序-只是我得到了电影。
rhombidodecahedron

Answers:


23

这是将多个图像作为输入传递给的错误语法ffmpeg。请看看FFmpeg的维基指南创建视频幻灯片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
    

您。我喜欢你。
rhombidodecahedron
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.