Документация на Flussonic Media Server

  1. Быстрый старт
  2. How To
  3. Потоковое вещание
    1. Публикация
    2. Прием мультикаста
    3. Варианты источников
    4. Переключение источников
    5. Плейлисты
    6. Наложение логотипа
    7. Миксер
    8. WebRTC публикация
    9. SDI
    10. Отправка на другие сервера
    11. Распознавание DVB субтитров
  4. Транскодер
    1. Логотип
    2. Hardware
    3. Скриншоты
    4. Мозаика
  5. DRM
    1. Simple CAS
    2. Conax DRM
    3. BuyDRM (KeyOS)
  6. Авторизация
    1. Конструктор бэкендов
    2. Сервис сбора статистики
    3. Domain lock
    4. Middleware
    5. Secure links
    6. Ограничение сессий
    7. Мультиавторизация
    8. Бан IP адресов
    9. DVR
    10. Aliaser
  7. API
    1. HTTP API
    2. Events API
    3. MySQL API
    4. SQL API для кластеров
    5. SNMP
  8. Кластер
    1. Ретрансляция
    2. Кластерный захват
    3. Балансировщик нагрузки
    4. Пиринг
    5. Организация CDN
  9. VOD
    1. Кэш
    2. Облако
    3. Транскодирование файлов
  10. DVR
    1. Настройка
    2. Timeshift
    3. Catchup
    4. Проигрывание
    5. Экспорт в MP4
    6. Доступ по протоколам
    7. Timelapse
    8. API
    9. Кластеризация DVR
    10. Репликация
    11. Облако
  11. Воспроизведение
    1. HLS
    2. embed.html
    3. HTML5 с низкой задержкой
    4. Плеер HTML5 с низкой задержкой
    5. MPEG-TS
    6. RTMP
    7. DASH
    8. HDS
    9. RTSP
    10. multicast, CBR UDP
    11. WebRTC проигрывание
    12. H.265
  12. Администрирование
    1. Установка
    2. Обновление

    3. Конфигурация
    4. Мониторинг
    5. Производительность
    6. Лицензия
    7. LUA скрипты
    8. Безопасность
    9. Let's Encrypt
    10. Миграция
  13. IPTV
    1. Захват спутникового видео
    2. Транскодирование
    3. Middleware в IPTV OTT
    4. Экспорт EPG со спутника
    5. Группы каналов

Скриншоты

Flussonic Media Server умеет вырезать скриншоты из видео. С их помощью вы сможете:

  • показать предпросмотр текущего транслируемого видео на веб-странице;
  • оценить качество потока;
  • захватить нужный момент времени;
  • быстро искать в архиве нужный момент видео по скриншотам;
  • создать страницу со скриншотами потока, чтобы быстро просмотреть сутки архивной записи;
  • делать что вам угодно с маленькими статическими картинками из большого видео потока.

Flussonic Media Server делает скриншоты двумя принципиально различными способами:

  • Извлекает кадры видео в виде JPEG-изображений и может сохранять их в архиве. Об этом читайте ниже.
  • Создает MP4 видео-скриншоты:

    В H.264-потоке с ключевыми кадрами уже есть сжатые изображения. Flussonic Media Server берет первый ключевой кадр из каждого сегмента и показывает его как видео, состоящее из одного кадра. Подробности в разделе Видео-скриншоты.

О JPEG скриншотах Anchor Anchor x2

Flussonic Media Server делает операцию, которая достаточно требовательна к ресурсам процессора: берётся первый ключевой кадр из сегмента, раскодируется и кодируется обратно в JPEG изображение. Выглядит просто, но когда у вас 300 потоков, то этот процесс требует много процессорного времени.

Flussonic позволяет оптимизировать нагрузку - меняя длительность сегмента, вы можете менять количество JPEG скриншотов. Тот факт, что Flussonic Media Server берёт только первый ключевой кадр из сегмента, означает, что если вы настроили длительность сегмента равной трём секундам, у вас будет 20 JPEG картинок в минуту. Если длительность сегмента установлена в 6 секунд, получится 10 JPEG изображений в минуту. Если вы получаете поток с IP камеры, у вас может быть 60 ключевых кадров в минуту, но Flussonic Media Server создаст меньшее количество JPEG-изображений.

Замечание. Когда вы включаете для потока запись архива, все эти JPEG-скриншоты пишутся на диск.

Можно облегчить нагрузку на процессор, используя загрузку скриншотов по заданному URL. Такой способ применяется с IP камерами, так как IP камеры создают свежий JPEG скриншот для показываемого видео. В этом случае Flussonic Media Server будет загружать JPEG изображения каждый раз, когда начинается новый сегмент.

Настройка генерации JPEG скриншотов Anchor Anchor x2

Flussonic Media Server делает JPEG скриншоты с помощью дополнительного отдельно устанавливаемого пакета flussonic-ffmpeg.

