【问题标题】:ffmpeg cut a video + make a rescaled preview (proxie)ffmpeg 剪切视频 + 重新缩放预览(代理)
【发布时间】:2020-12-03 09:54:17
【问题描述】:

我想剪切(如果可能,可以多剪切)一个 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。

我不能将过滤器与过滤器复合体混合,这就是为什么我不知道该怎么做。

非常感谢您的提示。

【问题讨论】:

  • 为什么音频有不同的选择时间?您没有在任何输出中映射音频 - 您希望它在哪个输出中?
  • 没错,绝对是个错误,我更新了时间戳

标签: filter ffmpeg scale cut


【解决方案1】:

您可以通过以下两种方式之一进行操作。 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

【讨论】:

  • 非常感谢,我认为复杂的过滤器图非常适合我。我将查看与您的答案相关的官方文档,以了解并能够重现此类命令。
猜你喜欢
  • 1970-01-01
  • 2019-05-03
  • 1970-01-01
  • 2019-11-17
  • 2017-10-01
  • 1970-01-01
  • 2017-03-20
  • 2021-01-07
  • 1970-01-01
相关资源
最近更新 更多