Различия между контейнером MPEG-1 и контейнером MPEG-2

Я ищу конкретные способы различать файлы, использующие контейнеры MPEG-1 и MPEG-2, поскольку большинство ресурсов, которые я нахожу, предполагают, что начальный код - 00 00 01 BA для обоих контейнеров.

Я попытался преобразовать видео в контейнере MP4 в контейнер MPEG-1, используя графический интерфейс VLC, и код начала пакета для полученного файла был 00 00 01 BA, что является причиной моего замешательства.

Возможно ли даже преобразовать видео в MP4 в контейнер MPEG-1 с помощью FFMPEG, поскольку все, что я пытаюсь, вместо этого генерирует файл в контейнере программного потока MPEG-2. Используемая команда была ffmpeg -i video.mp4 video.mpg


person Ajit    schedule 30.07.2018    source источник


Ответы (1)


Команда ffmpeg -i video.mp4 video.mpg создаст системный контейнер MPEG-1. Используйте ffmpeg -i video.mp4 -f vob video.mpg для MPEG-2 PS.

Сразу после PACK START CODE 00 00 01 BA. если следующие два бита - 01, это MPEG-2 PS (VOB, DVD-VOB или SVCD), иначе - 0010. это системы MPEG-1 или VCD.

person Gyan    schedule 30.07.2018
comment
Я попробовал обе команды и запустил ffprobe -show_format в выходных файлах, дал тот же результат, который: format_name = mpeg, format_long_name = MPEG-PS (программный поток MPEG-2). Я ошибаюсь, полагая, что 00 00 01 B3 - это начальный код пакета для контейнера MPEG-1. - person Ajit; 31.07.2018
comment
Два контейнера в основном одинаковы; разница заключается в частоте системных заголовков и добавлении / изменении нескольких полей пакета и т. д. FFmpeg имеет один демультиплексор для обоих, поэтому вы получите один и тот же идентификатор. - person Gyan; 31.07.2018
comment
У меня есть файл mpeg-2, который начинается с 00 00 01 B3. Параметр -show_format на ffprobe возвращает следующий результат имя_файла = mpegvideo, имя_длинного_формата = необработанное видео MPEG. Меня смущает формат контейнера, используемый в этом случае. Разве в данном случае это не контейнер MPEG-1 или MPEG-2? - person Ajit; 31.07.2018
comment
Это необработанный битовый поток, то есть MPEG ES, а не контейнер PS. У него будет ровно один поток. - person Gyan; 31.07.2018