hls за час

Post on 18-Aug-2015

172 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

HLS за часВоскович Олег

skype: olegg.smilehttps://www.facebook.com/volegghttps://www.linkedin.com/profile/view?id=120162299

О чем это я?

1. HLS2. NGINX3. FFMPEG4. DEVICES5. RTMP6. MAKE INSTALL

30 слайдов

Репозиторий:https://github.com/volegg/php-group-hls-for-the-hour

Вопросы после доклада

Мобильники поставить на беззвучный режим

А ты вырубил мобилу?

Просьба

HLS

NGINXnginx [engine x] — это HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP прокси-сервер общего назначения, изначально написанный Игорем Сысоевым.

http://nginx.org/ru/http://nginx.org/download/nginx-1.9.3.tar.gz

FFMPEGA complete, cross-platform solution to record, convert and stream audio and video.

https://www.ffmpeg.org/

iOS DEVICES

ANDROID DEVICES

RTMPReal Time Messaging Protocol (RTMP) was initially a proprietary protocol developed by Macromedia for streaming audio, video and data over the Internet, between a Flash player and a server.

Nginx RTMP moduleRTMP directives

MAKE && INSTALL

arut/nginx-rtmp-moduleHow to set up your own private RTMP server using nginxRTMPСервер онлайн-вещаний на базе nginx

x264 FFmpeg Options Guideh.264 Advanced GuideFFMPEG wiki:Capture/WebcamFFMPEG wiki:Encode/H.264

HTTP Live StreamingThe Definitive Guide to HLSANDROID Supported Media FormatsThe Current State of Android and Video

Ссылкиperusio/nginx-auth-request-moduleМодуль ngx_http_auth_request_module

ffserver DocumentationFluent ffmpeg-API for node.jsMotion GalleryMPEG-DASH VS. APPLE HLS VS. MICROSOFT SMOOTH STREAMING VS. ADOBE HDSHLS против RTMP — сухая статистикаОнлайн вещание через Nginx-RTMP: несколько готовых рецептов

СпасибоВоскович Олег

skype: olegg.smilehttps://www.facebook.com/volegghttps://www.linkedin.com/profile/view?id=120162299

Let’s mortal kombat beginsudo apt-get update

sudo apt-get upgrade

sudo apt-get -y --force-yes install build-essential git libpcre++-dev libssl-dev autoconf automake libass-dev libfreetype6-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texi2html zlib1g-dev libx264-dev libmp3lame-dev unzip libopus-dev cmake mercurial

sudo apt-add-repository ppa:mc3man/trusty-mediasudo apt-get updatesudo apt-get install ffmpeg gstreamer0.10-ffmpeg

Compile nginxmkdir -p ~/hlscd ~/hlscurl -O http://nginx.org/download/nginx-1.9.3.tar.gzgit clone git@github.com:arut/nginx-rtmp-module.gittar -xvf nginx-1.9.3.tar.gzcd nginx-1.9.3/sudo ./configure --add-module=/home/olegg/hls/nginx-rtmp-modulesudo makesudo make install

sudo ln -s /usr/local/nginx/sbin/nginx /bin/nginxnginx -vsudo nginx

Они работают, чтобы ты мог сделать “MAKE INSTALL”

Nginx RTMP configsudo vim /usr/local/nginx/conf/nginx.conf

rtmp_auto_push on;rtmp_auto_push_reconnect 16s;rtmp { chunk_size 4000; server { listen 1935; }}

Nginx RTMP applicationДобавляем application в server

application stream { live on; allow publish all; allow play all;}

sudo nginx -s reload

FFMpeg startffmpeg -f avfoundation -video_device_index 0 \ -i "default" -c:v libx264 -an \-f flv rtmp://10.168.1.44/stream/live

ffmpeg -f avfoundation -video_device_index 1 \-i "default" -c:v libx264 -an \-f flv rtmp://10.168.1.44/stream/live

ffplay rtmp://10.168.1.44/stream/live

Test RTMP streaming <html><head>

<title>Test Video</title><script src="player.js"></script>

</head><body>

<h1>RTMP</h1><div id="playerNMMBvkpyxVUJ"></div><script src="rtmp.js"></script>

</body></html>

Test RTMP streaming var options = { type: 'rtmp', file: 'rtmp://10.168.1.44/stream/live', width: '100%', image: 'cote.jpg', aspectratio: '4:3', autostart: 'true'};

jwplayer('playerNMMBvkpyxVUJ').setup(options);

crossdomain.xml<?xml version="1.0"?><!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"><cross-domain-policy>

<allow-access-from domain="*" secure="false"/></cross-domain-policy>

Они работают, чтобы ты мог открыть http://10.168.1.43/video.html

WIFI: imaguru-guest:impossiblenothing

Nginx HTTP configmkdir -p /tmp/streamsudo vim /usr/local/nginx/conf/nginx.conf

http { server { listen 80; server_name localhost; }}

Nginx RTMP applicationДобавляем в rtmp application stream

hls on; hls_path /tmp/stream; wait_key on;

Nginx HTTP config locationДобавляем в http server директиву location

location /stream { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /tmp; add_header Cache-Control no-cache; expires -1;}

sudo nginx -s reload

FFMpeg start HLSffmpeg -f avfoundation -video_device_index 1 \-i "default" -c:v libx264 -an \-f flv rtmp://10.168.1.44/stream/live

ffplay http://10.168.1.44/stream/live.m3u8

FFMpeg start HLS iOSffmpeg -f avfoundation -video_device_index 1 \-i "default" -pix_fmt yuv420p -r 15 \-probesize 100000 -c:v libx264 -r 15 -g 48 \-profile:v baseline -level:v 3.0 \-preset ultrafast -s 480x360 \-analyzeduration 0 -tune zerolatency -an \-f flv rtmp://10.168.1.44/stream/live

ffplay http://10.168.1.44/stream/live.m3u8

Не удивляйся, они так отдыхают http://10.168.1.43/video.html

FFMpeg start HLS androidffmpeg -f avfoundation -video_device_index 1 \-i "default" -pix_fmt yuv420p -r 15 \-probesize 100000 -c:v libx264 -r 15 -g 48 \-profile:v baseline -level:v 3.0 \-preset ultrafast -s 176x144 \-analyzeduration 0 -tune zerolatency -an \-f flv rtmp://10.168.1.44/stream/live

ffplay http://10.168.1.44/stream/live.m3u8

HLS за часВоскович Олег

Спасибо за вниманиеи повторяйте это дома!

Задавайте вопрсы.

top related