Skip to content

Мультибитрейтное проигрывание из нескольких файлов через SMIL

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

SMIL файл — это файл в формате XML, который позволяет составлять плейлисты для разных комбинаций VOD файлов с разным битрейтом. Он работает так же, как и функциональность auto-mbr, описанная здесь, но дает больше гибкости: можно включить в плейлист не все файлы из папки, а лишь некоторые. Кроме того, не существует никаких правил именования файлов, необходимо лишь поместить файлы в папку, в которой находится SMIL файл, или в ее подпапки.

Вы можете использовать SMIL файлы как на локальном компьютере, так и в хранилище Amazon S3. В примере ниже мы используем локальную VOD-локацию. Если вы используете хранилище Amazon S3, выполняйте такие же шаги, но в настройках VOD-локации укажите URL хранилища, как указано здесь.

Настройка VOD-локации

Предположим, что вы уже создали VOD-локацию.

В созданную VOD-локацию добавьте опцию auto_mbr.

  • Через файл:
vod vod1 {
  storage /storage;
  auto_mbr;
}
  • Через UI:

Откройте Files (VOD) > зайдите в VOD-локацию > на вкладке Output отметьте Enable MBR from multiple files.

Подготовка файлов

Поготовьте файлы с одинаковым контентом, но разным битрейтом, например: bunny_450, bunny_750, bunny_1100. Имена файлов могут быть любыми.

Поместите файлы в одну папку в VOD-локации. Некоторые файлы можно поместить в подпапки (например, вы можете поместить файл bunny_110 в подпапку folder).

Создание SMIL-файла

С помощью текстового редактора создайте файл *.smil (например, my.smil) в той же папке, где находятся видеофайлы. Структура SMIL файла должна быть следующей:

<?xml version="1.0" encoding="UTF-8"?>
<smil title="">
    <body>
        <switch>
            <video height="240" src="bunny_450.mp4" systemLanguage="eng" width="424">
                <param name="videoBitrate" value="450000" valuetype="data"></param>
                <param name="audioBitrate" value="44100" valuetype="data"></param>
            </video>
            <video height="360" src="bunny_750.mp4" systemLanguage="eng" width="640">
                <param name="videoBitrate" value="750000" valuetype="data"></param>
                <param name="audioBitrate" value="44100" valuetype="data"></param>
            </video>
            <video height="720" src="folder/bunny_1100.mp4" systemLanguage="eng" width="1272">
                <param name="videoBitrate" value="1100000" valuetype="data"></param>
                <param name="audioBitrate" value="44100" valuetype="data"></param>
            </video>            
        </switch>
    </body>
</smil>

Единственный обязательный и значимый параметр для каждого файла: src— относительный путь к файлу в папке, где находится SMIL файл. Flussonic игнорирует все остальные параметры и определяет размер, язык и битрейт каждого видеофайла автоматически.

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

Проигрывание плейлиста

Ниже описано, как проиграть плейлист.

  • HLS плейлист:
http://FLUSSONIC-IP/vod1/my.smil/index.m3u8
  • DASH плейлист:
http://FLUSSONIC-IP/vod1/my.smil/index.mpd

Flussonic создает плейлист HLS или DASH из файлов, перечисленных в SMIL файле. Плеер проигрывает этот плейлист как один мультибитрейтный файл.