Что такое формат A / V контейнера с поддержкой потоковой передачи? - PullRequest
4 голосов
/ 18 января 2012

Что именно отличает форматы контейнерных файлов с поддержкой потоковой передачи, такие как Matroska и MPEG-4 Part 14, от тех, которые предположительно не «готовы к потоковой передаче», как AVI?

Предоставляют ли они просто порядок метаданных и данных, который позволяет программному обеспечению для декодирования работать без произвольного доступа к медиафайлу или большим буферам, или они включают в себя некоторые заголовки синхронизации, чтобы позволить клиенту допустить некоторую потерю пакетов (с снижение верности)?

Или это даже особенность, которая должна обеспечиваться аудио и видео кодеками вместо контейнера? (Думаю, нет, потому что MPEG-4 (A) SP, кажется, пригоден для потоковой передачи (что бы это ни значило) внутри контейнеров MPEG-4 Part 14, но не внутри AVI.)

Мне интересно, можно ли отправить файл, готовый к потоковой передаче, по соединению с потерями (UDP без каких-либо дополнительных уровней синхронизации или метаданных) и разумно ожидать, что клиент допустит умеренное повреждение и / или потерю пакетов без постоянной потеря синхронизации или необходимость в каком-то промежуточном уровне.

Обновление: Я обнаружил, что транспортные потоки MPEG, по-видимому, предоставляют такие функции, как периодическая синхронизация и кадры метаданных, позволяющие клиенту восстанавливаться после потери или повреждения данных, тогда как MP4 и Matroska, по-видимому, предоставляют эту информацию только в заголовке файла.

Существуют ли на самом деле два вида потоковых форматов: «потоковые», которые все еще требуют надежного транспортного протокола (например, HTTP), например MP4 и Matroska, и «правильные» потоковые форматы, такие как MPEG-TS, которые могут допускать потерю данных в середине и разрешить ли клиентам настраиваться в любой момент времени, периодически включая заголовки и метаданные?

Как здесь RTP? Кажется, он предоставляет множество функций (нумерация кадров, заголовки описания формата, подсказки для кодека о том, как интерпретировать кадр (B- или I-кадр)), которые также присутствуют в MPEG-TS, но отсутствуют в MP4 и Matroska. .

1 Ответ

4 голосов
/ 18 января 2012

Формат файла, такой как AVI, помещает полную компиляцию различных смещений и длин мультимедийных блоков в специальный индекс.этот индекс помещается в конец файла.Следовательно, если вы хотите воспроизвести AVI, проигрыватель должен сначала достичь конца файла, чтобы получить этот индекс, прежде чем может произойти любое воспроизведение.Это то, что делает AVI пригодным для использования.

В форматах streamable метаданные (тип носителя, положение во времени, кодировка и длина) чередуются в основном в виде заголовков сегментов.

Вторым важным аспектом содержимого потоковой передачи является наличие меток времени.Каждый сегмент мультимедиа должен иметь точную метку времени, чтобы гарантировать, что при воспроизведении сеанса, скажем, в течение 5 часов - это не должно привести к постепенной потере LipSync из-за относительного сдвига между скоростями воспроизведения аудио и видео.AVI обычно предполагает, что есть стандартная скорость (25 кадров в секунду) для отображения и воспроизведения звука, и оставляет на устройстве управление этим со временем.Это делает это ужасно!

...