Присоединение к H264 * без * перекодирования

37

У меня есть две половины одного шоу в двух файлах .MP4, закодированных в H264. Я хотел бы присоединиться к ним без повторное кодирование.

Это возможно?

Мне удалось создать объединенное видео в виде файла Quicktime (.mov) с помощью Quicktime Pro, но тогда Quicktime Pro не преобразует его обратно в .MP4 без перекодирования. Это может быть связано с тем, что, заглянув внутрь файла .mov, два видео H264 по-прежнему разделены как отдельные «объекты».

Я также борюсь с MPEG StreamClip, не достигнув реального решения. Но я, возможно, что-то пропустил.

Обратите внимание, что я не делайте имеют ту же проблему с файлами MPEG2. Я могу экспортировать их, например, в контейнер .MPEG или файл .TS, а затем присоединиться к ним без перекодирования с использованием MPEG Streamclip.

Любое предложение приветствуется, желательно с использованием программного обеспечения Mac.

jdmuys
источник
1
Конечно, видео должны иметь одинаковые аспекты, которые должны быть объединены без перекодирования (одинаковый размер, битрейт и т. Д.). Вы должны быть в состоянии сделать это в VirtualDubMOD: откройте MP4, затем Добавить сегмент ,
Synetech

Ответы:

41
ffmpeg -i q.mp4 -c copy -bsf h264_mp4toannexb q.ts

ffmpeg -i r.mp4 -c copy -bsf h264_mp4toannexb r.ts

ffmpeg -i "concat:q.ts|r.ts" -c copy -bsf aac_adtstoasc qr.mp4

Как объединить FLV-файл в один

Steven Penny
источник
Что если это m4v (не h264 mp4), какой bsf следует использовать?
Edison
1
Я остановился -bsf aac_adtstoasc для команды concat
Csaba Toth
Мне нужно было прекратить все -bsf аргументы, то у меня получилось.
KittMedia
Делая это на MacOS 10.13.3, я опустил все -bsf xxx вещи с хорошими результатами. Однако, во второй раз, когда я попробовал это, вторая половина объединенного фильма была повреждена. Оказывается, что по неизвестным причинам Ручной тормоз кодировал две половины с различной шириной (640 против 636). Я использовал одну и ту же предустановку в обоих случаях. Во всяком случае, я вернулся и снова использовал Handbrake в 1-й половине, которая теперь совпадает со 2-й. Повторно объединенный фильм был в порядке. Совет: ExifTool будет отображать все о файле mp4 / m4v.
Jamie Cox
15

MP4Box сделаю это для вас:

MP4Box -cat File01.m4v -cat File02.m4v File-joined.m4v

MP4Box является кроссплатформенным и работает на OSX, однако я попробовал это на Ubuntu Linux с видео H264, созданным Handbrake для iPhone 4S.

Это работает довольно быстро, так как файлы не перекодируются.

thinkOfaNumber
источник
1
Работает отлично. использование sudo apt-get install gpac установить его. Вы можете использовать эту командную строку, если у вас есть много файлов для присоединения: MP4Box $(for file in single*m4v; do echo -cat $file; done) joined.m4v
guettli
2

В кодеке Quicktime MP4 есть режим «сквозной передачи».

Вот полный подробный рецепт объединения двух видео MP4 H264 с использованием Quicktime. Обратите внимание, что Quicktime X еще недостаточно продвинут, поэтому используйте Quicktime 7 (дополнительная установка со Snow Leopard)

  1. Откройте два видео H264 в Quicktime 7. Предположим, они называются video1.mp4 и video2.mp4.
  2. Работая с video1.mp4, выберите «Все», затем «Копировать».
  3. Переключитесь на video2.mp4, убедитесь, что курсор находится в начале видео, затем вставьте. Это вставляет содержимое video1.mp4 в начало video2.mp4.
  4. Этот шаг, вероятно, не является обязательным , «Сохранить как» измененный video2.mp4. Вы сможете сохранить только в формате .mov. Я сохранил как отдельный фильм, но я полагаю, что справочный фильм тоже подойдет. Я использовал имя файла "video.mov".
  5. Выберите «Экспорт» в меню файла, чтобы экспортировать video.mov в объединенный файл H264. «Экспорт» для выбора - «Фильм в MPEG-4». Предустановка не важна, я выбрал «LAN / Intranet». Предварительная настройка не важна, потому что мы перезаписываем ее на следующем шаге.
  6. Нажмите «Опции», чтобы перейти в диалог настроек. На панели «Видео» выбрано «Формат видео» как «H.264». Нажмите на меню, выберите «Pass Through». Как и ожидалось, все остальные параметры будут отключены.
  7. Нажмите «ОК», затем «Сохранить» и посмотрите, как ваш присоединенный файл будет сохранен на скорости вашего жесткого диска.

Вы могли бы альтернативно использовать SimpleMovieX условно-бесплатный редактор видео, который точно рекламирует это как функцию.

jdmuys
источник
К сожалению, для сохранения в mov потребуется некоторая форма перекодировки.
Csaba Toth
0

Я думаю, что это должно быть возможно, хотя для того, чтобы объединение работало, эти две части должны быть «одинаковыми» определенными способами (разрешение и т. Д.). Похоже, что это будет иметь место в вашей ситуации.

Вы можете попробовать этот инструмент: http://www.smlabs.net/tsmuxer_en.html ... Я не использовал его, но он специально перечисляет присоединяющиеся файлы как часть своего набора функций, и H.264 является одной из поддерживаемых кодировок.

Zac Thompson
источник
Спасибо за ссылку. Я не смог попробовать, так как на сайте написано, что эта программа не поддерживает Snow Leopard. Более того, я только что нашел рабочее решение, используя только Quicktime (см. Мой ответ). Кроме того, хотя я не знаю в этом случае, некоторые инструменты рекламируют присоединение видеофайла, но делают это с полным перекодированием, которое в лучшем случае вводит в заблуждение.
jdmuys
Мои извенения; Я неправильно прочитал этот бит на сайте. Рад, что вы нашли более простой подход - казалось странным, что для этого потребуется специальный инструмент.
Zac Thompson
0

использование MKVToolnix , Затем откройте «mkvtoolnix-gui.exe» (в Windows 8.1 64bit это находится в: C: \ Program Files \ MKVToolNix \ mkvtoolnix-gui.exe) Добавьте первый файл. Затем выберите этот первый файл и щелкните правой кнопкой мыши «добавить файлы» и выберите файлы, которые вы хотите объединить. Может быть, изменить папку назначения и имя файла. Затем, наконец, нажмите «начать мультиплексирование».

Erb
источник