mpeg-2库提取视频时长

时间:2012-07-23 15:14:28

标签: python video metadata mpeg

我最近冒险处理与音频和视频相关的编码,而且我对这两种编码都知之甚少。

碰巧我现在有一个处理mpeg-2视频的项目。是否有可用的python库来提取mpeg-2视频本身的持续时间?

2 个答案:

答案 0 :(得分:1)

我不知道任何纯python实现。但也许opencv绑定适合你:

import cv
cvcapture = cv.CaptureFromFile("movie.mpg")
cv.GetCaptureProperty(cvcapture,cv.CV_CAP_PROP_FRAME_COUNT)

否则,你可以使用pyffmpeg。注意:根据我的经验,帧数通常不是很准确。 Opencv 2.6运行得很好,但更早的版本有时只是垃圾。

编辑:啊,对不起我的错误:这只给你帧数。持续时间:将其与帧速率相乘:

cv.GetCaptureProperty(cvcapture,cv.CV_CAP_PROP_FPS)

答案 1 :(得分:1)

除opencv或ffmpeg之外的另一个选择可能是gstreamer:

import gst
from gst.pbutils import Discoverer

d = Discoverer(5000000000)
vid_info = d.discover_uri("file://<path>") # needs to be a full path
duration = vid_info.get_duration()

# convert to seconds
duration / gst.SECOND

但是,此解决方案随机崩溃(每100个文件左右)与当前的gstreamer版本(在Ubuntu 12.04上)。也许你需要一些gstreamer插件来使用mpg-2;我目前不知道哪些。

我还在开发一个或多或少的大型媒体项目,该项目应该能够处理大量的编解码器和容器,而我们使用的每个库或多或少都是混乱(错误的值或不稳定)。也许那里有一些专门的mpg库。

哦,VLC正在使用ffmpeg;因此,如果您不允许使用ffmpeg,也可能也不允许使用VLC。