Отказ от ответственности: я не понимаю ffmpeg и в основном просто копирую команды
У меня есть два видеофайла webm. Их продолжительность отключена примерно на секунду.
Я преобразовал их в mp4, и все было в порядке:
ffmpeg -acodec libopus -i 1.webm -r 10 -cpu-used 5 -c:v libx264 -crf 20 -c:a aac -strict experimental -loglevel error 1.mp4
Затем я извлек звук из каждого видео, и все было в порядке. Под «хорошо» я подразумеваю, что когда я воспроизводю аудиофайлы сами по себе, они совпадают с синхронизацией исходного видео. Я использовал эту команду для извлечения аудио:
fmpeg -i 1.mp4 -map 0:a -vn -acodec copy 1audio.m4a
Теперь у меня есть две звуковые дорожки, и я хочу объединить их в одну, я хочу «наложить» их, И я хочу сохранить такие же тайминги, как и были.
НО, всякий раз, когда я пытаюсь объединить звук, тайминги отключаются. «Секунды» не соответствуют исходным одиночным аудиофайлам.
Я пробовал эти команды для объединения аудио:
ffmpeg -i 1audio.m4a -i 2audio.m4a -filter_complex "[0:a][1:a]amerge=inputs=2[a]" -map [a] -c:a libfdk_aac mergedaudio.m4a
ffmpeg -i 2audio.m4a -i 1audio.m4a -filter_complex amix=inputs=2:duration=first mergedaudio.m4a
ffmpeg -i 1audio.m4a -i 2audio.m4a -filter_complex amerge -ac 2 -c:a libfdk_aac -vbr 4 mergedaudio.m4a
Все приведенные выше команды привели к объединению аудиофайла... но тайминги отключены.
Что я делаю неправильно?