Python:检测视频容器中使用的编解码器

7 投票
3 回答
8203 浏览
提问于 2025-04-16 02:07

我有几个视频容器文件,这些文件里面包含了不同编码格式的音频和视频。现在我想用一个Python脚本来检查这些容器,看看音频和视频分别用了什么编码格式。我的电脑是Linux系统,所以如果需要的话,我有很多工具可以使用。

我想也许gstreamer可以帮我,但我找不到合适的API来实现这个功能。

有没有什么好主意?我也欢迎其他建议,只要是免费的软件就行 :-)

3 个回答

1

你可以在Gstreamer中使用decodebin2。可以看看这个链接 TAE,里面有一些代码示例。

12
ffprobe -show_format -show_streams -loglevel quiet -print_format json YOUR_FILE

只要用subprocess.check_output来调用这个,你就能得到一个漂亮的JSON格式的媒体文件描述。如果你需要从标准输入获取数据,把YOUR_FILE替换成pipe:0就可以了。

ffprobe是ffmpeg的一部分。

3

试着下载ffmpeg的源代码,看看他们命令行程序的代码。我以前也做过类似的工具。我不分享我的解决方案,因为ffmpeg的接口经常变动,所以我以前的代码可能在现在的版本上无法运行。你需要做一些工作来创建编解码器上下文,这样你就可以查看到你需要的信息。

还有一些其他的选择:


编辑:

http://code.google.com/p/pyffmpeg/ 可能有你需要的东西(我自己没有用过)。

撰写回答