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

55302
jdmuys

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

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

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

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

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

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

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

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

41
Steven Penny
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-файл в один

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

MP4Box сделает это за вас:

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

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

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

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

Выбор кодека 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, условно-бесплатный видеоредактор, который точно рекламирует это как функцию.

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

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

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

Thanks for the link. I could not try it as the site says this program does not support Snow Leopard. Moreover, I just found a working solution using Quicktime only (see my answer). Also, though I don't know in this case, some tools advertise joining video file but do so with full re-encoding, which is at best misleading. jdmuys 14 лет назад 0
My apologies; I misread that bit on the site. Glad you found a simpler approach -- it did seem strange that it would be necessary to get a special tool for this. Zac Thompson 14 лет назад 0
0
Erb

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

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