Warm tip: This article is reproduced from serverfault.com, please click

filter-ffmpeg剪切视频+进行缩放预览(代理)

(filter - ffmpeg cut a video + make a rescaled preview (proxie))

发布于 2020-12-03 09:54:17

我想剪切(如果可能的话,可以使用mulicut可以)mp4并在360p中生成剪切+预览文件。

我的目标是实现如下目标:

`ffmpeg -y -progress /dev/stdout -i media.mp4
-vf "select='+between(t,0,25)',setpts=N/FRAME_RATE/TB"
-af "aselect='+between(t,0,25)’,asetpts=N/SR/TB"
-filter_complex split=2[mvideo][pvideo]
-map [mvideo] media_cut.mp4
-map [pvideo] -vf scale=-1:360 media_preview.mp4`

在这里,第一个-vf选择过滤器可对媒体进行多切割,一个拆分过滤器可同时生成剪切的媒体和调整大小的剪切,第二个-vf则按比例缩放,使纵横比保持360的宽度。

我无法将过滤器与复杂的过滤器混合使用,这就是为什么我不知道该怎么做的原因。

非常感谢你的提示。

Questioner
Hugo Monsieur
Viewed
0
Gyan 2020-12-03 20:37:42

你可以通过以下两种方法之一来进行操作。1)为每个输出声明简单的filtergraph,或2)在复杂的filtergraph中进行所有过滤。

#1每个输出的简单过滤器图。

ffmpeg -y -progress /dev/stdout -i media.mp4
-vf "select='between(t,0,25)',setpts=N/FRAME_RATE/TB"
-af "aselect='between(t,0,25)’,asetpts=N/SR/TB"
media_cut.mp4
-vf "select='between(t,0,25)',setpts=N/FRAME_RATE/TB,scale=-2:360"
-af "aselect='between(t,0,25)’,asetpts=N/SR/TB"
media_preview.mp4

#2复杂的过滤器图。

ffmpeg -y -progress /dev/stdout -i media.mp4
-filter_complex
"[0:v]select='between(t,0,25)',setpts=N/FRAME_RATE/TB,split=2[mvideo][pvideo];
 [pvideo]scale=-2:360[pvideo];
 [0:a]aselect='between(t,0,25)’,asetpts=N/SR/TB,asplit=2[maudio][paudio]"
-map [mvideo] -map [maudio]
media_cut.mp4
-map [pvideo] -map [paudio]
media_preview.mp4