[更新:] 是的,这是可能的,现在大约 20 个月后。请参阅下面的 Update3![/更新]
这真的不可能吗?我所能找到的只是调用 FFmpeg(或其他软件)的变体。我当前的解决方案如下所示,但为了可移植性,我真正想要的是一个纯 Python 的解决方案,它不需要用户安装额外的软件。
毕竟,我可以使用 PyQt 的 Phonon 轻松播放视频,但我不能简单地获取视频的尺寸或持续时间之类的信息?
我的解决方案使用 ffmpy ( http://ffmpy.readthedocs.io/en/latest/ffmpy.html ),它是 FFmpeg 和 FFprobe ( http://trac.ffmpeg.org/wiki/FFprobeTips )的包装器。比其他产品更流畅,但它仍然需要额外的 FFmpeg 安装。
import ffmpy, subprocess, json
ffprobe = ffmpy.FFprobe(global_options="-loglevel quiet -sexagesimal -of json -show_entries stream=width,height,duration -show_entries format=duration -select_streams v:0", inputs={"myvideo.mp4": None})
print("ffprobe.cmd:", ffprobe.cmd) # printout the resulting ffprobe shell command
stdout, stderr = ffprobe.run(stderr=subprocess.PIPE, stdout=subprocess.PIPE)
# std* is byte sequence, but json in Python 3.5.2 requires str
ff0string = str(stdout,'utf-8')
ffinfo = json.loads(ff0string)
print(json.dumps(ffinfo, indent=4)) …Run Code Online (Sandbox Code Playgroud) 我有一个项目,将需要能够知道时间的视频文件(如.mp4,.mov,.mxf等)开始(例如,当按下记录),并在视频文件纪元以来的秒数结束.
到目前为止,我一直在做的是找到File Modified时间并将其用作端点,然后减去持续时间以找到开头.这在某些情况下效果很好但是看起来有些相机并没有以线性可预测的方式准确地写/修改文件,所以有时候视频文件的开始/结束时间重叠,显然你不能在同时.
是否有一些其他方法或元数据我可以使用ffprobepython中的say (或替代)来准确地确定视频何时开始以及何时结束?
我已经从Coursera.org下载了一堆视频,并将它们存储在一个特定的文件夹中。在一个特定的文件夹中有很多单独的视频(Coursera将一个演讲分成多个短视频)。我想拥有一个Python脚本,该脚本可提供特定目录中所有视频的总长度。视频文件为.mp4格式。
我需要知道使用python 3.3的mp4文件的持续时间.我搜索并试图用酶,原子这样做,但我找不到获得这些的方法.
谢谢你的时间.