Skip to content

Редактирование названий аудиодорожек в OTT плейлистах/манифестах

Редактирование названий аудиодорожек

При транскодировании потока с несколькими аудиодорожками и включённом параметре split_channels=true Flussonic Media Server разделяет каждую стереопару на отдельные моно-дорожки. По умолчанию в HLS мастер-плейлисте и DASH манифесте эти дорожки получают названия вида undefined a1, undefined a2 и т.д.

Для примера чтобы задать осмысленные значения параметров NAME и LANGUAGE в тегах #EXT-X-MEDIA мастер-плейлиста HLS, используйте блок input_media_info в конфигурации потока. Этот блок позволяет переопределить метаданные (в частности language и title) для каждой входной аудиодорожки до разделения каналов.

Параметр language применяется ко всей аудиодорожке (стереопаре) целиком. После split_channels=true моно-дорожки наследуют это значение, а Flussonic автоматически добавляет суффикс aX (где X — номер канала).

Пример конфигурации для источника с двумя стереопарами (после разделения — 4 моно-дорожки):

stream fake_ts {
    input tshttp://es1.e/fake/mpegts;
    input_media_info {
        track {
            content video;
        }
        track {
            content audio;
            match index=1;
            language eng;
        }
        track {
            content audio;
            match index=2;
            language rus;
        }
    }
    transcoder vb=1000k vb=700k vcodec=h264 size=1280x720:fit:#000000 ab=64k split_channels=true;
}

В результате мастер-плейлист HLS будет содержать примерно следующее (Эти изминения так же будут применены к DASH):

#EXTM3U
#EXT-X-MEDIA:URI="tracks-a1/mono.ts.m3u8?hls_proxy_host=...",TYPE=AUDIO,GROUP-ID="aac",NAME="eng a1",LANGUAGE="eng",DEFAULT=YES
#EXT-X-MEDIA:URI="tracks-a2/mono.ts.m3u8?hls_proxy_host=...",TYPE=AUDIO,GROUP-ID="aac",NAME="eng a2",LANGUAGE="eng",DEFAULT=NO
#EXT-X-MEDIA:URI="tracks-a3/mono.ts.m3u8?hls_proxy_host=...",TYPE=AUDIO,GROUP-ID="aac",NAME="rus a3",LANGUAGE="rus",DEFAULT=NO
#EXT-X-MEDIA:URI="tracks-a4/mono.ts.m3u8?hls_proxy_host=...",TYPE=AUDIO,GROUP-ID="aac",NAME="rus a4",LANGUAGE="rus",DEFAULT=NO
#EXT-X-STREAM-INF:...

Важно
Параметр language применяется до разделения каналов. Если у источника всего две аудиодорожки, нельзя указывать match index=3 или match index=4 — эти индексы появляются только после split_channels=true.

Для более тонкого управления метаданными (подробнее см. API справочник).