Сырой битовый поток против контейнера?

Я изучал мультимедийные форматы (хотя недавно мне сказали не использовать слово "формат", поскольку оно неоднозначно.)

Я узнал, что видеофайл состоит из Raw Bitstream кодируется в соответствии с каким-то стандартом, например H. 264, тогда этот битовый поток упакован в контейнер, например,.МР4.

то есть Raw Bitstream (кодируется по стандартному протоколу)+ контейнер = Мой Видеофайл

Я узнал об этом из другой статьи суперпользователя:что такое кодек (например, DivX?), и чем он отличается от формата файла (например, MPG)?


в этой статье, он также сказал следующее:

до сих пор мы только объяснили сырой "поток битов", которые просто реально сырые видео данные. Вы могли бы пойти дальше и посмотреть видео, используя такой raw поток битов. Но в большинстве случаев этого недостаточно или непрактично.

поэтому вам нужно обернуть видео в контейнер. Есть несколько причин, почему:

-может быть, вы хотите, чтобы некоторые аудио вместе с видео.

-может быть, вы хотите перейти к определенной части видео (например, "перейти к 1: 32: 20.12").

-и аудио и видео должны быть совершенно синхронизированы.

-видео, возможно, потребуется передать через надежная сеть и разделение на пакеты раньше.

-видео может даже быть отправлено по сети с потерями (например, 3G) и разделено на пакеты раньше.

Я просто не понимаю, почему сырьевого потока не могу быть использованы, и как контейнер может позволить ВСЕ эти вещи. Он говорит, что они can, но он не объясняет как, и это то, что я получаю.

Это, вероятно, потому, что Я никогда не имел дела с сырьевых потоков, когда-либо в моей жизни. Я всегда нажимал на кнопку.mp4 файл-контейнер, и он просто работал.

может кто-нибудь объяснить волшебство контейнеров и как они увеличивают сырцовые Bitstreams?

5
задан Anton Paras
27.03.2023 20:15 Количество просмотров материала 2699
Распечатать страницу

1 ответ

контейнеры добавляют метаданные в один или несколько "необработанных битовых потоков". Последнее можно представить как традиционную пленку: серию изображений, не более того. Контейнер будет действовать как коробка, в которой хранится рулон фильма: он добавляет название, индексные позиции (сцена 2 начинается в 03:45), общую длину и так далее.

чистое видео без контейнера может работать; продолжительность, очевидно, может быть вычислена без индекса , но она быстро становится непрактичной - все видео должно быть декодировано, чтобы получить его общая длина, как объем данных, необходимых для хранения второй пленки не обязательно постоянна (некоторые кодеки даже позволяют переменной частоты кадров). Чтобы пропустить вперед десять секунд, потребуется предварительное декодирование десяти секунд видео; чтобы пропустить назад десять секунд, потребуется повторное декодирование с самого начала, или нужно будет сохранить текущий индекс того, что уже было видно. Не красиво и не эффективно.

Итак, в случае потоковой передачи, контейнеры оптимизируют операции, такие как поиск или получение общей длины; нет необходимости предварительно загружать больше данных, чем действительно необходимо. Сеанс просмотра может начинаться с половины, без загрузки, а затем декодирования первой половины.

те же ограничения применяются к чистому аудио.

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

Так, контейнеры в основном хранят избыточную информацию, которую можно легко собрать из "необработанных битовых потоков", но это дополнение делает много операций более эффективными и повышает надежность.

1
отвечен Patrice Levesque 2023-03-29 04:03

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх