2

我正在尝试将各种文件类型转换为 mp4 以使用 ffmpeg 显示,但我不断收到错误消息:

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

另一个看起来很重要的部分是:

[libx264 @ 0x93caef0] 检测到损坏的 ffmpeg 默认设置

[libx264 @ 0x93caef0] 使用编码预设(例如 -vpre 介质)

[libx264 @ 0x93caef0] 预设用法:-vpre -vpre

[libx264 @ 0x93caef0] 速度预设列在 x264 --help

[libx264 @ 0x93caef0] 配置文件是可选的;x264 默认为高

我正在运行的最新代码是:

ffmpeg -i source -s 320x240 -r 30000/1001 -b 200k -bt 240k -vcodec libx264 -coder 0 -bf 0 -refs 1 -flags2 -wpred-dct8x8 -level 30 -maxrate 10M -bufsize 10M -acodec libfaac -ac 2 -ar 48000 -ab 192k 目的地

我见过其他一些人遇到这个问题,但他们的修复由于某种原因没有奏效。

以防万一:最终这将在 php 中使用,尽管我试图通过 putty 让它首先工作

编辑:: 这是所要求的全部内容(使用 wmv,已测试 wmv 和 flv):

     ~ >> ffmpeg -i path.wmv -s 320x240 -r 30000/1001 -b 200k -r 29.97 -bt 240k -vcodec libx264 -coder 0 -bf 0 -refs 1 -flags2 -wpred-dct8x8 -level 30 -maxrate 10M -bufsize 10M -acodec libfaac -ac 2 -ar 48000 -ab 192k path.mp4
FFmpeg version SVN-r26076, Copyright (c) 2000-2011 the FFmpeg developers
  built on Aug 28 2012 17:55:47 with gcc 4.1.2 20080704 (Red Hat 4.1.2-52)
  configuration: --enable-version3 --enable-gpl --enable-nonfree --enable-shared --enable-postproc --enable-avfilter --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvpx --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --disable-ffplay --disable-indevs --disable-outdevs --disable-demuxer=v4l --disable-demuxer=v4l2 --disable-mmx
  libavutil     50.36. 0 / 50.36. 0
  libavcore      0.16. 1 /  0.16. 1
  libavcodec    52.108. 0 / 52.108. 0
  libavformat   52.93. 0 / 52.93. 0
  libavdevice   52. 2. 3 / 52. 2. 3
  libavfilter    1.74. 0 /  1.74. 0
  libswscale     0.12. 0 /  0.12. 0
  libpostproc   51. 2. 0 / 51. 2. 0

Seems stream 1 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 29.97 (30000/1001)
Input #0, asf, from 'path.wmv':
  Metadata:
    SfOriginalFPS   : 299
    WMFSDKVersion   : 11.0.6001.7000
    WMFSDKNeeded    : 0.0.0.0000
    IsVBR           : 0
    title           : Wildlife in HD
    artist          :
    copyright       : © 2008 Microsoft Corporation
    comment         : Footage: Small World Productions, Inc; Tourism New Zealand | Producer: Gary F. Spradling | Music: Steve Ball
  Duration: 00:00:30.09, start: 8.000000, bitrate: 6977 kb/s
    Stream #0.0(eng): Audio: wmav2, 44100 Hz, 2 channels, s16, 192 kb/s
    Stream #0.1(eng): Video: vc1, yuv420p, 1280x720, 5942 kb/s, 29.97 tbr, 1k tbn, 1k tbc
File 'path.mp4' already exists. Overwrite ? [y/N] y
[buffer @ 0x9ce9eb0] w:1280 h:720 pixfmt:yuv420p
[scale @ 0x9ce8f70] w:1280 h:720 fmt:yuv420p -> w:320 h:240 fmt:yuv420p flags:0x4
[libx264 @ 0x9ce9ef0] broken ffmpeg default settings detected
[libx264 @ 0x9ce9ef0] use an encoding preset (e.g. -vpre medium)
[libx264 @ 0x9ce9ef0] preset usage: -vpre <speed> -vpre <profile>
[libx264 @ 0x9ce9ef0] speed presets are listed in x264 --help
[libx264 @ 0x9ce9ef0] profile is optional; x264 defaults to high
Output #0, mp4, to 'path.mp4':
    Stream #0.0(eng): Video: libx264, yuv420p, 320x240, q=2-31, 200 kb/s, 90k tbn, 29.97 tbc
    Stream #0.1(eng): Audio: libfaac, 48000 Hz, 2 channels, s16, 192 kb/s
Stream mapping:
  Stream #0.1 -> #0.0
  Stream #0.0 -> #0.1
Error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height

谢谢你的帮助

4

1 回答 1

3

声明每个 libx264 选项都已折旧。如控制台输出所示,请改用编码预设。有关更多信息和一些最新示例,请参阅FFmpeg 和 x264 编码指南FFmpeg:终极视频和音频操作工具。另请注意,-bt它已与 libx264“断开连接”,因此它对您没有任何作用。

其次,你的 ffmpeg 是旧的。FFmpeg 使用 Git 而不是 SVN,并且自 r26076 以来已经有数千次额外的提交(截至目前大约 19202 次)和错误修复。有关编译说明,请参阅在 CentOS 上编译 FFmpeg,或参阅FFmpeg 下载页面以获取一些静态构建的链接。

于 2012-10-11T22:36:22.583 回答