Я использовал команду как:
ffmpeg -i video.avi -i audio.mp3 -vcodec codec -acodec codec output_video.avi -newaudio
в последней версии для добавления новой звуковой дорожки в видео (не микс).
Но я обновил ffmpeg до последней версии ( ffmpeg version git-2012-06-16-809d71d ) и теперь в этой версии параметр -newaudio
не работает.
Скажите, пожалуйста, как я могу добавить новое аудио в мое видео (не микс), используя ffmpeg
.
Ответы:
Добавить аудио к видео: потоковая копия
-map
опции будет использовать выбор потока по умолчанию . Это будет работать, если на вашем видеовходе нет звука.-codec copy
для потокового копирования (без перекодирования; качество сохраняется, и это быстро).-shortest
Вариант будет делатьoutput.avi
ту же длительность, самый короткий вход.Добавить аудио к видео: перекодировать
Если вашему выводу не нравятся исходные форматы или вы хотите изменить форматы, вы можете указать кодировщики:
Чтобы вручную выбрать конкретные потоки
Иногда выбор потока по умолчанию не даст желаемого результата. В этом примере
video.mp4
есть видео и аудио, иaudio.m4a
только аудио. Используйте-map
для выбора видеоvideo.mp4
и аудио изaudio.m4a
:-map 0:v
- На входе0
(первый вход, который естьvideo.mp4
) выберитеv
ideo stream (s).-map 1:a
- Из ввода1
(второй вход, который являетсяaudio.m4a
) выберитеa
поток (ы) udio.Микширование / объединение двух аудиовходов в один
Возьмите видео с
video.webm
и используйте фильтр слияния для объединения аудио сvideo.webm
иaudio.oga
:Создать тихий звук
Вы можете использовать фильтр anullsrc для создания тихого аудиопотока. Фильтр позволяет выбрать желаемое расположение каналов (моно, стерео, 5.1 и т. Д.) И частоту дискретизации.
Также см
источник
-map 0:0 -map 1:0
вместо-map 0 -map 1
помогло мне. Спасибо!-shortest
опции сработало для меня лучше.mp3 музыку в wav
обрезать по размеру видео
микшировать музыку и видео
источник
Если во входном видео есть несколько звуковых дорожек и вам нужно добавить еще одну, используйте следующую команду:
-map 0
означает копирование (включение) всех потоков из первого входного файла (input_video_with_audio.avi
) и-map 1
означает включение всех потоков (в данном случае одного) из второго входного файла (new_audio.ac3
).источник
Ни одно из этих решений не помогло мне. Мой исходный звук перезаписывался, или я получал ошибку типа «не удалось отобразить память» в более сложном примере «amerge». Кажется, мне понадобился -filter_complex amix.
источник
У меня ничего не получалось (я думаю, это из-за того, что в моем входном видео .mp4 не было звука), поэтому я обнаружил, что это сработало для меня:
источник
Если вы используете старую версию FFMPEG и не можете обновить ее, вы можете сделать следующее:
Обратите внимание, что я использовал -vcodec
источник
Код для добавления звука к видео с помощью ffmpeg.
Если длина аудио больше, чем длина видео, звук будет обрезан до длины видео. Если вам нужен полный звук в видео, удалите -shortest из cmd.
String[] cmd = new String[]{"-i", selectedVideoPath,"-i",audiopath,"-map","1:a","-map","0:v","-codec","copy", ,outputFile.getPath()};
источник
Environment.getExternalStorageDirectory().getAbsolutePath()+"/videoaudiomerger/"+"Vid"+"output"+i1+".mp4");
?