我有几个视频容器文件,其中包含各种编解码器中的音频和视频。现在,我想从Python脚本检查容器,以了解哪个编解码器用于音频+视频。这是在linux盒子上,所以如果有必要我可以使用所有工具。
我认为也许gstreamer可以帮助我,但我无法找到一个可以帮助我的API。
有什么想法吗?我也对任何建议持开放态度,只要是免费软件就不需要gstreamer :-) FS
答案 0 :(得分:9)
ffprobe -show_format -show_streams -loglevel quiet -print_format json YOUR_FILE
只需使用subprocess.check_output调用它,您就可以获得媒体文件的漂亮JSON描述。如果需要它从stdin中获取数据,请用管道替换YOUR_FILE:0。
答案 1 :(得分:3)
尝试下载ffmpeg源并查看其命令行程序的源代码。我过去曾经破解过类似的公用事业。我没有发布我的解决方案因为ffmpeg喜欢更改他们的API,所以我的旧代码不太可能用当前版本编译。您需要做足够的工作来创建编解码器上下文,您可以检查它以获得所需的内容。
其他一些选择:
MediaInfo:http://mediainfo.sourceforge.net/en
GSpot(仅限Windows):http://www.headbands.com/gspot/
编辑:
http://code.google.com/p/pyffmpeg/可能有你想要的东西(我自己没有用过它)。
答案 2 :(得分:1)
您可以在Gstreamer中使用decodebin2。请查看TAE代码示例。