我最近冒险进入处理音频和视频编码有关,我对他们也都没有所知有限。
它发生,我有,现在是处理MPEG-2视频的项目。 是否有任何Python库,现有在那里提取的MPEG-2视频本身的持续时间?
我最近冒险进入处理音频和视频编码有关,我对他们也都没有所知有限。
它发生,我有,现在是处理MPEG-2视频的项目。 是否有任何Python库,现有在那里提取的MPEG-2视频本身的持续时间?
我不知道任何纯Python实现。 但也许OpenCV的绑定为你工作:
import cv
cvcapture = cv.CaptureFromFile("movie.mpg")
cv.GetCaptureProperty(cvcapture,cv.CV_CAP_PROP_FRAME_COUNT)
否则,马爷您可以使用pyffmpeg。 请注意:这是我的经验,帧计数往往不是很准确。 OpenCV的2.6作品非常好,但ealier版本有时会只是垃圾。
编辑:啊,对不起我的错误:这给你仅帧计数。 对于持续时间:与帧速率乘以这个:
cv.GetCaptureProperty(cvcapture,cv.CV_CAP_PROP_FPS)
除了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
然而,这种解决随机crashs(每100文件或左右)与当前版本gstreamer的(在Ubuntu 12.04)。 也许你需要一些的GStreamer插件与MPG-2的工作; 我目前不知道哪些。
我也工作的一个或大或小的媒体项目,该项目应该能够处理大范围的编解码器和容器,我们使用的每个库或多或少是一团糟(错误的价值观或不稳定)的。 也许有那么一些专门MPG库在那里。
哦,VLC是使用ffmpeg的; 所以如果你不能使用你的ffmpeg也许也不允许使用VLC了。