如何使用 ffmpeg-python 将视频剪切到一定长度并向其添加介绍视频?
How can I cut a video to a certain length and add an intro video to it using ffmpeg-python?
如何使用 ffmpeg-python 将视频剪切到一定长度并添加介绍视频?
我正在这样做:
intro = ffmpeg.input(intro)
mainvid = ffmpeg.input(mainvid)
v1 = intro.video
a1 = intro.audio
v2 = mainvid.video
a2 = mainvid.audio
joined = ffmpeg.concat(v1, a1, v2, a2, v=1, a=1).node
v3 = joined[0]
a3 = joined[1]
(
ffmpeg
.output(
v3,
a3,
'out.mkv',
vcodec='libx265', )
.run()
)
但我不知道如何在加入前10分钟将*mainvid剪成一定长度。我知道 ss 会有所帮助,但我不知道如何仅将其用于 mainvid.
您可以使用 trim
和 atrim
滤镜来修剪视频和音频。
建议的解决方案基于以下 .
- FFmpeg 支持 3 types 串联:“Concat demuxer”、“Concat 协议”和“Concat 过滤器”。
ffmpeg.concat
方法适用 Concat filter.
由于使用了“Concat 过滤器”,一个实用的解决方案是通过“链接”trim
和 atrim
过滤器来修剪视频和音频。
修复时间戳需要 setpts
和 asetpts
过滤器。
将 v2 = mainvid.video
和 a2 = mainvid.audio
替换为:
v2 = mainvid.video.filter('trim', start=0, end=600).filter('setpts', 'PTS-STARTPTS')
a2 = mainvid.audio.filter('atrim', start=0, end=600).filter('asetpts', 'PTS-STARTPTS')
我设法做到了:
intro = ffmpeg.input(intro)
mainvid = ffmpeg.input(mainvid, ss='00:00:00', t='00:10:00')
v1 = intro.video
a1 = intro.audio
v2 = mainvid.video
a2 = mainvid.audio
joined = ffmpeg.concat(v1, a1, v2, a2, v=1, a=1).node
v3 = joined[0]
a3 = joined[1]
(
ffmpeg
.output(
v3,
a3,
'out.mkv',
vcodec='libx265', )
.run()
)
如何使用 ffmpeg-python 将视频剪切到一定长度并添加介绍视频?
我正在这样做:
intro = ffmpeg.input(intro)
mainvid = ffmpeg.input(mainvid)
v1 = intro.video
a1 = intro.audio
v2 = mainvid.video
a2 = mainvid.audio
joined = ffmpeg.concat(v1, a1, v2, a2, v=1, a=1).node
v3 = joined[0]
a3 = joined[1]
(
ffmpeg
.output(
v3,
a3,
'out.mkv',
vcodec='libx265', )
.run()
)
但我不知道如何在加入前10分钟将*mainvid剪成一定长度。我知道 ss 会有所帮助,但我不知道如何仅将其用于 mainvid.
您可以使用 trim
和 atrim
滤镜来修剪视频和音频。
建议的解决方案基于以下
- FFmpeg 支持 3 types 串联:“Concat demuxer”、“Concat 协议”和“Concat 过滤器”。
ffmpeg.concat
方法适用 Concat filter.
由于使用了“Concat 过滤器”,一个实用的解决方案是通过“链接”trim
和atrim
过滤器来修剪视频和音频。
修复时间戳需要 setpts
和asetpts
过滤器。
将 v2 = mainvid.video
和 a2 = mainvid.audio
替换为:
v2 = mainvid.video.filter('trim', start=0, end=600).filter('setpts', 'PTS-STARTPTS')
a2 = mainvid.audio.filter('atrim', start=0, end=600).filter('asetpts', 'PTS-STARTPTS')
我设法做到了:
intro = ffmpeg.input(intro)
mainvid = ffmpeg.input(mainvid, ss='00:00:00', t='00:10:00')
v1 = intro.video
a1 = intro.audio
v2 = mainvid.video
a2 = mainvid.audio
joined = ffmpeg.concat(v1, a1, v2, a2, v=1, a=1).node
v3 = joined[0]
a3 = joined[1]
(
ffmpeg
.output(
v3,
a3,
'out.mkv',
vcodec='libx265', )
.run()
)