从视频文件中提取片段

1 投票
1 回答
1366 浏览
提问于 2025-04-17 09:55

有没有办法用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代码,我没有测试过……这段代码纯粹是为了教学目的。

撰写回答