ffmpeg:Image2 =>打开编码器时出错

时间:2012-11-22 08:09:49

标签: ffmpeg

我收到以下错误ffmpeg。

打开输出流#0的编码器时出错:0 - 可能是不正确的参数,如bit_rate,rate,width或height

ffmpeg -f image2 -i %05d.jpg -vcodec libx264 foo.mp4

我很确定我之前使用过这个确切的命令,并且一切都很好。这是我的终端输出。任何帮助将不胜感激。

$ ffmpeg -f image2 -i %05d.jpg -vcodec libx264 foo.mp4
ffmpeg version 1.0 Copyright (c) 2000-2012 the FFmpeg developers
  built on Nov 22 2012 17:59:05 with Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
  configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-libtheora --enable-libschroedinger --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libspeex --enable-libfreetype --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/clang --arch=x86_64 --enable-yasm --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid
  libavutil      51. 73.101 / 51. 73.101

  libavcodec     54. 59.100 / 54. 59.100

  libavformat    54. 29.104 / 54. 29.104

  libavdevice    54.  2.101 / 54.  2.101

  libavfilter     3. 17.100 /  3. 17.100

  libswscale      2.  1.101 /  2.  1.101

  libswresample   0. 15.100 /  0. 15.100

  libpostproc    52.  0.100 / 52.  0.100

Input #0, image2, from '%05d.jpg':
  Duration: 00:00:04.44, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj420p, 1201x900 [SAR 1:1 DAR 1201:900], 25 fps, 25 tbr, 25 tbn, 25 tbc
[libx264 @ 0x7fab0881aa00] width not divisible by 2 (1201x900)
Output #0, mp4, to 'foo.mp4':
    Stream #0:0: Video: h264, yuvj420p, 1201x900 [SAR 1:1 DAR 1201:900], q=-1--1, 90k tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg -> libx264)
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

2 个答案:

答案 0 :(得分:6)

您必须裁剪输入图像,以便将得到的宽度和高度除以2

裁剪滤镜: -vf "crop=in_w-1:in_h"

$ ffmpeg -f image2 -i %05d.jpg -vf "crop=in_w-1:in_h" -vcodec libx264 foo.mp4

<强> UPD

我们可以为一般情况编写公式,这导致偶数方

$ ffmpeg -f image2 -i %05d.jpg -vf "crop=((in_w/2)*2):((in_h/2)*2)" -vcodec libx264 foo.mp4

答案 1 :(得分:0)

一个对我有用的解决方案是使用

-vf scale=1920:1080

作为输出视频之前的一个选项,即

ffmpeg -y -loop 1 -i "input.png" -c:v libx264 -t 5 -pix_fmt yuv420p -vf scale=1920:1080 out.mp4

它可以自动正确调整图像大小,尽管我从未测试过分辨率大于1920:1080(TBD)时会发生什么。