Конкатенация MP4Box MP4 не работает

Я скачиваю лекции в формате mp4 с Udacity, но они часто разбиты на куски по 2-5 минут. Я хотел бы объединить видео для каждой лекции в один непрерывный поток, что мне удалось сделать в Windows с помощью AnyVideo Converter. Я пытаюсь сделать то же самое в Ubuntu 15, и большинство результатов моего веб-поиска предлагают MP4Box, чья документация и все онлайн-примеры, которые я могу найти, предлагают следующий синтаксис:

MP4Box -cat vid1.mp4 -cat vid2.mp4 -cat vid3.mp4 -new combinedfile.mp4

Это создает новый файл с работающим звуком, но видео не работает. Когда я открываю собственный видеоплеер Ubuntu, я получаю сообщение об ошибке «Нет действительных кадров, декодированных до конца потока». Когда я открываю с помощью VLC, я получаю сообщение об ошибке «Кодек не поддерживается: VLC не удалось декодировать формат« avc3 »(нет описания для этого кодека». Я также пытался использовать переключатель -keepsys, но я получаю те же результаты .

Вся документация и онлайн-обсуждения звучат так, как будто то, что я пытаюсь сделать, и должно быть очень простым, но я не могу найти информацию, относящуюся к конкретным ошибкам, которые я получаю. Что мне не хватает?


person tmoore82    schedule 27.05.2015    source источник


Ответы (2)


Используйте опцию -force-cat.

Например,

MP4Box -force-cat -add in1.mp4 -cat in2.mp4 -cat in3.mp4 ... -new out.mp4

Из документации MP4Box:

-force-cat
       skips media configuration check when concatenating file.
person Usama    schedule 24.01.2016
comment
Это сработало! Не могли бы вы объяснить, почему? В документации сказано: -force-cat skips media configuration check when concatenating file. Я не знаю, как это работает. - person Gleasonator; 26.11.2016

Судя по наличию 'avc3', эти видео закодированы с помощью h.264|avc. Существует несколько способов объединения таких потоков. Либо видеопотоки имеют совместимые конфигурации кодировщика (размер кадра, ...), и в этом случае в файле используется только одно описание конфигурации (обозначается как «avc1»). Если конфигурации не полностью совместимы, MP4Box использует «внутриполосное» хранилище этих конфигураций (обозначается «avc3»). Другим способом было бы использование нескольких образцов описания (конфигураций потока), но это не очень хорошо поддерживается игроками и пока невозможно с MP4Box. Другого пути нет, если вы не хотите перекодировать свои видео. В Ubuntu вы должны иметь возможность воспроизводить потоки avc3 с помощью проигрывателя MP4Box: MP4Client.

person cconcolato    schedule 07.09.2015