Организиране на видео излъчване на сайта

checkinstall

Както можете да видите на диаграмата, VLC се използва за транскодиране, а потокът H264 се взема директно от Erlyvideo, тъй като може да направи това. За организиране на HTTP Live Streaming се използва и VLC, чиито настройки ще видим по-долу.

По традиция ще дам подробности за инсталацията на Debian Squeeze 6.0 amd64, тъй като за тази архитектура има хранилище Erlyvideo. Веднага ще направя резервация, излъчването в примерите се провежда без звук.

1. Подготовка Добавяне на хранилища за Debian Multimedia, nginx и Erlyvideo: /etc/apt/sources.list.d/debian-multimedia.list

Моля, имайте предвид, че хранилището на Erlyvideo е добавено за бъдещо надграждане от Debian до Wheezy, тъй като най-новата версия на Erlyvideo от пакетите е инсталирана само на тази версия на дистрибуцията.

2. Инсталиране на ffmpeg, libvpx, fdk-aac, x264, openssl

apt-get install make automake g++ gcc autoconf lua5.1 liblua5.1- 0 -dev libtag1-dev \ libdvbpsi-dev libcdio-dev libvcdinfo-dev libcddb2-dev libmad0-dev libfaad-dev liba52-0.7.4-dev \ libmpeg2- 4 -de v libzvbi-dev libflac -dev libdca-dev libdirac-dev libdvdnav-dev libdvdread-dev libfaac-dev \ libgcrypt11-dev libgnutls-dev libgpac-dev libiso9660-dev libjpeg62 libltdl-dev libmp3lame-dev \ libmo dplug-dev libpng12-dev libraw1394-dev libschro edinger-dev libspeex-dev libtag1-dev \ libtasn1- 3 -dev libtheora-dev libtwolame-dev libvcdinfo-dev libvorbis-dev build-essential \ librtmp-dev checkinstall git libopencore -amrnb-dev libopencore-amrwb-dev pkg-config yasm zlib1g-dev

# x264 cd /usr/local/src git clone --depth 1 git : //git.videolan.org/x264 cd x264 ./configure --enable-pic --enable-shared make sudo checkinstall --pkgname=x264 --pkgversion=" 3 : $ ( ./version.sh \ awk-F' [ " ] ' '/POINT/ < print $4"+git"$5 >' ) " --backup=no --deldoc=yes \ --fstrans=no --default

# fdk-aac cd /usr/local/src git clone --depth 1 git : //github.com/mstorsjo/fdk-aac.git cd fdk-aac autoreconf -fiv ./configure --with-pic --enable-shared make sudo checkinstall --pkgname=fdk-a ac --pkgversion="$ ( дата +%Y%m%d%H%M ) -git" --backup=no \ --deldoc=yes --fstrans=no --default

# libvpx cd /usr/local/src git clone --depth 1 http : //git.chromium.org/webm/libvpx.git cd libvpx ./configure --enable-pic --enable-shared --disable-unit-tests make sudo checkinstall --pkgname=libvpx --pkgversion=" 1 : $ ( дата +%Y%m%d%H%M ) -git" --backup=no \ --deldoc=yes --fstrans=no --default

# ffmpeg cd /usr/local/src git clone --depth 1 git : //source.ffmpeg.org/ffmpeg cd ffmpeg ./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \ --enable-libopencore-amrwb --en able-librtmp --enable-libtheora --enable-libvorbis \ --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 --enable-pic --enable-shared make sudo checkinstall --pkgname=ffmpeg --pkgversion=" 5 : $ ( date +%Y%m%d%H%M ) -git" -- архивиране=не \ --deldoc=да --fstrans=не --по подразбиране

# openssl # . ЗА КОРЕКТНА РАБОТА ERLYVIDEO на Debian Squeeze. # . За Debian Wheezy можете apt-get install libssl1.0.0 . cd /usr/local/src wget http : //www.openssl.org/source/openssl-1.0.1c.tar.gz tar -xvzf openssl-1.0.1c.tar.gz cd openssl-1.0.1c ./config --prefix=/usr zlib-dynamic --openssldir=/etc/ ssl споделен make sudo checkinstall --pkgname=openssl --pkgversion=" 5 : $ ( дата +%Y%m%d%H%M ) -git" --backup=no \ --deldoc=yes --fstrans=no --default

хеш x264ffmpeg ffplay ffprobe ldconfig

3. Инсталиране на VLC

4. Инсталиране на nginx

5. Инсталирайте Erlyvideo

6. VLC конфигурация Създайте скрипта /home/ipcam/start_vlc.sh (не забравяйте да промените CONTROLPASSWORD):

За простота и лекота на стартиране ще използваме VLM. Файл /home/ipcam/config:

# IP камера MPEG-4 активирано ново излъчване mpeg4mux # IP камера H264 активирано ново излъчване h264mux

контрол на възпроизвеждането на mpeg4mux контрол на възпроизвеждането на h264mux

Създайте директории за писане на VLC регистрационни файлове и задайте разрешения:

7. Erlyvideo Configuration Редактирайте секцията за пренаписване във файла /etc/erlyvideo/erlyvideo.conf:

8. конфигурация на nginx За правилна работа на HLS добавете към /etc/nginx/mime.types:

Създайте директории за HLS файлове:

9. Стартиране на услуги

Преглеждаме регистрационните файлове и проверяваме дали всичко е започнало нормално.

10. Изход към HTML страница

. Това ще бъде заменено от SWF. // ', файл: 'video1',

11. TODO Ще изброя възможни подобрения, които няма да са излишни:

  1. Watchdog за проверка на здравето на VLC, който ще рестартира необходимите услуги в случай на загуба на потоци от камери
  2. Създаване на плейлист за JW Player
  3. Logrotate за VLC регистрационни файлове
  4. Скрипт за организиране на записващи архиви, реализиран чрез VLC telnet интерфейс, задачата не е толкова проста, но интересна;)

В допълнение, JW Player Adaptive Provider в момента се разработва активно.За наше разочарование, разработчиците на JW Player са включили поддръжка на HLS за Flash в платените версии на плейъра. Е, нека изчакаме поддръжката на HLS на устройства, които не са на Apple, което ще ни позволи да изоставим RTMP. За да използвате HDS, можетеизползвайте 3-тата версия на Erlyvideo - Flussonic и неговата HDS поддръжка. Доколкото разбирам, поддръжката на HLS не е включена в ядрото му. Е, наличието на Open Source Media Framework ви позволява да създавате свои собствени плейъри за RTMP и HTTP стрийминг.