Мультибитрейтное проигрывание из нескольких файлов через 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 файле. Плеер проигрывает этот плейлист как один мультибитрейтный файл.