Наложить логотип и аудио на существующее видео
Есть video.mp4, logo.png и audio.mp3. Необходимо наложить логотип на видео и заменить аудио внешней дорожкой audio.mp3
- ffmpeg -i video.mp4 -i logo.png -i audio.mp3 \
- -filter_complex "[0:v][1:v]overlay=20:20" \
- -map 2:a:0 \
- -c:v libx264 -c:a aac \
- -shortest \
- -y result.mp4
При помощи -filter_complex накладываем поток 1 (logo.png, так как индексация с нуля) на поток 0 (video.mp4). Затем при помощи -map 2:a:0 аудио второго потока (audio.mp3) направляем в поток 0, то есть на выход.
Второй варинт: аудио нужно смешать с существующим в video.mp4
- ffmpeg -i video.mp4 -i logo.png -i audio.mp3 \
- -filter_complex "[0:v][1:v]overlay=20:20[rv]; [0:a][2:a]amix=inputs=2:duration=longest[ra]" \
- -map [rv]:0 -map [ra]:0 \
- -c:v libx264 -c:a aac \
- -shortest \
- -y result.mp4
Здесь результат наложения логотипа на видео направляется в поток rv, а микшированное аудио потока 2 и потока 0 направляется в поток ra. Затем rv и ra направляются в 0, то есть на выход.