从视频文件中提取片段
有没有办法用Python代码来处理一个视频文件(比如mpg、avi、wmv、mov等),然后指定一个时间段(例如从5分钟10秒11毫秒到10分钟15秒40毫秒),并从这个时间段里制作一个小视频呢?
我知道用ffmpeg、mencoder和其他程序可以做到这一点,但我想用Python代码来实现。
1 个回答
1
我在网上搜索“用Python编辑视频文件的库”,结果又回到了Stack Overflow:
除了从库中获取这种功能外,我还经常使用系统调用(os.system或subprocess)来调用mencoder或ffmpeg。你可以写一个函数来实现这个,下面是伪代码:
def getVideoChunk(filepath, timerange, outputfile):
retcode = systemcall("ffmpeg %s %s", filepath, timerange, outputfile)
return retcode
当然,你需要选择一种运行系统调用的方法,并且需要学习一些ffmpeg的语法。
编辑(根据评论)假设ffmpeg的语法是这样的:
ffmpeg -i input.mpg -sameq -ss 00:02:00 -t 00:02:00 output.mpg
那么调用的方式看起来会是:
getVideoChunk("input.mpg", "00:02:00", "output.mpg")
而系统调用的部分看起来会是(注意我使用的是os.system):
os.system("ffmpeg -i %s -sameq -ss %s -t %s %s" % (filepath, timerange, timerange, outputfile))
请注意,这段代码也是伪Python代码,我没有测试过……这段代码纯粹是为了教学目的。