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


39

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

Чи можливо це?

Мені вдалося створити об'єднане відео у вигляді файлу Quicktime (.mov) за допомогою Quicktime Pro, але тоді Quicktime Pro не перетворить його назад у .MP4 без повторного кодування. Це може бути тому, що, переглядаючи файл .mov, два відео H264 там все ще відокремлені як окремі "об'єкти".

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

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

Будь-яка пропозиція вітається, бажано за допомогою програмного забезпечення Mac.


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 в один


Що робити, якщо це m4v (non-h264 mp4), що bsf слід використовувати?
Едісон

2
Я -bsf aac_adtstoascвідмовився від конфат-команди
Csaba Toth

Мені потрібно було припинити всі -bsfаргументи, тоді це працювало на мене.
KittMedia

Роблячи це на MacOS 10.13.3, я пропустив усі -bsf xxxречі з хорошими результатами. Однак другий раз, коли я спробував це, друга половина комбінованого фільму була зіпсована. Виявляється, з невідомих причин Handbrake закодував дві половинки різної ширини (640 проти 636). Я використовував однакові настройки в обох випадках. У будь-якому разі я повернувся назад і знову використав Handbrake на 1-й половині, яка тепер збігалася з 2-ю половиною. Повторно поєднаний фільм був у порядку. Порада: exiftool покаже все про mp4 / m4v-файл.
Джеймі Кокс

15

MP4Box зробить це за вас:

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

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

Це працює досить швидко, оскільки файли не кодуються повторно.


1
Чудово працює. Використовуйте sudo apt-get install gpacдля його встановлення. Ви можете використовувати цей командний рядок, якщо у вас є багато файлів для приєднання:MP4Box $(for file in single*m4v; do echo -cat $file; done) joined.m4v
guettli

2

Вибір Quicktime MP4 Codec має режим «пройти через».

Ось повний детальний рецепт для приєднання двох відео 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". Клацніть на меню, виберіть "Пройти крізь". Як очікується, всі інші варіанти будуть відключені.
  7. Натисніть кнопку ОК, а потім Зберегти та спостерігайте за тим, як ваш об’єднаний файл буде збережено на швидкості вашого жорсткого диска.

Ви також можете використовувати SimpleMovieX , програмний редактор відео, який саме рекламує це як функцію.


1
Збереження в Mov, я припускаю, що, на жаль, знадобиться певна форма перекодування.
Csaba Toth

0

Я думаю, що це повинно бути можливим, хоча для того, щоб приєднатися до роботи, для обох частин може знадобитися "однаковий" певний спосіб (резолюція тощо). Це здається, що це, мабуть, буде у вашій ситуації.

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


Дякуємо за посилання Я не міг спробувати це, оскільки сайт каже, що ця програма не підтримує Snow Leopard. Більше того, я щойно знайшов робоче рішення, використовуючи лише Quicktime (див. Мою відповідь). Крім того, хоча я не знаю в цьому випадку, деякі інструменти рекламують приєднання до відеофайлів, але роблять це з повним перекодування, що в кращому випадку вводить в оману.
jdmuys

Мої вибачення; Я неправильно прочитав цей біт на сайті. Радий, що ви знайшли простіший підхід - здалося дивним, що для цього потрібно буде придбати спеціальний інструмент.
Зак Томпсон,

0

Використовуйте mkvtoolnix . Потім відкрийте "mkvtoolnix-gui.exe" (у Windows 8.1 64bit він знаходиться за адресою: C: \ Program Files \ MKVToolNix \ mkvtoolnix-gui.exe). Додайте перший файл. Потім виберіть цей перший файл і клацніть правою кнопкою миші «додати файли» та виберіть файл (и), який потрібно об’єднати. Можливо, змініть папку призначення та ім'я файлу. Потім, нарешті, натисніть «почати мультиплексування».

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.