
Я пытаюсь наложить водяной знак на видео с изображениями (png). Водяной знак работает нормально. Однако у меня нет звука
ffmpeg -i video.mp4 -loop 1 -i watermark_template_bottom.png -i watermark_template_top.png -filter_complex [1:0]fade=in:st=0:d=2:alpha=1,fade=out:st=14:d=2:alpha=1[v_0];
[1:0]fade=in:st=28:d=2:alpha=1,fade=out:st=42:d=2:alpha=1[v_1];
[1:0]fade=in:st=56:d=2:alpha=1[v_2];[v_0][v_1]overlay[ovl_0];[ovl_0][v_2]overlay[ovl_1];
[ovl_1][2:0]overlay[end];[0:0] [end]overlay=eof_action=pass[out] -map [out] out.mp4
Есть ли проблема в моем коде?
решение1
Удалять-map [out]
илидобавить -map 0:a
. При установке одной карты автоматическое сопоставление по умолчанию отключается, поэтому обрабатываются только явно сопоставленные потоки.
И вы можете добавить, -acodec copy
если не хотите перекодировать звук.
решение2
Добавьте -acodec copy
к своей командескопировать аудиопоток.
https://ffmpeg.org/ffmpeg.html#Stream-copy
Stream copy — это режим, выбираемый путем указания параметра copy в опции -codec. Он заставляет ffmpeg пропускать этапы декодирования и кодирования для указанного потока, поэтому он выполняет только демультиплексирование и мультиплексирование. Он полезен для изменения формата контейнера или модификации метаданных на уровне контейнера.