MLT / melt:连接剪辑,淡入/淡出音频和视频

时间:2017-02-07 00:11:25

标签: command-line-interface mlt melt-framework

我正在尝试自动执行每周执行的普通视频编辑任务。我想用melt来做这件事。

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

  1. a1b1c1内抓取abc
  2. a1b1c1连接到一个视频中。
  3. a1b1c1之间转换时,淡入/淡出黑色一秒钟。
  4. 将音轨应用于a1b1c1的连续输出,同时还保留原始音频。
  5. c1淡化为黑色(结束视频)时淡出音轨。
  6. 因此:

    1. abc具有任意长度。
    2. abc都是以每秒60帧的速度拍摄的1080p视频。
    3. abca1b1c1都是.mp4个文件。
    4. 音轨是.mp3文件。
    5. 这就像我得到的那样接近:

      #!/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淡出时(即视频结束时),音轨不淡出。

      3. 从我收集的内容中,淡出音轨可以通过“动画音量过滤器动画”完成,但我没有成功尝试过。

        我该怎么办?

        感谢您的帮助。

1 个答案:

答案 0 :(得分: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