首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提取视频时长的mpeg-2库

提取视频时长的mpeg-2库
EN

Stack Overflow用户
提问于 2012-07-23 23:14:28
回答 2查看 3.3K关注 0票数 0

我最近冒险尝试处理与音频和视频相关的编码,但我对它们都知之甚少。

碰巧我现在有一个处理mpeg-2视频的项目。有没有什么python库可以用来提取mpeg-2视频本身的时长?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-24 00:12:11

我不知道任何纯python实现。但也许opencv绑定对您有效:

代码语言:javascript
复制
import cv
cvcapture = cv.CaptureFromFile("movie.mpg")
cv.GetCaptureProperty(cvcapture,cv.CV_CAP_PROP_FRAME_COUNT)

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

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

代码语言:javascript
复制
cv.GetCaptureProperty(cvcapture,cv.CV_CAP_PROP_FPS)
票数 1
EN

Stack Overflow用户

发布于 2012-07-24 01:52:41

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

代码语言:javascript
复制
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

然而,这个解决方案与当前的gstreamer版本(在Ubuntu 12.04上)随机崩溃(大约每100个文件)。也许你需要一些gstreamer插件来处理mpg-2;我现在不知道是哪一个。

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

哦,VLC使用的是ffmpeg;所以如果你不被允许使用ffmpeg,你可能也不能使用VLC。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11615384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档