在正常回放的情况下,我正在尝试提取视频文件(例如,包含电影的.mkv文件)的普遍比特率,采样间隔在1-10秒之间。就像您在vlc中看到的那样,在统计数据窗口中回放文件。
有人能提出最好的方法来引导这样一个分析器的编码吗?是否有一个库可以为人们所知道的这些信息提供API?可能是用于、ffmpeg、或类似工具的Python包装器,它处理视频文件,从而提取此类统计信息。
我真正想要的是一个CSV格式文件,其中包含秒偏移量和在该偏移量处的平均或实际比特率。
更新:
我构建了pyffmpeg并编写了以下代码:
import pyffmpeg
reader = pyffmpeg.FFMpegReader(False)
reader.open("/home/mark/Videos/BBB.m2ts", pyffmpeg.TS_VIDEO)
tracks=reader.get_tracks()
# Called for each frame
def obs(f):
pass
tracks[0].set_observer(obs)
reader.run()但是,在回调中观察帧信息(f)似乎没有给我任何挂钩来计算每秒的比特率。事实上,pyffmpeg中的比特率计算贯穿整个文件(文件大小/持续时间),因此库中的处理非常肤浅。显然,它的重点是提取I-帧和其他帧/GOP的具体工作。
发布于 2010-10-05 18:53:47
你应该可以用gstreamer做这件事。http://pygstdocs.berlios.de/pygst-tutorial/seeking.html有一个简单媒体播放器的例子。它叫
pos_int = self.player.query_position(gst.FORMAT_TIME, None)[0]周期性的。你所要做的就是第二次用gst.FORMAT_BYTES打电话给gst.FORMAT_BYTES,做一些简单的数学,然后瞧!比特率和时间。
发布于 2010-10-05 12:21:06
就像这样:
http://code.google.com/p/pyffmpeg/
http://pymedia.org/
https://stackoverflow.com/questions/3863432
复制相似问题