Я и мой друг сняли видео о том, как мы играем онлайн друг с другом, и теперь я хочу сделать одно видео, сравнивая их рядом.

Я делал это раньше, но мне никогда не приходилось иметь дело с аудио. То, что я хочу сделать, это взять аудиопоток из одного клипа и аудиопоток из другого клипа и поместить их в отдельные потоки в новом клипе, подобно тому, как DVD-видео имеют два отдельных потока для каждого языка.

Это то, что я пытался использовать ffmpeg:

ffmpeg -i "Fraps 2014-11-14 07-51-04-70_cut.mp4" -vf "movie='FFsplit-141106-222552_cut.mp4' [in1]; [in]fps=fps=30, setpts=PTS-STARTPTS, scale=1680:1040, pad=iw*2:ih:iw:0[in0]; [in0][in1] overlay=0:0 [out]" input_sidebyside.mp4

Что касается видео, все работает, видео синхронизировано. Но копируется только левый аудиопоток. -map вообще не распознает звук фильтра фильма. Я попытался -map 1:a:0 но он говорит мне, что поток не существует.

Возможно ли отобразить аудио из оверлейного фильтра в ffmpeg?

1 ответ1

1

Действительно, overlay работает только на видео. Вам нужно amix два аудиоисточника. -map 1 не будет работать, так как второй фильм загружается фильтром. Вы можете использовать два входа -i и amix их аудио:

ffmpeg \
-i "Fraps 2014-11-14 07-51-04-70_cut.mp4" \
-i "FFsplit-141106-222552_cut.mp4" \
-filter_complex "[0:v]fps=fps=30, setpts=PTS-STARTPTS, scale=1680:1040, \
  pad=iw*2:ih:iw:0[in0]; [in0][1:v] overlay=0:0 [outv]; \
[0:a][1:a] amix [outa]" -map "[outv]" -map "[outa]" input_sidebyside.mp4

Нечто подобное выше. Не забудьте указать кодировщики и настройки качества. Например, вы можете явно -c:v libx264 -crf 22 чтобы установить качество x264.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .