dash_doc
dash_doc
Структура контейнера DASH (Dynamic Adaptive Streaming over HTTP) можно представить в виде таблицы, описывающей ключевые компоненты и их назначение.
Вот таблица с описанием структуры контейнера DASH:
| Компонент | Описание |
|---|---|
| MPD (Media Presentation Description) | Основной манифест, описывающий структуру и содержимое потока, включая информацию о периодах, адаптационных наборах, представлениях и сегментах. |
| Period | Отдельный временной интервал в MPD, содержащий один или несколько адаптационных наборов. |
| Adaptation Set | Набор представлений одного типа контента (например, видео или аудио), предназначенных для адаптивного потока. |
| Representation | Конкретное представление контента в адаптационном наборе, включающее параметры, такие как кодек, разрешение и битрейт. |
| Segment Template | Шаблон для формирования URL сегментов, содержащий информацию о формате сегментов и их именах. |
| Initialization Segment | Начальный сегмент, содержащий информацию для декодирования последующих медиа-сегментов (например, заголовки кодека). |
| Media Segment | Основные сегменты медиа данных, содержащие видео, аудио или другие медиа данные. |
| Index Segment | Сегмент, содержащий индексную информацию для доступа к медиа-сегментам (например, sidx box). |
| Bitstream Switching Segment | Сегмент, позволяющий плавно переключаться между различными битрейтами в адаптивном потоке. |
Описание ключевых элементов
-
MPD:
- Содержит метаданные о контенте, такие как длительность, доступные адаптационные наборы и представления.
-
Period:
- Определяет временные интервалы, может содержать рекламу или дополнительные видео фрагменты.
-
Adaptation Set:
- Группирует представления одного типа, может содержать несколько кодеков или разрешений.
-
Representation:
- Конкретный вариант медиа контента с определенными характеристиками, такими как битрейт и разрешение.
-
Segment Template:
- Используется для генерации URL для сегментов, упрощая их адресацию и доступ.
-
Initialization Segment:
- Включает информацию, необходимую для начала воспроизведения, например, заголовки кодека.
-
Media Segment:
- Основные сегменты, содержащие данные для воспроизведения медиа контента.
-
Index Segment:
- Содержит информацию об офсетах и длительностях медиа-сегментов, что облегчает их поиск и доступ.
-
Bitstream Switching Segment:
- Позволяет менять битрейт без прерывания воспроизведения, поддерживая адаптивное потоковое вещание.
Эта структура обеспечивает гибкость и масштабируемость DASH, позволяя адаптивно изменять качество потока в зависимости от условий сети и устройства пользователя.
Для связи структуры контейнера DASH с исходным кодом библиотеки , нужно рассмотреть, как ключевые компоненты DASH обрабатываются в коде. Ниже приведена таблица с основными компонентами DASH и соответствующими частями исходного кода.
Таблица: Соответствие компонентов DASH исходному коду библиотеки
| Компонент | Описание | Исходный код (файл) |
|---|---|---|
| MPD (Media Presentation Description) | Основной манифест, описывающий структуру и содержимое потока, включая информацию о периодах, адаптационных наборах, представлениях и сегментах. | и |
| Period | Отдельный временной интервал в MPD, содержащий один или несколько адаптационных наборов. | (часть обработки MPD) |
| Adaptation Set | Набор представлений одного типа контента (например, видео или аудио), предназначенных для адаптивного потока. | (часть обработки MPD) |
| Representation | Конкретное представление контента в адаптационном наборе, включающее параметры, такие как кодек, разрешение и битрейт. | (часть обработки MPD) |
| Segment Template | Шаблон для формирования URL сегментов, содержащий информацию о формате сегментов и их именах. | (часть обработки MPD) |
| Initialization Segment | Начальный сегмент, содержащий информацию для декодирования последующих медиа-сегментов (например, заголовки кодека). | , , (парсинг box'ов) |
| Media Segment | Основные сегменты медиа данных, содержащие видео, аудио или другие медиа данные. | , |
| Index Segment | Сегмент, содержащий индексную информацию для доступа к медиа-сегментам (например, sidx box). | , |
| Bitstream Switching Segment | Сегмент, позволяющий плавно переключаться между различными битрейтами в адаптивном потоке. | (общая обработка переключения битрейтов) |
Описание соответствий
-
MPD (Media Presentation Description):
- Исходный код: Парсинг MPD осуществляется в файлах
иToolsMpdParser.h. Эти файлы содержат функции для обработки и разбора MPD-файлов, извлекая информацию о периодах, адаптационных наборах и представлениях.ToolsMpdParser.mm
- Исходный код: Парсинг MPD осуществляется в файлах
-
Period, Adaptation Set, Representation, Segment Template:
- Исходный код: Эти компоненты также обрабатываются в файлах
иToolsMpdParser.h, так как они являются частью структуры MPD. Эти файлы отвечают за извлечение и обработку информации о каждом из этих компонентов.ToolsMpdParser.mm
- Исходный код: Эти компоненты также обрабатываются в файлах
-
Initialization Segment:
- Исходный код: Файлы
,avcc_contents.h, иavcc_contents.ccобрабатывают начальные сегменты, такие как avcC box, который содержит информацию, необходимую для декодирования последующих медиа-сегментов.box.h
- Исходный код: Файлы
-
Media Segment:
- Исходный код: Файлы
иmdat_contents.hобрабатывают основные медиа-сегменты, содержащие аудио или видео данные.mdat_contents.cc
- Исходный код: Файлы
-
Index Segment:
- Исходный код: Файлы
иsidx_contents.hобрабатывают индексные сегменты, которые содержат информацию для доступа к медиа-сегментам.sidx_contents.cc
- Исходный код: Файлы
-
Bitstream Switching Segment:
- Исходный код: Файл
содержит функции для общей обработки и преобразования DASH в HLS, включая обработку переключения битрейтов.dash_to_hls_api.cc
- Исходный код: Файл