Как применить звуковую дорожку к немому h264 / mp4-видео без потерь?

2276
poplitea

У меня MP4 / h.264-видео без звука. С ffmpegаналогичным образом, как я могу применить звуковую дорожку к этому MP4-файлу без ухудшения качества видео (т.е. без перекодирования видео-дорожки)?

Я бы предпочел решения с участием свободного программного обеспечения, доступные для Win7, Ubuntu или FreeBSD.

4

3 ответа на вопрос

10
slhck

Правильная команда FFmpeg:

ffmpeg -i video.mp4 -i audio.mp4 -map 0:0 -map 1:0 -c copy output.mp4 

Это предоставит два входных потока: видео, которое у вас уже есть, и аудио, например, из файла MP4 с аудио AAC, и объединит их вместе, используя -mapпараметры.

Здесь первое число в 0:0представляет собой входной файл ( 0для видеофайла и 1для аудиофайла), а второе число представляет собой поток из этого файла ( 0поскольку каждый поток имеет только один поток, видео или аудио). Два потока будут сопоставлены с одним выходным файлом, поэтому сначала видео, а затем аудио.

Битовые потоки будут скопированы и не перекодированы с использованием этой -c copyопции. Вы можете наблюдать это в выводе FFmpeg:

Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #1:0 -> #0:1 (copy) 
Милая! Особенно приятно, что вы объяснили аргументы и использование картирования. poplitea 11 лет назад 0
Также вам может потребоваться `-shortest`, если вы хотите, чтобы это была только продолжительность самого короткого ввода (полезно, если аудио - это музыка, которая длиннее видео). mark4o 11 лет назад 4
1
thornomad

Вы можете использовать ffmpegдля этого. Я просто делаю это из-за слабости моего мозга, но, возможно, что-то вроде этого сработает:

ffmpeg -i movie-file.mp4 -i audio-file.mp3 -c:v copy -c:a copy output.mp4 
Это то, что я ищу. Хотя раньше я использовал `ffmpeg`, я не могу вспомнить его аргументы. Я предполагаю, что они имеют отношение к кодеку / формату, но что обозначают `-v: c`,` -a: c` и `-an`? poplitea 11 лет назад 0
Опции должны быть `-c: v` и` -c: a`, а не `-v: c` и` -a: c`. Кроме того, с помощью `-an` вы отключаете вывод звука, поэтому в файле результатов снова не будет звука. Если вы объединяете файлы, вам придется отображать их явно, если FFmpeg не может угадать, что вы хотите (например, объединение видео AVI + аудио WAV) / cc @poplitea slhck 11 лет назад 2
Упс - включил тех, кто в моем мозгу. Приятно узнать что-то новое о картографировании. Благодарю. thornomad 11 лет назад 0
-1
To Do

Есть несколько видеоредакторов с открытым исходным кодом.

На окнах есть Windows Movie Maker или Microsoft Live Movie Maker. У меня нет опыта с этим, хотя.

В Linux есть OpenShot, который довольно прост в использовании.

Проблема с нелинейными редакторами заключается в том, что они не позволят вам очень легко делать битовые копии. Если бы вы могли показать пример того, как это сделать, это было бы очень полезно, хотя - я не уверен, что это выполнимо. slhck 11 лет назад 0
Вы импортируете свой видео файл и ваш аудио файл. Затем вы просто перетаскиваете его вниз (временная шкала). Вы делаете то же самое со своим аудиофайлом. Затем вы экспортируете свой проект, выбирая нужные параметры. Вы можете просмотреть его перед экспортом. Не уверен, если это то, что вы спрашиваете. To Do 11 лет назад 0
Я имею в виду, что при экспорте проекта большинство редакторов перекодирует видео и аудио потоки (в зависимости от настроек экспорта, например, в некоторые h.264 / AAC). Однако они не будут копировать поток битов как есть. Повторное кодирование ухудшает качество, и ОП хотел сделать копию битового потока. Знаете ли вы какие-либо редакторы, которые это делают, или Windows Movie Maker / OpenShot? slhck 11 лет назад 0
Я использовал pitivi в Ubuntu, у которого была опция вывода «direc» для видео и аудио. Я думаю, что это просто копирует оригинальный формат, потому что кодирование закончилось намного быстрее, чем с обычными настройками. Сказал, что Питиви был очень нестабилен, по крайней мере, тогда (1 год назад). To Do 11 лет назад 0