ffmpeg和“无法找到合适的输出”错误


17

我正在尝试将大型MKV转换为老式的AVI文件。

我正在尝试:

ffmpeg -i video.mkv -s -codec:v mpeg4 -bf 1 -b 2567k -mbd 2 -g 300 -flags cgop -acodec copy video.avi

但我明白了

[NULL @ 0x7fa0d901e600] Unable to find a suitable output format for 'mpeg4' mpeg4: Invalid argument

ffmpeg消息的长版...

ffmpeg version 2.1.3 Copyright (c) 2000-2013 the FFmpeg developers
  built on Feb  4 2014 17:53:32 with Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.1.3 --enable-shared     --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-     hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags=        --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
  libavutil      52. 48.101 / 52. 48.101
  libavcodec     55. 39.101 / 55. 39.101
  libavformat    55. 19.104 / 55. 19.104
  libavdevice    55.  5.100 / 55.  5.100
  libavfilter     3. 90.100 /  3. 90.100
  libavresample   1.  1.  0 /  1.  1.  0
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Input #0, matroska,webm, from ‘video.mkv':
  Metadata:
    creation_time   : 2011-05-11 09:25:47
  Duration: 00:49:01.35, start: 0.000000, bitrate: 2851 kb/s
    Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709), 1280x720, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s (default) (forced)
    Stream #0:2(eng): Subtitle: subrip
[NULL @ 0x7fa0d901e600] Unable to find a suitable output format for 'mpeg4' 
mpeg4: Invalid argument

知道发生了什么吗?

编辑:我打算在DivX Converter(在Mac和Windows上)在尝试将视频转码为DivX家庭影院配置文件的各个点失败后使用ffmpeg。我得到的最接近的是shlck的答案。它只会引发警告(而不是错误)。在任何情况下,我都无法在DVD播放器上播放视频(它会每10秒冻结约6秒钟)。如果您在尝试研究与DivX家庭影院配置文件兼容的视频的创建时发现了这个问题,则可以使用此字符串作为起点来找出问题所在,然后向SU发布新的后续问题:

ffmpeg -i video.mkv -s 720x406 -codec:v mpeg4 -bf 1 -b:v 2567k -mbd 2 -g 300 -flags cgop -sc_threshold 1000000000 -acodec copy video.avi

(最后我把旧的DVD播放器送走了)。


-s用于指定输出的大小。格式为-swxh,其中w和h为输出的宽度和高度。
Vineet Menon 2014年

谢谢,但是如果您阅读了我的编辑,或者我接受了slhck的回答和评论,您会发现这是第一件事得到纠正。
iceequal 2014年

是的 我看你编辑的问题有点晚了。
Vineet Menon 2014年

Answers:


14

您在-s那里有一个孤独的选择。它错过了它的论点。

您应该指定所需的大小,或者完全忽略它–否则它将无法-codec:v正确解释,并假定mpeg4是您的输出文件名。

另外,使用-b:v而不是仅仅使用-b它是模棱两可的。

ffmpeg -i video.mkv -s 1280x720 -codec:v mpeg4 -bf 1 -b:v 2567k -mbd 2 -g 300 -flags cgop -acodec copy video.avi

谢谢!我已经输入-s 720x406,但现在得到:[mpeg4 @ 0x7fc13a813800]无效的像素长宽比406/405,限制为255/255减小/ [mpeg4 @ 0x7fc13a813800]尚不支持带场景变化检测的gop,将阈值设置为1000000000(...)/打开输出流#0:0的编码器时出错-可能是不正确的参数,例如bit_rate,rate,宽度或高度/我使用的是DivX Converter应用为“家庭影院”建议的分辨率给定相同输入文件的配置文件(DivX转换器具有致命的错误)。任何想法从这里去ffffeg?
iceequal 2014年

(我还纠正了-b选项)
iceequal 2014年

-flags cgop如果不需要,请删除。或添加-sc_threshold 1000000000为选项。
slhck 2014年

-sc_threshold 1000000000允许ffmpeg至少对文件进行转码。对于尝试创建与DivX家庭影院配置文件兼容的视频的任何人,请参考上面我编辑过的问题(您需要做更多询问/研究)。
iceequal 2014年
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.