【问题标题】:Error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height为输出流 #0.0 打开编码器时出错 - 可能是不正确的参数,例如 bit_rate、rate、width 或 height
【发布时间】:2012-12-14 10:39:49
【问题描述】:

我正在使用此命令通过 FFMPEG 将 avi、mov、m4v 视频文件转换为 flv 格式

/usr/local/bin/ffmpeg -i '/home/public_html/files/video_1355440448.m4v' -s '640x360' -sameq -ab '64k' -ar '44100' -f 'flv' -y /home/public_html/files/video_1355440448.flv

[flv @ 0x68b1a80] requested bitrate is too low
Output #0, flv, to '/home/files/1355472099-50cadce349290.flv':
    Stream #0.0: Video: flv, yuv420p, 640x360, q=2-31, pass 2, 200 kb/s, 90k tbn, 25 tbc
    Stream #0.1: Audio: adpcm_swf, 44100 Hz, 2 channels, s16, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height
-------------------------------
RESULT
-------------------------------
Execute error. Output for file "/home/public_html/files/video_1355472099.avi" was found, but the file contained no data. Please check the available codecs compiled with FFmpeg can support this type of conversion. You can check the encode decode availability by inspecting the output array from PHPVideoToolkit::getFFmpegInfo().

但是如果我手动使用这个命令,那么它就可以工作了

/usr/local/bin/ffmpeg -i '/home/public_html/files/video_1355440448.m4v' -s '640x360' -sameq -ab '64k' -ar '44100' -f 'flv' -y /home/public_html/files/video_1355440448.flv

【问题讨论】:

  • 您肯定已经按照错误消息中的建议进行操作:" 请检查使用 FFmpeg 编译的可用编解码器是否支持这种类型的转换。您可以通过检查编码解码可用性来检查PHPVideoToolkit::getFFmpegInfo() 的输出数组。” - 与您的问题分享结果。
  • 另外,您能否确定哪一部分是错误的:“打开输出流#0.0 的编码器时出错 - 可能是不正确的参数,例如比特率、速率、宽度或高度”我>?你能把也许变成一个确定的事实吗?
  • 这里有同样的错误。我有 2 个进程使用相同的 ffmpeg 命令。问题是 cron 作业重叠。

标签: ffmpeg


【解决方案1】:

我也遇到了同样的问题

- requested bitrate is too low

刚刚通过降低比特率解决了这个问题

by adding -b:a 32k

【讨论】:

    【解决方案2】:

    由于尺寸限制,我遇到了类似的问题。原始图像大小很奇怪(宽度=1343),这意味着当我尝试使用 -s 指定新大小时,any 舍入错误会导致问题。确保新的图像尺寸可以具有完全相同的纵横比!

    【讨论】:

      【解决方案3】:
      1. 这是因为您有两个流,输出将被编码然后调整大小,请查看您的输出消息:

        Stream #0.0 -> #0.0
        Stream #0.1 -> #0.1
        

        ...你使用adpcm_swf音频和yuv420p视频

        答案很简单,你需要把copy作为你的音频编解码器……

        查看我的视频 mpeg4、yuv420p 和音频 ac3 示例...

        ffmpeg -i input.mkv -vf scale=720:-1 -acodec copy -threads 12 output.mkv
        

        这将更改第一个大小 = 720,纵横比 = -1(未知)。您还需要使用:

        -acodec copy -threads 12
        

        如果不使用它,您将遇到一个错误。 例如:当我使用它时,输出的编码消息显示了这个并且效果很好:

        [h624 @ 0x874e4a0] missing picture in access unit93 bitrate=1034.4kbits/s    
        Last message repeated 1163 times5974kB time=53.47 bitrate= 915.3kbits/s 
        
      2. 你需要使用flv格式的文件,像这样:

        ffmpeg -i input.mp4 -c:v libx264 -crf 19 output.flv
        

      【讨论】:

        【解决方案4】:

        您收到一条错误消息

        [flv @ 0x68b1a80] requested bitrate is too low
        

        您需要将比特率更改为有效。如果你使用不同的编解码器会更好

        -acodec libmp3lame
        

        并删除选项-sameq。此选项并不意味着“相同的质量”。实际上意味着“相同的量化器”!

        【讨论】:

        • 只是尝试删除选项-sameq
        • 我用的是ffmpeg版本的SVN-r26402稳定与否
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-16
        • 1970-01-01
        • 2019-02-27
        • 2015-05-06
        • 2012-10-02
        • 1970-01-01
        相关资源
        最近更新 更多