Ffmpeg додає новий звук у відео (змішування 2 аудіо)


3

Я хочу додати звук до відео на певній тривалості. Тепер перед / після того, як передбачалася тривалість, має бути відтворено оригінальний аудіофайл; і при бажаній тривалості відтворення повинно відтворюватися тільки вставлене аудіо.

я бачив Накладання аудіо але накладається на оригінальний звук. Я вже намагався -itsoffset але він виключає залишок звуку.

Ось графічне опис того, що я хочу зробити саме так What I want to do

Будь-яка допомога оцінюється.

Відповіді:


5

Використовувати atrim, asetpts, і concat фільтри:

ffmpeg -i video.mkv -i audio.mp3 -filter_complex \
"[0:a]atrim=end=12,asetpts=PTS-STARTPTS[aud1]; \
 [1:a]atrim=30:42,asetpts=PTS-STARTPTS[aud2]; \
 [0:a]atrim=start=24,asetpts=PTS-STARTPTS[aud3]; \
 [aud1][aud2][aud3]concat=n=3:v=0:a=1[aout]" \
-map 0:v -map "[aout]" -c:v copy -c:a libfdk_aac output.mp4
  • Перший atrim отримує перші 12 секунд звуку з першого входу ( video.mkv ).
  • Другий atrim отримує секунди 30-42 з другого входу ( audio.mp3 ).
  • Третій atrim отримує секунди 24 кінця аудіо з першого входу ( video.mkv ).
  • concat Потім об'єднує ці сегменти в один аудіопотік.
  • Відео є скопійований потік замість повторного кодування в цьому прикладі.
  • Без asetpts Я отримував переповнення буферної черги, що призводило до "стрибкоподібного" виводу. Див atrim документації для отримання додаткової інформації.

Велике спасибі і вибачте за пізнє прийняття. :)
BlueSword
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.