Документация на 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. Группы каналов

Как посмотреть файл?

Как посмотреть файл? Anchor Anchor x2

Задача: имеется видеофайл, нужно организовать вещание этого файла по сети.

Установка Flussonic Anchor Anchor x2

Первым шагом надо установить Flussonic.

Подготовка файла: правильный формат Anchor Anchor x2

Flussonic умеет проигрывать только файлы в определенных форматах. Основной формат контейнера - mp4, кодек видео - h264, кодек аудио - aac.

Чтобы иметь возможность проверить и при необходимости изменить формат файла, на сервер нужно установить ffmpeg. Устанавливать его не обязательно на сам сервер, можно и на другой компьютер с операционными системами Linux, Windows или OSX.

Инструкции по скачиванию ffmpeg находятся на официальном сайте: https://www.ffmpeg.org/download.html.

Во многих дистрибутивах GNU/Linux ffmpeg уже есть в стандартных репозиториях. Например, в Ubuntu начиная с версии 15.04 Vivid Vervet достаточно написать в командной строке "apt-get install ffmpeg". Если у вас этого пакета нет, стоит поискать сторонние репозитории, или просто скачать статическую сборку.

Для определения формата будем использовать команду ffprobe, входящую в комплект только что установленного ffmpeg. В командной строке пишем ffprobe /путь/к/вашему/видео/video.mp4. Нужно указать правильный путь до видеофайла.

Вот как должен выглядеть вывод ffprobe для правильного файла:

ffprobe version N-61916-g46f72ea Copyright (c) 2007-2014 the FFmpeg developers

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
  Duration: 00:05:00.18, start: 0.012000, bitrate: 769 kb/s
    Chapter #0.0: start 0.000000, end 300.000000
    Metadata:
      title           : Chapter 1
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1331:1000 DAR 2662:1125], 636 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(rus): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
    Stream #0:2(eng): Subtitle: mov_text (text / 0x74786574)
    Metadata:
      handler_name    : SubtitleHandler

В нем мы видим несколько дорожек, причем Video: h264 означает использование правильного кодека h264, а Audio: aac - правильного кодека aac.

Вот как выглядит вывод для неправильного файла:

Input #0, asf, from 'video.wmv':
  Duration: 00:05:00.22, start: 0.000000, bitrate: 388 kb/s
    Chapter #0.0: start 0.000000, end 300.217000
    Metadata:
      title           : Chapter 1
    Stream #0:0: Video: msmpeg4v3 (MP43 / 0x3334504D), yuv420p, 640x360, 23.98 tbr, 1k tbn, 1k tbc
    Stream #0:1: Audio: wmav2 (a[1][0][0] / 0x0161), 48000 Hz, 2 channels, fltp, 128 kb/s

Здесь мы видим, что использован формат Windows Media (wmv) с соответствующими кодеками. Flussonic не станет его воспроизводить.

Что же делать, если формат неправильный? Чтобы превратить wmv/msmpeg/wma в mp4/h264/aac, можно воспользоваться программой ffmpeg:

ffprobe /путь/к/вашему/изначальному/видео/video.wmv /путь/к/вашему/измененному/видео/video.mp4

На экране появится что-то вроде:

Stream mapping:
  Stream #0:0 -> #0:0 (msmpeg4 -> libx264)
  Stream #0:1 -> #0:1 (wmav2 -> libvo_aacenc)
Press [q] to stop, [?] for help
frame=  937 fps=180 q=-1.0 Lsize=    2320kB time=00:00:39.04 bitrate= 486.7kbits/s dup=1 drop=0

Этот процесс называется транскодирование, и может занимать очень много времени и ресурсов компьютера. Чем мощнее ваше оборудование, тем быстрее происходит транскодирование.

По этой же причине Flussonic не транскодирует файлы автоматически, предполагается что пользователи будут делать это вручную на выделенном оборудовании. Кстати, прямой эфир нельзя транскодировать заранее, поэтому Flussonic предлагает для стримов встроенный транскодер.

В результате всех вышеописанных операций мы получили файл, полностью подходящий для проигрывания с помощью Flussonic.

Подготовка файла: качество изображения Anchor Anchor x2

Возможно, вам захочется понизить качество или сделать мультибитрейтный файл (что обеспечит комфортный просмотр видео пользователям, подключенным на разных скоростях к интернету). Про это написана отдельная статья.

Настройка Flussonic Anchor Anchor x2

Чтобы Flussonic начал обслуживать файлы, нужно добавить в файл конфигурации (/etc/flussonic/flussonic.conf) специальную настройку:

file vod {
  path /movies;
  download;
}

По-английски эта настройка называется "VOD location" (использованеи этого слова можно заметить в документации или при общении с поддержкой).

/movies - это директория на диске сервера, в которой будут храниться видеофайлы.

Кстати, эта директория технически может находиться на NFS-шаре, но это не очень хорошее решение, т.к. NFS работает медленно и не всегда хорошо. Лучше использовать локальный жесткий диск или SSD.

После того, как добавили эту настройку, не забудьте применить конфигурациию с помощью /etc/init.d/flussonic reload

Загрузка файла на сервер Anchor Anchor x2

Чтобы загрузить файл на сервер, можно воспользоваться веб-интерфейсом. В главном меню выберите пункты Media->VOD.

кодек видео-h264

Веб-интерфейс достаточно интуитивный, чтобы не было смысла рассказывать про него специально. Выбираем файл, загружаем, ждем.

Важно отметить, что веб-интерфейс не является единственным способом загрузки файла. Можно залить файл с помощью SSH или FTP, или любого другого способа передачи файлов по сети. Главное, чтобы файл оказался внутри директории, которая указана в файле конфигурации. Flussonic выполняется с правами root, т.е. имеет доступ к любым файлам, поэтому никаких специальных прав доступа этому загруженому файлу назначать не нужно.

Просмотр файла Anchor Anchor x2

В веб интерфейсе (в разделе Media->VOD) щелкните мышкой по нужному файлу - начнется его воспроизведение.

Прямо под видео написан его URL, который можно использовать для просмотра вне веб-интерфейса. Он должен выглядеть примерно так: http://erlyvideo:8080/vod/elementary/s01e02.mp4/index.m3u8 URL заканчивается на .m3u8 - это значит, что для воспроизведения будет использоваться протокол HLS.

Смотреть такой URL можно в любом плеере, хорошо поддерживающем HLS. Например, можно скачать и запустить видеоплеер VLC, в главном меню выбрать "Media->Open Network Stream", или в русской версии "Медиа->Открыть URL", или нажать клавиатурную комбинацию Ctrl+N, и скопировать этот URL в поле ввода.

Дополнительные действия Anchor Anchor x2

Прочитайте документацию, посвященную описанию работы VOD Там есть ответы на пару вопросов, которые не освещены в этой статье.