Перейти к основному содержимому

MPG

MPEG Program Stream (MPG) является одним из самых популярных в прошлом контейнерных форматов для хранения видео и аудио данных. Он использовался в DVD-дисках, а также в потоковом вещании цифрового телевидения. Формат MPG был стандартизирован Международной организацией по стандартизации (ISO/IEC) под номером ISO/IEC 13818-1 и впервые появился в начале 1990-х годов.

Основные характеристики

Структура контейнера

  • Видео: обычно использует формат сжатия MPEG-1 или MPEG-2.
  • Аудио: чаще всего MP2 или AC-3.
  • Подканалы: могут включать субтитры, дополнительные аудиодорожки и другие данные.

Каждый поток содержит заголовки и пакеты данных, упакованные в блоки фиксированной длины (188 байт). Эти блоки называются пакеты транспортного потока (TS packets).

Сжатие видео

Для сжатия видео в формате MPG используются алгоритмы MPEG-1 и MPEG-2. Они основаны на дискретном косинусном преобразовании (DCT), предсказании движения и интерполяции кадров. Например, в MPEG-2 применяются три типа кадров:

  • I-кадр (Intra-coded frame): полностью закодированный кадр, который не зависит от других кадров.
  • P-кадр (Predicted frame): кадры, которые используют информацию из предыдущих I- или P-кадров для предсказания текущего кадра.
  • B-кадр (Bi-directional predicted frame): кадры, которые используют информацию как из предыдущих, так и из последующих кадров для предсказания.

Аудиосжатие

Аудио в формате MPG может использовать различные схемы сжатия, такие как MP2 (MPEG-1 Layer II) и AC-3 (Dolby Digital). MP2 обеспечивает хорошее качество звука при относительно низком битрейте, тогда как AC-3 поддерживает многоканальный звук и часто используется в киноиндустрии.

Спецификация формата

Формат MPG включает следующие ключевые элементы:

  • Система пакетов (Packetized Elementary Stream, PES): каждый элементарный поток (видео, аудио, субтитры) разбивается на пакеты PES, которые затем объединяются в транспортный поток.
  • Транспортный поток (Transport Stream, TS): структура, состоящая из множества PES-пакетов, объединенных вместе. Каждый пакет имеет длину 188 байт и включает заголовок и полезную нагрузку.
  • Синхронизация: обеспечивается за счет использования специальных маркеров синхронизации, которые позволяют декодеру правильно восстанавливать временные метки и последовательность кадров.

Использование в практике

Работа с ffmpeg

ffmpeg — это мощный инструмент для работы с мультимедийными файлами, включая файлы формата MPG. Вот несколько примеров использования ffmpeg для обработки файлов MPG:

# Конвертация файла AVI в MPG
ffmpeg -i input.avi -c:v mpeg2video -b:v 4M -c:a mp2 -b:a 192k output.mpg

# Извлечение видео из MPG-файла
ffmpeg -i input.mpg -c copy video.mp4

# Извлечение аудио из MPG-файла
ffmpeg -i input.mpg -vn -acodec copy audio.mp3

Работа с gstreamer

gstreamer — это фреймворк для создания графов обработки медиа-данных. Вот пример использования gstreamer для воспроизведения MPG-файлов:

# Воспроизвести файл MPG
gst-launch-1.0 filesrc location=input.mpg ! tsdemux name=demux \
demux.video_00 ! queue ! mpegvideoparse ! mpeg2dec ! xvimagesink \
demux.audio_00 ! queue ! a52dec ! autoaudiosink