Здравствуйте, уважаемые читатели. Сегодня наша статья на тему: "Icecast-ffmpeg2theora-ffmpeg -  видеопоток". В данной статье рассмотрим несколько альтернативных способов организации видеопотока, для сервера потокового аудио и видео вещания Icecast, с помощью ffmpeg2theora и ffmpeg.

FFmpeg2theora – простой конвертер для создания файлов Ogg Theora.

FFmpeg – набор бесплатных библиотек, которые позволяют конвертировать и передавать аудио и видео записи в различных форматах.

Установка FFmpeg2theora и FFmpeg

  • Для начала, нам нужно установить сторонний репозиторий Nux Dextop.
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
  • Начнём с установки FFmpeg2theora.
# yum install ffmpeg2theora
  • По завершении, устанавливаем FFmpeg библиотеки.
# yum install ffmpeg ffmpeg-compat ffmpeg-compat-devel ffmpeg-devel ffmpeg-libs
  • В качестве связующего звена, будем использовать утилиту Оggfwd. Производим инсталляцию утилиты.
# rpm -Uvh https://download.opensuse.org/repositories/home:/jnweiger/CentOS_7/x86_64/oggfwd-0.2-5.10.x86_64.rpm
  • На этом, все необходимые пакеты установлены. Переходим к работе с медиа.

Трансляция видеопотока в связке Icecast-ffmpeg2theora-ffmpeg

Перекодирование видео на лету

Формат команды для трансляции с перекодированием на лету, примерно такой:

# ffmpeg2theora --no-skeleton -p preview /video/1.mp4 -o /dev/stdout | oggfwd 192.168.10.12 8000 hackme /tv
  1. /video/1.mp4 – путь к видео файлу на сервере.
  2. 192.168.10.12 – ip-адрес сервера Icecast
  3. 8000 – порт сервера Icecast
  4. hackme – пароль для подключения потока на сервере Icecast
  5. tv – название создаваемого видеопотока
  • После запуска команды, начинается перекодирование на лету, и трансляция видеопотока.

В консоли это отображается таким образом:

 ffmpeg2theora перекодирование видео на лету
  • Если мы зайдем на сервер Icecast, то увидим в списке локальных точек монтирования, созданный нами поток.
видеопоток на сервере Icecast
  • Для воспроизведения видеопотока, можно использовать любой плейер с поддержкой потокового вещания. Например VLC.
  • Вводим адрес потока, и любуемся видеотрансляцией.
просмотр видеопотока в VLC
  • При таком подходе (перекодирование на лету), могут тратится значительные ресурсы сервера.

Предварительная перекодировка

  • Чтобы сэкономить ресурсы сервера, можно предварительно перекодировать файлы, и транслировать видео, в удобном формате OGV.
  • Конвертацию в формат ogv, можно произвести при помощи программ конвертеров под Windows, онлайн-конвертеров, или прямо из консоли сервера.
# ffmpeg -i /video/1.mp4 -codec:v libtheora -qscale:v 5 -codec:a libvorbis -qscale:a 4 /video/1.ogv
  1. /video/1.mp4 – путь к видео файлу на сервере
  2. -codec:v libtheora -qscale:v 5 -codec:a libvorbis -qscale:a 4 – параметры конвертирования
  3. /video/1.ogv – путь к файлу после конвертирования
предварительная перекодировка в OGV

Трансляция готового видео файла OGV

# cat /video/1.ogv | oggfwd  192.168.10.12 8000 hackme /tv
  1. 192.168.10.12 – ip-адрес сервера Icecast
  2. 8000 – порт сервера Icecast
  3. hackme – пароль для подключения потока на сервере Icecast
  4. tv – название создаваемого видеопотока

В консоли процесс трансляции будет отображаться таким образом:

трансляция готового видео файла OGV
  • Можно проверить созданный видеопоток на сервере Icecast, или посмотреть трансляцию в плейере.
  • У FFmpeg и FFmpeg2theora, много дополнительных опций, которые можно просмотреть в консоли, вызовом справки.
справка по FFmpeg2theora в консоли

Сегодня мы рассмотрели тему: "Icecast-ffmpeg2theora-ffmpeg -  видеопоток". Произвели установку всех необходимых пакетов, и протестировали возможности организации трансляции видео. Смотрите так же видео по теме.

Надеюсь статья была вам полезна. До встречи в новых статьях.

С уважением, Андрей Бондаренко.


Видео на тему "Icecast-ffmpeg2theora-ffmpeg - видеопоток":