Варианты источников
Источник — это то, откуда Flussonic получает поток видеоданных. Источником может быть IP камера, спутник, HTTP сервер и т.д. Для указания источника нужно знать его адрес и видео-протокол, по которому Flussonic получает данные, т.е. нужно знать URL. Убедитесь, что ваш входной поток соответствует требованиям.
Источник видео задаётся с помощью параметра input
в настройках видеопотока. Например:
stream demo {
input udp://239.255.0.1:5500;
}
Ниже на этой странице показаны варианты URL для разных протоколов передачи медиа данных и для иных источников.
Как не нужно указывать источник в параметре input
-
Flussonic Media Server не поддерживает тип источника
http
, и адрес источника видаhttp://host/path
не будет работать. Требуется более детально указывать, что это — HTTP MPEG-TS, HLS или другой протокол. -
В качестве источника не указывайте файл на сервере. О том, как настроить раздачу файлов, читайте в разделе VOD — вещание файлов.
Важно. Для передачи видеоданных между несколькими серверами Flussonic Media Server мы рекомендуем использовать внутренний протокол Flussonic — M4F.
Содержание
- M4F/M4FS и M4S
- MPEG-TS по HTTP
- MPEG-TS по UDP
- MPEG-TS по TCP
- MPEG-TS опции
- HLS
- RTSP
- RTMP
- RTP
- File
- SHOUTcast
- SRT
- H323
- HTTP опции подключения
- DVB-S
- Таймшифт
- Миксер
- Мозаика
- Копия потока
M4F/M4FS и M4S
Мы рекомендуем протоколы M4F и M4S для передачи между серверами Flussonic. Это внутренние Flussonic-to-Flussonic протоколы.
M4F — сегментный протокол, рекомендуемый для любых задач телевидения, для массовых видеотрансляций. M4F подходит для репликации DVR архива, для рестриминга отдельных потоков в кластере.
- m4f://FLUSSONIC_HOST:PORT/STREAM_NAME — синтаксис
- m4f://flussonic.example.com/channel_01 — пример
M4FS работает так же, как и M4F, с одной разницей: он работает поверх HTTPS (использует шифрование SSL/TLS). Этот протокол рекомендуется использовать в тех случаях, когда шифрование необходимо или его требует провайдер контента.
- m4fs://FLUSSONIC_HOST:PORT/STREAM_NAME — синтаксис
- m4fs://flussonic.example.com/channel_01 — пример
M4S — это протокол потоковой передачи в реальном времени, идеально подходящий для рестриминга видео в реальном времени, например видеозвонков, для потоковой передачи видеоигр с низкой задержкой между серверами Flussonic.
- m4s://FLUSSONIC_HOST:PORT/STREAM_NAME — синтаксис
- m4s://flussonic.example.com/channel_01 — пример
M4S позволяет захватывать из источника только определенные дорожки:
- m4s://FLUSSONIC_HOST/STREAM_NAME/tracks-v2a1 — захват 2-й видеодорожки и 1-й аудиодорожки.
Если вы затрудняетесь в выборе между M4F и M4S, используйте m4f:// — это универсальное решение.
MPEG-TS по HTTP
- tshttp://hostname:port/stream — синтаксис (захват по HTTP)
- tshttps://hostname:port/stream — синтаксис (захват по HTTPS)
- tshttp://192.168.100.1/worldnews.ts — пример настоящего URL
MPEG-TS по UDP
SPTS (Single-Program Transport Stream)
- udp://MULTICAST-IP:PORT program=N — синтаксис (захват по UDP), где параметр
program
указывает номер программыN
- 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 юникаст по указанному адресу. - udp://224.0.0.251:1234?sources=192.168.0.12 — захват SSM (Source Specific Multicast)
MPTS (Multiprogram Transport Stream)
- mpts-udp://MULTICAST-IP:PORT program=N — синтаксис (захват по UDP), где параметр
program
указывает номер программыN
- mpts-udp://224.0.0.251:1234 program=2001 — захват указанной программы мультикаст-потока.
- mpts-udp://224.0.0.251:1234?sources=192.168.0.12 — захват SSM (Source Specific Multicast). Эта опция необходима для резервирования источника мультикаст-потока.
О том, что такое MPTS, читайте на странице MPTS.
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 {
input fake://fake;
}
stream input_hls {
input 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 cam1 {
input rtsp://localhost:554/origin tracks=1;
}
RTMP
- rtmp://hostname/application/stream
- rtmp://10.0.0.1/live/news
Example:
stream clock {
input fake://fake;
}
stream input_rtmp {
input rtmp://localhost:1935/static/clock;
}
Подробнее см. Захват потока по RTMP.
RTP
- rtp://hostname:port
- rtp://239.0.0.1:5600
Flussonic может принять raw RTP мультикаст (т.е. видео без MPEG-TS контейнера) и определит, какой кодек используется: H.264 или H.265 (HEVC). При смене кодека потребуется ручной перезапуск потока.
Прием звука по RTP на данный момент не поддерживается.
File
- file://vod-location/file.mp4 синтакс
- file://vod/bunny.mp4 пример реального потока, подробнее о VOD путях читайте в статье
Flussonic может создать зацикленный поток из любого .mp4
или .ts
файла, укажите адрес используя схему file://
.
SHOUTcast
- shoutcast://example.com/radio.acc
- shoutcasts://example.com/radio.acc
SHOUTcast — протокол для передачи аудио потоков через HTTP-соединения. Используйте схему shoutcast://
чтобы захватить SHOUTcast и ICEcast радио-потоки, а shoutcasts://
для HTTPS-источников.
SRT
Flussonic поддерживает захват потоков по протоколу SRT.
В общем случае случае необходимо использовать URL SRT-источника следующего вида:
srt://SRT-SOURCE:SRT_PORT?streamid=#!::m=request,r=STREAM_NAME
Подробнее о протоколе SRT, streamid
и других поддерживаемых параметрах см. Использование протокола SRT.
Варианты URL для захвата SRT описаны на странице Захват потока по SRT.
H323
- h323://192.168.100.150
Схема h323://
позволяет захватить видео по VoIP протоколу H323. Подробнее
Плата DVB, ATSC, ISDB
- input mpts-dvb://a0?program=1234
Схема mpts-dvb://
позволяет захватывать видео с плат DVB, ATSC, ISDB различных стандартов напрямую во 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://
позволяет собрать несколько потоков на один экран (мозаика). Подробнее в отдельной статье.
Копия потока
- copy://stream_name
Этот тип источника позволяет копировать любой поток, который уже есть в конфигурации. Это полезно, когда вы не можете захватить поток более одного раза, например, с плат SDI или RTSP-источников. Подробнее в отдельной статье.
MPEG-TS опции
Для tshttp://, udp://, tstcp:// источников можно указать дополнительные опции.
Захват конкретной MPEG-TS программы и PID-ов
stream clock {
input fake://fake;
}
stream example {
input 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 {
input file://vod/subs.ts;
}
stream example {
input 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 {
input tshttp://localhost:8080/example1/mpegts lang.default=eng lang.a1=eng lang.a2=rus;
}
stream example1 {
input file://vod/multilang2.ts;
}
Эта конфигурация добавляет дескрипторы языка в PMT выходного потока.
HTTP опции подключения
При подключении к источнику по HTTP-протоколам может потребоваться указать опредленный User-Agent:
stream example {
input tshttp://source:80/stream user_agent="VLC"
}
Чтобы указать HTTP заголовок, например, Referer
:
stream example {
input tshttp://source:80/stream header.Referer=https://flussonic.com;
}
Эти параметры находятся на странице дополнительных параметров Input > Options в веб-интерфейсе.