def cut_and_stitch(input_video, time_list, output_video):
"""
剪切掉所有time_list里的片段,将其余片段拼接起来
"""
all_cut = []
filter_cmd = []
for i, (start, end) in enumerate(time_list):
filter_cmd.append(
'[0:v] trim=start={}:end={},setpts=PTS-STARTPTS,format=yuv420p [{}v];'.format(start, end, i))
filter_cmd.append('[0:a] atrim=start={}:end={},asetpts=PTS-STARTPTS [{}a];'.format(start, end, i))
all_cut.append('[{}v][{}a]'.format(i, i))
cmd = "ffmpeg -i {} -filter_complex '{} concat=n={}:v=1:a=1[outv][outa]' -map [outv] -map [outa] -q:v 5 {}".format(
input_video, ' '.join(filter_cmd) + ''.join(all_cut), len(all_cut), output_video)
print('cmd:', cmd)
os.system(cmd)
ffmpeg: 视频剪切和拼接
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前端时间需要对大视频文件做一个简单压缩,想到使用FFmpeg之前用过这个库写过一个视频播放器。所以再一次熟悉了一下...