我试着在一个包含子文件夹的目录中循环,其中每个文件夹都包含一个.avi文件,我想用秒来检索它的长度。在
我找到了PyMediahttp://pymedia.org/
,我知道它可能有助于我实现这一点,但我在文档中找不到任何关于avi持续时间/长度的信息。在
我怎么能做到呢?另外,如果有不同种类的图书馆,我也想知道。在
编辑:添加了我的最终解决方案,感谢J.F.塞巴斯蒂安
import sys
import glob
import os
from hachoir_core.cmd_line import unicodeFilename
from hachoir_core.i18n import getTerminalCharset
from hachoir_metadata import extractMetadata
from hachoir_parser import createParser
path = "z:\*"
for fpath in glob.glob(os.path.join(path, '*avi')):
filename = fpath
filename, real_filename = unicodeFilename(filename), filename
parser = createParser(filename, real_filename=real_filename)
metadata = extractMetadata(parser)
print fpath
print("Duration (hh:mm:ss.f): %s" % metadata.get('duration'))
print '\n'
您可以使用^{} 从文件中提取avi持续时间:
它使用pure Python RIFF parser从avi file提取信息。在
示例:
^{pr2}$以下是ffmpeg的输出,以供比较:
要打印目录树中所有avi文件的信息,请执行以下操作:
不确定是否有一种独立于平台的方式来实现这一点,但如果您只需要在windows上运行,那么medianfo(下面)似乎有一个命令行界面,您可以使用它输出有关视频文件的详细信息,然后对其进行解析以获取信息。不是最漂亮的解决方案,但看起来应该行得通。在
http://mediainfo.sourceforge.net/en
如果您的服务器运行任何UNIX操作系统,则可以使用
ffmpeg
来执行此操作。通常只要默认命令ffmpeg myvideo.avi
就可以提供完整的视频细节。在还有一个用于ffmpeg的python wrapper,它可能会返回字典或列表中的视频详细信息。在
编辑:
我还发现了一个很好的ffmpeg工具,叫做ffprobe,它可以输出视频的长度而不需要额外的麻烦。在
相关问题 更多 >
编程相关推荐