Варианты источников
Источник — это то, откуда Flussonic получает поток видеоданных. Источником может быть IP камера, спутник, HTTP сервер и т.д. Для указания источника нужно знать его адрес и видео-протокол, по которому Flussonic получает данные, т.е. нужно знать URL.
Источник видео задаётся с помощью параметра url
в настройках видеопотока. Ниже на этой странице показаны варианты URL для разных протоколов передачи медиа данных.
Как не нужно указывать источник в параметре url
-
Flussonic Media Server не поддерживает тип источника
http
, и адрес источника видаhttp://host/path
не будет работать. Требуется более детально указывать, что это — HTTP MPEG-TS, HLS или другой протокол. -
В качестве источника не указывайте файл на сервере. О том, как настроить раздачу файлов, читайте в разделе VOD — вещание файлов.
Важно. Для передачи видеоданных между несколькими серверами Flussonic Media Server мы рекомендуем использовать внутренний протокол Flussonic — M4F.
Содержание
- M4F
- MPEG-TS по HTTP
- MPEG-TS по UDP
- MPEG-TS по TCP
- MPEG-TS опции
- HLS
- RTSP
- RTMP
- File
- SHOUTcast
- H323
- HTTP опции подключения
- File
- Таймшифт
- Миксер
- Мозаика
- DVB-S
M4F
Используется для передачи между серверами Flussonic. Например, подходит для репликации DVR архива, для рестриминга отдельных потоков в кластере.
- m4f://hostname:port/stream — синтаксис
- m4f://flussonic.example.com/channel_01 — пример
MPEG-TS по HTTP
- tshttp://hostname:port/stream — синтаксис (захват по HTTP)
- tshttps://hostname:port/stream — синтаксис (захват по HTTPS)
- tshttp://192.168.100.1/worldnews.ts — пример настоящего URL
MPEG-TS по UDP
- udp://239.255.1.1:5500 — мультикаст URL
- udp://239.255.1.1:5500/192.168.10.1 — захват мультикаста через указанный интерфейс
- udp://192.168.0.1:12345 — юникаст URL. Где
192.168.0.1
адрес источника. Flussonic фильтрует входящий UDP юникаст по указанному адресу.
MPEG-TS по TCP
- tstcp://192.168.0.1:54321
HLS
- hls://HOSTNAME/PATH/TO/MANIFEST.m3u8 — синтаксис
- hls://10.0.0.1/news.m3u8 — пример настоящего URL
- hls://example.com/news/index.m3u8 — пример настоящего URL.
- hlss://HOSTNAME/PATH/TO/MANIFEST.m3u8 — захват по HTTPS.
При запуске потока Flussonic Media Server проверяет, что источник не завис, скачивая несколько раз индекс.
Проверка может быть отключена с помощью опции skip_stalled_check
:
stream origin {
url fake://fake;
}
stream input_hls {
url hls://localhost:80/origin/index.m3u8 skip_stalled_check=true;
}
RTSP
Одного IP адреса камеры недостаточно для получения с нее видео. Всегда нужно указать ещё один путь. Он не всегда приводится в документации, поэтому, возможно, придется обращаться к продавцу или производителю камеры.
- rtsp://hostname/path — синтаксис
- rtsp://user:password@ip/path — URL с указанием авторизации
- rtsp2://hostname/path — включает транскодирование звука в AAC. Подробнее
- rtsp://192.168.0.100/h264 — пример настоящей ссылки
Вы можете использовать опцию tracks=1
для захвата только видео дорожки.
stream fake {
url fake://fake;
}
stream input_rtsp {
url rtsp://localhost/fake tracks=1;
}
RTMP
- rtmp://hostname/application/stream
- rtmp://10.0.0.1/live/news
Example:
stream clock {
url fake://fake;
}
stream input_rtmp {
url rtmp://localhost:1935/static/clock;
}
Протокол требует, чтобы в URL было не меньше двух сегментов.
Первый сегмент, по умолчанию, используется для указания имени RTMP приложения (application
).
Если название RTMP приложения на сервере состоит больше чем из одного сегмента, то в адресе надо указать два слэша для явного разделения на application
и stream name
.
File
- file://vod-location/file.mp4 синтакс
- file://vod/bunny.mp4 пример реального потока, подробнее о VOD путях читайте в статье
Flussonic может создать зацикленный поток из любого .mp4
или .ts
файла, укажите адрес используя схему file://
.
SHOUTcast
- shout://example.com/radio
Схема shout://
позволяет захватить SHOUTcast и ICEcast радио-потоки.
H323
- h323://192.168.100.150
Схема h323://
позволяет захватить видео по VoIP протоколу H323. Подробнее
Плата DVB-S
- url mpts-dvb://a0?program=1234
Схема mpts-dvb://
позволяет захватывать видео с платы DVB-S напрямую во Flussonic. Подробнее
Таймшифт
- timeshift://ipcam/3600
- timeshift://news/10600
Схема timeshift://
позволяет создать поток, идентичный исходному (ipcam, news в примере), который будет вещаться из архива с заданным отставанием (в секундах).
Миксер
- mixer://stream1,stream2
Схема mixer://
позволяет склеить видеодорожку из первого потока с аудиодорожкой из второго. Подробнее в отдельной статье.
Мозаика
- mosaic://cam1,cam2,cam3,cam4?fps=20&preset=ultrafast&bitrate=1024k&size=340x240&mosaic_size=4
Схема mosaic://
позволяет собрать несколько потоков на один экран (мозаика). Подробнее в отдельной статье.
MPEG-TS опции
Для tshttp://, udp://, tstcp:// источников можно указать дополнительные опции.
Захват конкретной MPEG-TS программы и PID-ов
stream clock {
url fake://fake;
}
stream example {
url tshttp://localhost:80/clock/mpegts program=1 pids=211;
}
Управление субтитрами
Вы можете управлять DVB-субтитрами в выходном потоке с помощью опции subtitles
, которая имеет следующие значения:
drop
— в выходном потоке не будет дорожки субтитров. Пример см. ниже.accept
— в выходном потоке будет дорожка с субтитрами в DVB формате, без преобразования в текст.ocr_replace
— в выходном потоке будет дорожка, содержащая субтитры, преобразованные в текстовый формат (WebVTT).ocr_add
— выходной поток будет иметь две дорожки субтитров: исходную дорожку с субтитрами в DVB и новую дорожку с текстовыми субтитрами.
Принятие субтитров
Flussonic Media Server по умолчанию всегда принимает субтитры от публикуемых потоков. Это справедливо как для публикаций в статический поток, так и по динамическому имени. Чаще всего не нужно явно указывать subtitles=accept
.
Отклонение субтитров
Если субтитры в потоке не нужны, опцию subtitles
следует установить в drop
:
stream origin {
url file://vod/subs.ts;
}
stream example {
url tshttp://localhost:80/origin/mpegts subtitles=drop;
}
Note
Для live-потоков субтитры всегда включены. Опция subtitles
не поддерживается для live публикаций, и выключить субтитры в этом случае не получится.
Устаревшая опция allow_subtitles
поддерживается только для обратной совместимости.
Конвертация субтитров
О распознавании и преобразовании DVB-субтитров см. Конвертация субтитров из DVB в WebVTT
Редактирование дескриптора Language в Program Map Table (PMT)
Если во входящем MPEG-TS потоке отсутствует дескриптор Language
в аудио PID, могут возникнуть проблемы с воспроизведением на приставках, например, если там определенный язык был выбран как предпочтительный.
Flussonic 20.05 и выше позволяет устанавливать и редактировать дескриптор языка для аудио дорожек в выходном MPEG-TS потоке. Для этого используется опция lang
в настройках входного потока. Необходимо перечислить коды языков в формате ISO 639:
stream example {
url tshttp://localhost:8080/example1/mpegts lang.default=eng lang.a1=eng lang.a2=rus;
}
stream example1 {
url file://vod/multilang2.ts;
}
Эта конфигурация добавляет дескрипторы языка в PMT выходного потока.
HTTP опции подключения
При подключении к источнику по HTTP-протоколам может потребоваться указать опредленный User-Agent:
stream example {
url tshttp://source:80/stream user_agent="VLC"
}
Чтобы указать HTTP заголовок, например, Referer
:
stream example {
url tshttp://source:80/stream header.Referer=https://flussonic.com;
}
Эти параметры находятся на странице дополнительных параметров Input > Options в веб-интерфейсе.