Сохраните манифест с параметром type=”dynamic”

Вопрос или проблема

<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd"
     profiles="urn:mpeg:dash:profile:isoff-live:2011,http://dashif.org/guidelines/dash-if-simple" 
     type="dynamic" 
     availabilityStartTime="1970-01-01T00:00:00Z" 
     publishTime="1970-01-01T00:00:00Z" 
     minimumUpdatePeriod="PT30S" 
     minBufferTime="PT2S" 
     timeShiftBufferDepth="PT1M" 
     maxSegmentDuration="PT2S">

Я попробовал все, что у меня было

-init_seg_name "init-$RepresentationID$.$ext$"
-media_seg_name "sg-$RepresentationID$-$Number%05d$.$ext$" 
-dash_segment_type webm 
-use_template 1 -use_timeline 1 -seg_duration 9 
-adaptation_sets "id=0, streams=v id=1, streams=a" 
-live 1 
-chunk_start_index 1 
-time_shift_buffer_depth 60 
-f dash {pathfilm}manifest.mpd

При конвертации файла, в манифесте

type="dynamic"

Когда конвертация видео завершена

type="statick"

Вопрос в том, как заставить ffmpeg. Когда конвертация видео завершена, сохранить манифест с параметром

type="dynamic"

??

Ответ или решение

Как сохранить манифест с параметром type="dynamic" при использовании FFmpeg

В данной статье мы рассмотрим, как правильно сохранить манифест в формате DASH с параметром type="dynamic" при помощи FFmpeg. Этот вопрос актуален для потокового видео и динамического потокового вещания, где важно поддерживать спецификации MEPG-DASH.

Понимание параметра type="dynamic"

При создании DASH манифеста, параметр type определяет характер манифеста:

  • dynamic: используется для потокового вещания и позволяет обновлять контент в режиме реального времени.
  • static: манифест создается один раз и не изменяется после завершения обработки видео.

Для настройки манифеста, чтобы он создавался с параметром type="dynamic", необходимо тщательно выбрать параметры командной строки в FFmpeg при его использовании.

Проблемы с сохранением манифеста

Ваша команда, предназначенная для создания манифеста, выглядит следующим образом:

-init_seg_name "init-$RepresentationID$.$ext$" \
-media_seg_name "sg-$RepresentationID$-$Number%05d$.$ext$" \
-dash_segment_type webm \
-use_template 1 -use_timeline 1 -seg_duration 9 \
-adaptation_sets "id=0, streams=v id=1, streams=a" \
-live 1 \
-chunk_start_index 1 \
-time_shift_buffer_depth 60 \
-f dash {pathfilm}manifest.mpd

Проблема, с которой вы столкнулись, заключается в том, что результатом выполнения является манифест с type="static", несмотря на то, что параметры для создания динамического манифеста указаны.

Решение проблемы

Для обеспечения того, чтобы ваш манифест создавался именно в формате type="dynamic", вам следует выполнить следующие шаги:

  1. Параметры команды: Убедитесь, что у вас указаны правильные параметры. Ключи -live 1 и -time_shift_buffer_depth должны позволить FFmpeg понимать, что вы хотите создать динамический манифест, однако, важно убедиться, что другие настройки также соответствуют этому требованию.

  2. Используйте правильные версии FFmpeg: Проверьте, используете ли вы последнюю стабильную версию FFmpeg, так как обновления могут содержать исправления и улучшения, касающиеся поддержки спецификаций DASH.

  3. Настройки для сегментов: Попробуйте изменить параметры -seg_duration и -minimumUpdatePeriod, чтобы лучше соответствует требованиям для динамического манифеста.

  4. Динамическое обновление: Возможно, вам потребуется установить соответствующий желаемый формат потокового видео и режим вывода, чтобы гарантировать, что сегменты создаются как динамические.

Вот переработанная команда, которую вы можете попробовать:

ffmpeg -i {input_file} \
-init_seg_name "init-$RepresentationID$.$ext$" \
-media_seg_name "sg-$RepresentationID$-$Number%05d$.$ext$" \
-dash_segment_type webm \
-use_template 1 -use_timeline 1 -seg_duration 9 \
-adaptation_sets "id=0, streams=v id=1, streams=a" \
-live 1 \
-minimum_update_period PT1S \
-time_shift_buffer_depth 60 \
-f dash {pathfilm}/manifest.mpd

Заключение

Создание DASH манифеста с параметром type="dynamic" требует чёткого соблюдения спецификаций и параметров командной строки в FFmpeg. Убедитесь, что используете актуальную версию инструментов и регулярно проверяете обновления функционала.

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

Оцените материал
Добавить комментарий

Капча загружается...