【问题标题】:ffmpeg video encoding strategy for preventing "inflating" of low quality videos用于防止低质量视频“膨胀”的ffmpeg视频编码策略
【发布时间】:2011-03-11 16:47:56
【问题描述】:

我们正在尝试建立一个基于 php 的视频分享网站,允许用户上传自己的内容。

我们需要将所有这些视频转换为中等质量的 mp4 视频文件,以便最终通过 FlowPlayer 进行流式传输。

我们的代码是这样的(flv 的例子):

system("ffmpeg -i $vidPath -pass 1 -ab 64k -ar 44100 -ac 1 -vcodec flv -b 1500k -cmp 3 -subcmp 3 -mbd 2 $flvPath");

问题在于,这会将任何类型的 1 分钟视频转换为 10 MB 文件。如果它是一个高质量的 1 分钟视频,它会被转换为一个 10 MB 的文件——这很棒。但是,如果它是一个低质量的视频,比如说只有 2 MB,它仍然会被转换为一个 10 MB 的文件!!

我应该采用什么策略/方法,以便上传的视频在大小上是“上限”,但相同长度的质量较低的视频不会“膨胀”到相同的大小!

【问题讨论】:

  • 嗨@Steve,感谢您的接受。我很好奇,您最终使用了哪些命令行选项?
  • 我问了一个类似的问题:stackoverflow.com/questions/5502654/…,也许一些答案可以提供帮助。

标签: php video ffmpeg video-encoding


【解决方案1】:

您似乎正在使用-b 标志来强制设置比特率。当您使用-minrate-maxrate 标志as listed in the documentation 而不是设置特定比特率时会发生什么?

另一个有趣的选项是-fs,它设置了最大文件大小。如果您可以在编码之前确定视频的长度,您就可以根据该长度计算出合适的上限。

【讨论】:

    猜你喜欢
    • 2011-04-03
    • 2021-10-27
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多