FFMPEG:根据输入视频设置输出res和比特率

时间:2009-10-17 13:55:06

标签: video ffmpeg

我正在处理具有不同宽高比的用户视频。似乎FFMPEG只允许您指定固定的分辨率。我希望输出res适合输入res。同样,我希望FFMPEG能够根据输入视频智能地设置输出比特率:显然它不应该大于输入。

我可以使用

获取视频的属性
ffmpeg -i example.flv

但这需要对输出进行一些难看的解析,所以我想知道FFMPEG或其他工具是否有更直接的设施。

基本上,我遇到了Youtube问题:废话进来了,合理的质量应该会出现。

4 个答案:

答案 0 :(得分:3)

我知道这是一个非常古老的问题,但我想为我的价值增加2美分。

首先,使用ffmpeg获取视频信息确实会产生难看的输出。尝试使用ffprobe(与ffmpeg捆绑)。您可以添加-print_format json -pretty之类的选项来获取信息的良好JSON输出,这更容易解析。

此外,请查看以下文章:http://blog.superuser.com/2012/02/24/ffmpeg-the-ultimate-video-and-audio-manipulation-tool/ 它也有点过时但也应该有所帮助。

答案 1 :(得分:2)

名为ahaslam的人可能已经写了short bash script来解决您的问题。

答案 2 :(得分:1)

ffmpeg有一个库接口 - 我对此一无所知,但也许您可以使用它直接将信息传递到您的代码中?

http://www.inb.uni-luebeck.de/~boehme/using_libavcodec.html

答案 3 :(得分:1)

使用脚本似乎是我问的问题的正确答案,但我应该提到我正在使用PandaStream。我担心因为PandaStream你指定了一个固定的输出res,但显然它有逻辑,使得输入视频受到这个分辨率的限制,例如对于输出res 480x270,4:3视频将以360x270编码。

这似乎是一个很好的妥协。只需将Panda设置为输出16:9的分辨率然后16:10和4:3的视频将在大多数情况下正常显示。