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

Както можете да видите на диаграмата, 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 Ще изброя възможни подобрения, които няма да са излишни:
- Watchdog за проверка на здравето на VLC, който ще рестартира необходимите услуги в случай на загуба на потоци от камери
- Създаване на плейлист за JW Player
- Logrotate за VLC регистрационни файлове
- Скрипт за организиране на записващи архиви, реализиран чрез 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 стрийминг.