Как объединить два файла mp4 без потери качества?

194309
Paolo Bergantino

У меня есть два высококачественных файла mp4, которые состоят из двух частей одного шоу.

Я хочу объединить их в один файл, и я обычно использую VirtualDub для объединения моих файлов ... Но, похоже, он не поддерживает mp4.

Какие альтернативы доступны (особенно те, которые не требуют перекодирования)?

47
Смотрите также http://stackoverflow.com/questions/7333232/concatenate-two-mp4-files-using-ffmpeg rogerdpack 9 лет назад 0

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

39
bobince

Я обычно использую VirtualDub для объединения моих файлов, но он не поддерживает mp4. Так какие есть альтернативы?

Avidemux . Это как VirtualDub, только с большим количеством поддерживаемых форматов и встроенными кодеками и фильтрами. Я всегда использую это в предпочтениях; это присоединяется к файлам AVC + AAC.MP4 (без перекодирования) хорошо для меня.

Чтобы присоединиться к ним в AviDemux:

  1. Файл -> Открыть -> Выбрать файл
  2. Файл -> Добавить -> Выбрать файл
  3. Установить все для копирования
  4. Файл -> Сохранить -> Имя файла
  5. Подождите..

Согласно форумам AViDemux, этот процесс объединения без потерь ( http://www.avidemux.org/smf/index.php?topic=9467.0 )

да, кажется, что он отлично справляется с синхронизацией звука с видео, тогда как ответы других людей на этот вопрос сомнительны по этому ИМХО. djangofan 13 лет назад 0
I tried using Avidemux to join two files together but the audio became out of sync. GiddyUpHorsey 11 лет назад 1
Вы можете получить проблемы с синхронизацией, когда количество доступного аудиоматериала не соответствует длине видеокадров или если есть искажение потока. Возможно, вам удастся исправить это с помощью функции исправления потока в VideoRedo или ProjectX. bobince 11 лет назад 0
Я только что попробовал это (видео H264), и он потерял кадры в соединениях, если они не были I-кадрами, как несколько описано [здесь] (http://avidemux.berlios.de/doc/en/cutting.xml.html#doc_chap1_sect4 ). Бесполезный. Christopher Galpin 10 лет назад 0
Но этот метод работал: http://superuser.com/a/255566/1780 Ура! Christopher Galpin 10 лет назад 1
Если вы используете AviDemux для объединения двух файлов Mp4, не забудьте выбрать опцию Mp4 Demux в левом нижнем углу. В противном случае он может попытаться преобразовать его в AVI! 10 лет назад 2
Это не сработало для меня. Я объединил 3 последовательности видео (по 3 или 4 отдельных видео в каждой), и как только это сработало, один раз сработало только первое видео, и только сработали только первые 2 видео. Остальная часть сцепленных видео была просто серым изображением, хотя получающиеся видео были почти такими же большими, как те, для которых они должны были быть объединенными версиями. [Этот другой ответ] (https://superuser.com/a/522658/499352), однако, работал просто отлично. UTF-8 6 лет назад 0
29
evilsoup

You can do this with ffmpeg:

mkfifo temp0 temp1 ffmpeg -i input0.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -y temp0 2> /dev/null & \ ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -y temp1 2> /dev/null & \ ffmpeg -f mpegts -i "concat:temp0|temp1" -c copy -absf aac_adtstoasc output.mp4 

This doesn't re-encode anything, it places them in a new transport stream container, which makes them more easy to concatenate, and then concatenates them back into an MP4. If output.mp4 already exists, the command will fail. The version above uses named pipes, if you're on a system that doesn't support those you'd have to use intermediate files (like windows):

ffmpeg -i input0.mp4 -c copy -bsf:v h264_mp4toannexb temp0.ts ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb temp1.ts ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -bsf:a aac_adtstoasc output.mp4 
Может кто-нибудь объяснить, как это делается с `avconv` вместо` ffmpeg`? Мне удалось выполнить первые два шага, но последний не распознает опцию `-absf` becko 9 лет назад 0
@becko Смотрите мои изменения. Теперь вы должны использовать спецификатор потока (см. Здесь https://libav.org/avconv.html#Advanced-options). slhck 9 лет назад 0
+1 только для дальнейшего использования, вы можете заменить `avconv` на` ffmpeg` в приведенных выше командах, и это будет работать. becko 9 лет назад 2
12
erik

Concat demuxer

The concat demuxer was added to ffmpeg 1.1. If your version of ffmpeg is to old, get the newest static binary from here: http://www.ffmpeg.org/download.html

Instructions

Create a file mylist.txt with all the files you want to have concatenated in the following form (Lines starting with a dash are ignored):

# this is a comment file '/path/to/file1' file '/path/to/file2' file '/path/to/file3' 

Note that these can be either relative or absolute paths. Then you can encode your files with:

ffmpeg -f concat -i mylist.txt -c copy output 

It is possible to generate this list file with a bash for loop, or using printf. Either one of the following would generate a list file containing every *.wav in the working directory:

for f in ./*.wav; do echo "file '$f'" >> mylist.txt; done printf "file '%s'\n" ./*.wav > mylist.txt 

Source: ffmpeg wiki

8
Eran

YAMB вместе с MP4BOX - хороший вариант.
Загрузите оба и разархивируйте их (установка не требуется и вместе они занимают около 5 МБ), в YAMB выберите «Настройки» и укажите путь к папке MP4box.
Чтобы присоединиться к файлам mp4, выберите «Редактирование»> «Поддержать щелчок для присоединения»

Похоже, это лучшее решение, сохраняющее формат контейнера .mp4, который кажется автору более привлекательным вариантом ^^ Oskar Duveborn 14 лет назад 1
После затруднений я использовал эту конфигурацию: MP4Box_path = E: \ Software \ Video Editing \ Yamb-2.1.0.0_beta2 \ MP4Box \ MP4Box.exe в попытке объединить 4 500 МБ MP4-файлы, сгенерированные из AVIDemux. Это не сработало. Программа просто сидела 45 минут, ничего не делая, пока я, наконец, не сдался. djangofan 14 лет назад 0
У меня были проблемы с использованием этого метода из-за проблем с синхронизацией звука. это был кошмар ... не пытаясь снова. djangofan 13 лет назад 0
6

SUPER © (Simplified Universal Player Encoder & Renderer) обеспечивает следующий дополнительный процесс вывода:

Любой поддерживаемый входной мультимедийный файл может быть обработан:

 o Join Format-Identical Files. o Mux Video & Audio Streams. o DeMux Extract Streams.  

Конечно, MP4 является поддерживаемым форматом.

SUPER © является бесплатной.

Его пользовательский интерфейс - самое ужасное, что я видел в своей жизни. Я не шучу, это просто ужасно. Я еще раз подчеркиваю: * Я не могу назвать худший интерфейс, я серьезно к этому отношусь, я никогда не видел ничего ниже «СУПЕР порога». * Camilo Martin 12 лет назад 5
5
Breakthrough

Попробуйте использовать видео контейнер Matroska.

Во-первых, вам нужен mkvtoolnix . Скачать и установить его, то вам необходимо запустить GUI mkvmerge (если вам нравится инструменты командной строки, которая меня устраивает - хотя вы можете захотеть взглянуть на файл секцию, связывающий в документации mkvmerge ).

Добавьте свой первый файл, нажав «добавить». Затем нажмите «добавить» и откройте второй файл. Установите выходной файл, нажмите «Начать мультиплексирование» внизу, и все готово!

Если контейнер не подходит для ваших нужд, вы можете перекодировать его или попытаться преобразовать в другой формат ... Хотя MKV - очень красивый контейнер!

это должно быть приглушено? я не могу присоединиться без muxing? djangofan 14 лет назад 0
Что ж, если вы используете контейнер MKV, технически вы * его * смешиваете. Попробуйте, нет штрафа в реальном времени ... Breakthrough 14 лет назад 0
1
William Hilsum

Если вы можете воспроизводить их в своей системе / если установлен кодек, Windows Movie Maker может стать самым быстрым (и бесплатным) способом объединения двух файлов. Затем вы можете использовать Virtualdub для преобразования в другой формат.

Audacity, кажется, для аудио файлов. Это видео файл. Paolo Bergantino 14 лет назад 0
Извините, я неправильно прочитал, просто увидел часть MP и мой мозг, хотя смелость. William Hilsum 14 лет назад 0
Редактирование ответа ... William Hilsum 14 лет назад 0
AFAIK, Movie Maker не поддерживает mp4, а конвертация в другой формат означает потерю качества, которое в вопросе указано как нежелательное. Eran 14 лет назад 0
Я попробовал MovieMaker на Windows7, и звук становится не синхронизированным при объединении файлов MP4 в WMV. Эта опция не будет работать. djangofan 14 лет назад 0
1
harrymc

Другое решение - Open Video Joiner . Это также делает эффекты перехода.

Это условно. и за 30 $ это не дешево просто объединить видео файлы Eran 14 лет назад 0
Это было сказано, чтобы быть свободным. Извините, если меня ввели в заблуждение. harrymc 14 лет назад 0

Похожие вопросы