Установите пакет:

apt-get -y install flussonic-ffmpeg
/etc/init.d/flussonic restart

Добавьте опцию thumbnails в конфиг потока:

stream ort {
  url udp://239.255.0.100:1234;
  thumbnails;
}

Это запустит отдельный процесс flussonic-thumbnailer. Возможно, он будет потреблять значительное количество ресурсов, но, к сожалению, это неотъемлемая черта процессов сжатия видео и изображений.

Все настройки могут быть сделана в веб-панели адинистратора: Настройки потока > Process.

скриншоты из видео

Настройка загрузки JPEG скриншотов по URL Anchor Anchor x2

Вы можете указать URL, по которому Flussnic Media Server будет загружать скриншоты, что уменьшит использование процессора. Многие камеры имеют специальный URL для скриншотов:

stream cam0 {
  url rtsp://10.0.4.3:554/h264;
  thumbnails url=http://10.0.4.3/cgi-bin/snapshot.cgi
}

Вы можете попробовать найти этот URL в документации на вашу камеру, но в 99% случаев этой инструкции нет и вам придётся искать URL для скриншотов в Интернете.

Получение live скриншота Anchor Anchor x2

После того как вы включили скриншоты в настройках, нужно получить их.

URL для доступа к live-скриншоту такой:

http://flussonic:8080/ort/preview.jpg — последний скриншот пототока.

http://flussonic:8080/ort/preview.mjpeg — MJPEG поток скриншотов.

Мы рекомендуем никогда не использовать MJPEG, потому что это неконтролируемый способ передачи видео с очень высоким битрейтом. Вы можете получить MJPEG поток с битрейтом до 50% от исходного потока со скоростью 0.1 кадр в секунду. Используйте это только при необходимости.

Получение JPEG скриншотов из архива по времени GMT Anchor Anchor x2

Скриншоты автоматически сохраняются в архив. Они могут быть получены с помощью HTTP API.

Экономично по ресурсам получать JPEG скриншоты, указывая приблизительное GMT время в URL. Flussonic найдет ближайший сохраненный скриншот и вернет URL с точным временем.

curl -v 'http://192.168.2.3:8080/ort/2018/05/02/06/59/38.jpg'
...
< HTTP/1.1 302 Found
< Location: /ort/2018/05/02/07/00/40.jpg

По полученному времени находится реальный скриншот.

Подробно этот способ описан в DVR API, Получение JPEG скриншотов по времени GMT.

Получение JPEG скриншотов из архива по времени UTC Anchor Anchor x2

Внимание! Этот способ затратный по ресурсам, мы не рекомендуем его использовать. Лучше получать скриншоты по времени GMT, см. Получение JPEG скриншотов по времени GMT.

Сначала надо выбрать временной промежуток, для которого надо прочитать архив. Например, сейчас 21 апреля 2017, 13:10 GMT, что соответствует 1492780200 UTC. Если вы хотите получить скриншоты за последний час, надо запросить следующий URL:

curl 'http://flussonic:8080/clock/recording_status.json?from=1492776600&to=1492780200&request=brief_thumbnails'

По умолчанию Flussonic не включает в ответ список таймстемпов. Для их получения к запросу нужно добавить request=brief_thumbnails.

Ответ может быть таким:

[{"stream":"clock","ranges":[{"duration":3642,"from":1492776599}],"brief_thumbnails":[1492776599,1492776605,
1492776617,1492776629,1492776641,1492776653,1492776665,1492776677,1492776689,1492776701,1492776713,1492776725,
....]}]

Вы получите длинный список таймстемпов, которые необходимо сконвертировать в пути к скриншотам. Например, 1492776605 будет преобразован в http://flussonic:8080/clock/2017/04/21/12/10/05.jpg.

Таким образом, сначала вы получаете список таймстемпов, а затем получаете сами скриншоты по сформированным URL.

Генерация JPEG по запросу Anchor Anchor x2

Иногда хранить все JPEG скриншоты на диске очень накладно, и вы можете попросить Flussonic Media Server генерироваться JPEG по требованию. В этом случае не нужно включать генерацию скриншотов в настройках потока.

Запросите URL для конкретного времени:

http://flussonic:8080/clock/2017/04/21/12/10/05-preview.jpg

и Flussonic Media Server прочитает один сегмент, возьмёт первый ключевой кадр и cгенерирует JPEG.

Этот способ может привести к непредсказуемой загрузке процессора и, поэтому, не рекомендуется.

Непредсказуемая нагрузка здесь означает, что её действительно трудно предсказать. С включенным процессом генерации JPEG у вас ровная умеренная загрузка процессора и не более. С генерацией JPEG по запросу у вас может быть низкая загрузка процессора, но в час наибольшей нагрузки может произойти её резкий рост и работа сервера станет нестабильной.