Конкатенация видео с использованием ffmpeg записывает поверх пустого аудиопотока - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть 4 файла mov ie, которые я пытаюсь наложить и объединить:

  1. Вступительный файл с пустым аудиоканалом (сгенерированный с использованием lavfi)
  2. Main mov ie файл (ы), которые необходимо объединить и обрезать
  3. Водяной знак, который необходимо наложить поверх 2
  4. Outro Mov ie, который также имеет пустой канал.

Вот команда, которую я использую, чтобы сделать все это:

ffmpeg -i temp_intro.mp4 -f concat -i tempFile.txt -i scoreboard.mp4 -i temp_outro.mp4 \
-filter_complex "[1]trim=end=24:start=12[s0];[s0]setpts=PTS-STARTPTS[s1];[1]atrim=end=24:start=12[s2];[s2]asetpts=PTS-STARTPTS[s3];\
[s1][s3]concat=a=1:n=1:v=1[s4];\
[2]format=yuva444p[s5];[s5]colorchannelmixer=aa=0.5[s6];\
[s4][s6]overlay=eof_action=repeat:x=(main_w-overlay_w)/2:y=main_h-overlay_h-20[s7];\
[0][s7][3]concat=n=3[s8]" test.mp4

Несмотря на то, как уродливо это выглядит, в основном это работает - за исключением звука. Звук начинает воспроизводиться, как только начинается вступительный клип. Я не могу создать выходной файл с наложенным mov ie, потому что мне также нужно добавить эффекты постепенного исчезновения и постепенного появления для вступления и выхода. Я могу перекодировать только один раз, так как я буду делать это для нескольких больших файлов каждую ночь.

Пожалуйста, предложите, как я могу решить проблему со звуком.

1 Ответ

0 голосов
/ 03 апреля 2020

Решение легко - нужно просто объединить аудио и видео для файла явно во втором concat. Вот команда:

ffmpeg -i temp_intro.mp4 -f concat -i tempFile.txt -i scoreboard.mp4 -i temp_outro.mp4 \
-filter_complex "[1]trim=end=24:start=12[s0];[s0]setpts=PTS-STARTPTS[s1];[1]atrim=end=24:start=12[s2];[s2]asetpts=PTS-STARTPTS[s3]; \
[2]format=yuva444p[s4];[s4]colorchannelmixer=aa=0.5[s5]; \
[s1][s5]overlay=eof_action=repeat:x=(main_w-overlay_w)/2:y=main_h-overlay_h-20[s7]; \
[0:v:0][0:a:0] [s7][s3] [3:v:0][3:a:0]concat=n=3:v=1:a=1[s8]" -map [s8] test.mp4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...