Skip to content

Варианты источников

Источник — это то, откуда 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

Мы рекомендуем протоколы M4F и M4S для передачи между серверами Flussonic. Это внутренние Flussonic-to-Flussonic протоколы.

M4F — сегментный протокол, рекомендуемый для любых задач телевидения, для массовых видеотрансляций. M4F подходит для репликации DVR архива, для рестриминга отдельных потоков в кластере.

  • m4f://FLUSSONIC_HOST:PORT/STREAM_NAME — синтаксис
  • m4f://flussonic.example.com/channel_01 — пример

О протоколе M4F

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 в веб-интерфейсе.