30
HLS за час Воскович Олег skype: olegg.smile https://www.facebook.com/volegg https://www.linkedin.com/profile/view?id=120162299

Hls за час

  • Upload
    volegg

  • View
    159

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Hls за час

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

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

Page 2: Hls за час

О чем это я?

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

30 слайдов

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

Page 3: Hls за час

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

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

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

Просьба

Page 4: Hls за час

HLS

Page 5: Hls за час

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

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

Page 6: Hls за час

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

https://www.ffmpeg.org/

Page 7: Hls за час

iOS DEVICES

Page 8: Hls за час

ANDROID DEVICES

Page 9: Hls за час

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

Page 10: Hls за час

MAKE && INSTALL

Page 11: Hls за час

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: несколько готовых рецептов

Page 12: Hls за час

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

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

Page 13: Hls за час

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

Page 14: Hls за час

Compile nginxmkdir -p ~/hlscd ~/hlscurl -O http://nginx.org/download/nginx-1.9.3.tar.gzgit clone [email protected]: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

Page 15: Hls за час

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

Page 16: Hls за час

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; }}

Page 17: Hls за час

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

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

sudo nginx -s reload

Page 18: Hls за час

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

Page 19: Hls за час

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>

Page 20: Hls за час

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);

Page 21: Hls за час

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>

Page 22: Hls за час

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

WIFI: imaguru-guest:impossiblenothing

Page 23: Hls за час

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

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

Page 24: Hls за час

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

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

Page 25: Hls за час

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

Page 26: Hls за час

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

Page 27: Hls за час

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

Page 28: Hls за час

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

Page 29: Hls за час

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

Page 30: Hls за час

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

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

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