ffmpeg 剪切视频 + 重新缩放预览(代理)

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

我想剪切(如果可能的话,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 select 过滤器用于多路切割媒体,一个拆分过滤器用于生成切割媒体和调整大小的切割,第二个 -vf 保持宽高比为360.

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

非常感谢您的提示。

您可以选择以下两种方式之一。 1) 为每个输出声明简单的过滤图,或 2) 在复杂的过滤图中进行所有过滤。

#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