2

我正在尝试自动化我每周执行的一项平凡的视频编辑任务。我想用它melt来做到这一点。

假设我有视频abc。我想做以下事情:

  1. 从、和内部剪断、和。a1b1c1abc
  2. 将、和连接成一个视频。a1b1c1
  3. 在、和之间转换时淡入/淡出黑色一秒钟。a1b1c1
  4. 将音轨应用于、 和的串联输出,同时保留原始音频。a1b1c1
  5. 淡出原声带淡入黑色(结束视频)。c1

借此:

  1. a, b, 和c是任意长度。
  2. abc都是以每秒 60 帧的速度拍摄的 1080p 视频。
  3. a, b, c, , , 和都是文件。a1b1c1.mp4
  4. 配乐是一个.mp3文件。

这和我得到的一样接近:

#!/bin/sh
melt \
  colour:black out=59 $VIDEO1 in=0 out=600 -mix 60 -mixer luma \
  colour:black out=59 -mix 60 -mixer luma \
  colour:black out=59 $VIDEO2 in=0 out=600 -mix 60 -mixer luma \
  colour:black out=59 -mix 60 -mixer luma \
  colour:black out=59 $VIDEO3 in=0 out=600 -mix 60 -mixer luma \
  colour:black out=59 -mix 60 -mixer luma \
  -audio-track $AUDIO -transition mix

(在上面的示例中,我为相关文件和淡入/淡出时间使用了任意占位符。)

这成功地剪切和连接,和动画过渡。然而:a1b1c1

  1. 如果$AUDIO长于、 和的串联,则视频结束后音频继续播放(白屏)。a1b1c1

  2. 淡出时(即视频结束时),配乐不会淡出。c1

根据我收集到的信息,可以通过“为音量音频过滤器设置动画”来淡出配乐,但我没有成功尝试过。

我应该尝试什么?

谢谢你的帮助。

4

1 回答 1

4

对于#1,您需要为音频设置一个出点。您有三个 601 帧剪辑(第零帧计为一帧),总共 1803 帧。所以出发=1802。

对于#2,您可以将音量过滤器应用于音轨的末尾以使其淡出。

请参阅音量过滤器的文档以了解增益和结束参数: https ://www.mltframework.org/plugins/FilterVolume/

#!/bin/sh
melt \
  colour:black out=59 $VIDEO1 in=0 out=600 -mix 60 -mixer luma \
  colour:black out=59 -mix 60 -mixer luma \
  colour:black out=59 $VIDEO2 in=0 out=600 -mix 60 -mixer luma \
  colour:black out=59 -mix 60 -mixer luma \
  colour:black out=59 $VIDEO3 in=0 out=600 -mix 60 -mixer luma \
  colour:black out=59 -mix 60 -mixer luma \
  -audio-track $AUDIO out=1802 -attach-track volume:0db end=-70db in=1703 out=1802 \
  -transition mix in=0 out=1802
于 2017-02-08T03:05:35.473 回答