FFMPEG:根据输入视频设置输出分辨率和比特率。

7
我正在处理具有不同宽高比的用户视频。似乎FFMPEG仅允许您指定固定分辨率。我希望输出分辨率适合输入分辨率。同样地,我想让FFMPEG根据输入视频智能设置输出比特率:显然,它不应该比输入大。
我可以通过以下方式获取视频属性:
ffmpeg -i example.flv

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

基本上,我有一个类似于Youtube的问题:垃圾数据输入,应该输出相对均匀的质量。


你是否正在寻找一个可以将属性以易于解析的格式输出的脚本? - unutbu
那将是一个不错的开始。我不信任自己的解析,因为输出可能会在意外的边缘情况下发生变化。 - Jegschemesch
4个回答

3
我知道这是一个非常老的问题,但我想为它增加我的两分钱。
首先,使用ffmpeg获取视频信息会产生丑陋的输出。尝试使用ffprobe(与ffmpeg捆绑在一起)代替。您可以添加选项,如-print_format json -pretty,以获得漂亮的JSON输出信息,这样更容易解析。
此外,请查看以下文章:http://blog.superuser.com/2012/02/24/ffmpeg-the-ultimate-video-and-audio-manipulation-tool/。虽然有点过时,但也应该有所帮助。

2

有人名叫ahaslam可能已经写了一个短小的bash脚本来解决你的问题。点击此链接查看。


我认为这个脚本是另一回事。它计算比特率以适应某些文件大小。 - Ondra Žižka

1

1

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

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


1
你可以将这些信息作为“一半”评论添加到DaveParillo的答案中,并将其作为“一半”编辑以修复你的问题。除非这实际上是回答你的问题(因为我在这里不太明白你的意思),否则我仍然建议你执行前两个操作,保留此答案,根据新问题进行修正,并接受它。 - cregox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接