我正在处理具有不同纵横比的用户视频。似乎 FFMPEG 只允许您指定一个固定的分辨率。我希望输出 res 适合输入 res。同样,我希望 FFMPEG 根据输入视频智能地设置输出比特率:显然它不应该比输入大。
我可以通过以下方式获取视频的属性,
ffmpeg -i example.flv
但这需要对输出进行一些难看的解析,所以我想知道 FFMPEG 或其他工具是否有更直接的工具。
基本上,我遇到了 Youtube 问题:废话进来了,应该出来的质量相当均匀。
我知道这是一个非常古老的问题,但我想为它的价值加上我的 2 美分。
首先,ffmpeg
用于获取视频信息确实会产生丑陋的输出。尝试使用ffprobe
(与 捆绑在一起ffmpeg
) 代替。您可以添加一些选项,例如-print_format json -pretty
获得漂亮的 JSON 信息输出,这更容易解析。
此外,请查看以下文章: http: //blog.superuser.com/2012/02/24/ffmpeg-the-ultimate-video-and-audio-manipulation-tool/ 它也有点过时但应该有所帮助也是。
一个名叫 ahaslam 的人可能已经编写了一个简短的 bash 脚本来解决您的问题。
ffmpeg
有一个库接口——我对此一无所知,但也许你可以用它来将信息直接放入你的代码中?
使用脚本似乎是我提出的问题的正确答案,但我应该提到我正在使用 PandaStream。我很担心,因为 PandaStream 让你指定了一个固定的输出分辨率,但显然它的逻辑使得输入视频被限制在这个分辨率,例如对于输出分辨率 480x270,4:3 视频将被编码为 360x270。
这似乎是一个很好的妥协。只需将 Panda 设置为输出 16:9 分辨率,然后 16:10 和 4:3 视频就可以在大多数情况下正常输出。