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

问题描述:

我有几个视频容器文件,其中包含各种编解码器中的音频和视频。现在我想从Python脚本中检查容器,以了解哪个编解码器用于音频+视频。这是在Linux机器上,所以我有必要的所有工具。Python:检测视频容器中使用的编解码器

我想也许gstreamer可以帮助我,但我无法找到一个可以帮助我的API。

任何想法?我也打开任何建议,只要它是免费软件,不需要成为gstreamer :-) fs

尝试下载ffmpeg源代码并查看其命令行程序的源代码。我过去曾经篡改过类似的公用事业。我没有发布我的解决方案,因为ffmpeg喜欢更改他们的API,所以我的旧代码不太可能用当前版本进行编译。您需要做足够的工作来创建编解码器上下文,您可以检查它以获取所需的内容。

其他一些备选方案:


编辑:

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

+0

这意味着没有可以返回该信息的库吗? – 2010-07-31 14:23:06

+0

我看着pyffmpeg,但我无法弄清楚如何获得我想要的信息。它也不会在我的Mac上进行编译而没有从邮件列表中大量修补,甚至当我试图用它打开一个文件时,它只是给我一个总线错误10。 – 2012-02-04 01:19:13

您可以在Gstreamer中使用decodebin2。查看TAE查看代码示例。

+0

感谢您的指针,看起来像这样做几乎我所需要的... – 2010-08-05 06:54:59

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

只需使用subprocess.check_output调用此代码,就可以获得媒体文件的美丽JSON描述。如果你需要它从stdin中获取数据,用pipe替换YOUR_FILE:0。

ffprobe附带ffmpeg。