Skip to content

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

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

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

На этой странице:

Установка Flussonic

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

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

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.

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

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

Подробности в разделе про транскодирование файлов.

Настройка Flussonic

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


vod vod {
  storage /movies;
  download;
}

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

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

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

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

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

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

Flussonic VOD

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

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

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

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

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

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

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