Каков формат сегмента mpeg-dash (обычно .m4s)?

1495
Ishaan Shringi

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

Я хочу создать сегменты .m4s, но я запутался в их структуре.

Другими словами, если мы объединим несколько сегментов, создадим ли мы транспортный поток mpeg, поток программы mpeg или отдельные элементарные потоки?

0

1 ответ на вопрос

0
slhck

Транспортные потоки MPEG-2 и сегменты MPEG-DASH - это разные вещи. Первый - это спецификация для пакетной передачи аудиовизуального контента по ненадежным сетям, тогда как последние используются для передачи по надежному HTTP. Таким образом, концепция немного отличается.

В отличие от MPEG-TS, существуют разные способы подготовки медиа для передачи MPEG-DASH. .m4sфайлы - это одна опция, фактически MPEG-TS - это другая.

.m4sфайлы представляют собой отдельные медиа сегменты одного полного файла. Они находятся в формате базового медиа-файла ISO (ISOBMFF) . Идея состоит в том, чтобы разбить один более длинный файл (например, один фильм, закодированный как .mp4файл) на отдельные файлы, которые можно загружать независимо через HTTP.

Если вы объедините несколько .m4sсегментов, вы снова получите полный, воспроизводимый файл - сами медиа-сегменты не могут быть воспроизведены сами по себе, так как они требуют, чтобы первый сегмент инициализации был декодирован первым. Пожалуйста, прочитайте связанную спецификацию для получения дополнительной информации. Вы также можете найти более старую информацию по этой теме в GPAC .

Вы можете объединить видео и аудио дорожки в один файл, но обычно для адаптивной потоковой передачи по HTTP аудио и видео передаются в отдельных потоках.

В вашем конкретном случае, если у вас уже есть контент MPEG-TS и вы хотите повторно смешать его в сегменты ISOBMFF, bento4 может быть хорошей платформой для использования, если вы хотите сделать это программно. Кроме того, dashcastпрограмма может принимать любые входные данные и создавать прямые выходные потоки DASH.

Может ли bento4 принять буфер транспортного потока в качестве входных данных (возможно, с использованием pipe) и создать содержимое в реальном времени? или есть другой инструмент? Ishaan Shringi 5 лет назад 0
Зависит от того, как вы получаете вход (это сетевой ресурс?) И хотите ли вы встроить его в более крупное приложение, но в принципе ffmpeg может использоваться для генерации потоков DASH из различных входных данных. slhck 5 лет назад 0
транспортный поток является входом UDP, мне нужно сгенерировать контент с использованием прямой черты. Я видел, что mp4box может `-grab-ts` из UDP souce и выгружать его в файл. Можем ли мы использовать его с `-dash-live` для создания живого контента? Ishaan Shringi 5 лет назад 0
Я бы порекомендовал использовать программу Dashcast: https://gpac.wp.imt.fr/dashcast/ slhck 5 лет назад 0