【发布时间】:2019-04-08 05:28:47
【问题描述】:
我想从指定目录中的每个视频文件中提取视频时长元数据,然后查看总时长。
我需要从多达数千个视频中提取数据。在 Windows 中,当在资源管理器中选择它们并进入详细信息时,我可以手动查看许多文件的总持续时间。对于 1500 个 mp4 文件,计算和查看总时间大约需要 20 秒。它比我当前使用FFprobe 迭代时得到的要快得多。
How fast I am currently getting the result with FFprobe.
for filename in dirFiles:
print(subprocess.check_output(['ffprobe', '-i', filename, '-show_entries','format=duration', '-sexagesimal' ,'-v', 'quiet', '-of', 'csv=%s' % ("p=0")]))
更快的方法是什么?
【问题讨论】:
-
请edit 提出您的问题,并说明您是如何使用
FFprobe的,您说它太慢了——是通过subprocess来的吗? -
如果您将输出重定向到日志文件并避免控制台打印,如ffprobe Fastest way to read video packets 所示,它会更快一些,但您将希望使用
>> output.log而不是使用> output.log。
标签: python windows ffmpeg ffprobe