摘要:我也研究了下,發現上配置視頻直播點播也很容易實現,特分享一下。表示打開點播,會在服務器上生成臨時文件的。用蘋果設備訪問你的就可以看到該直播了。由于兼容性問題,只能在蘋果設備上用瀏覽器訪問。
近年互聯網直播業務非常火熱。我也研究了下,發現nginx上配置視頻直播點播也很容易實現,特分享一下。
一、ubuntu14.04安裝nginx及nginx_rtmp_module擴展
nginx根據是否已安裝和安裝的方式不同,有一下三種方式安裝及擴展安裝。
1.全新安裝nginx和nginx_rtmp_module擴展
#!/bin/sh apt-get update apt-get install -y gcc libpcre3 libpcre3-dev openssl libssl-dev make git libxml2 libxml2-dev libxslt-dev libgd2-xpm-dev geoip-database libgeoip-dev cd /usr/local/src/ git clone https://github.com/arut/nginx-rtmp-module.git wget -c http://mirrors.sohu.com/nginx/nginx-1.9.14.tar.gz tar zxvf nginx-1.9.14.tar.gz cd nginx-1.9.14/ ./configure --with-http_ssl_module --add-module=/usr/local/src/nginx-rtmp-module make make install cd /usr/local/nginx/ ln -s `pwd`/sbin/nginx /usr/sbin/nginx nginx -V wget http://www.*****.com/editor/attached/file/20160322/20160322112243_43972.txt mv 20160322112243_43972.txt /etc/init.d/nginx chmod +x /etc/init.d/nginx service nginx restart
2.apt-get安裝過nginx的,需重新編譯安裝并添加nginx_rtmp_module擴展
#!/bin/sh apt-get -y install dpkg-dev libxml2 libxml2-dev libxslt-dev libgd2-xpm-dev geoip-database libgeoip-dev libpcre3 libpcre3-dev libssl-dev openssl nginx -V 2>a nginx_config=`cat a |grep configure | cut -d ":" -f 2` nginx_version=`cat a|grep "nginx version"|cut -d "/" -f 2 | cut -d " " -f 1` rm -f a cd /usr/local/src/ # apt-get install -y git git clone https://github.com/arut/nginx-rtmp-module.git #采用搜狐開源鏡像下載對應的nginx版本 # apt-get source nginx wget -c "http://mirrors.sohu.com/nginx/nginx-${nginx_version}.tar.gz" tar zxvf "nginx-${nginx_version}.tar.gz" cd "nginx-$nginx_version" echo "./configure ${nginx_config} --add-module=/usr/local/src/nginx-rtmp-module" | sh make #強制覆蓋 cp -rfp objs/nginx /usr/sbin/nginx #檢查是否錯誤 /usr/sbin/nginx -t #重啟nginx service nginx restart nginx -V
3.已經編譯安裝過nginx的,可以直接添加nginx_rtmp_module擴展
找到安裝nginx的源碼根目錄,如果沒有的話下載新的源碼
我的安裝源碼根目錄 /usr/local/src/nginx-1.4.6
cd /usr/local/src/ # apt-get install -y git git clone https://github.com/arut/nginx-rtmp-module.git nginx -V 2>a nginx_config=`cat a |grep configure | cut -d ":" -f 2` rm -f a cd nginx-1.4.6 echo "./configure ${nginx_config} --add-module=/usr/local/src/nginx-rtmp-module" | sh make #強制覆蓋 cp -rfp objs/nginx /usr/sbin/nginx #檢查是否錯誤 /usr/sbin/nginx -t #重啟nginx service nginx restart nginx -V
二、配置使用
編輯nginx的配置文件(/etc/nginx/nginx.conf或/usr/local/nginx/conf/nginx.conf)
1.在http節點外層添加一個rtmp節點,具體內容如下:
rtmp { server { listen 1935; chunk_size 4096; max_connections 100; #音視頻流上傳和播放地址都是 rtmp://你的IP/live/streamName #streamName自己是自定義的。 application live { live on; record off; } #這個是上傳地址 rtmp://你的IP:/hls/streamName2 #直播的地址也是這個,點播播放地址在下面 application hls { live on; hls on; #請先創建相應目錄(mkdir -p /var/www/hls/ && chown -R www-data:www-data /var/www ) hls_path /var/www/hls/; } } }
說明:
application 表示一個應用
地址后面的streamName可以自己定義,點播時會在相應目錄下生成類似 streamName.m3u8 和 streamName.ts 的文件。
live on; 表示打開直播。
hls on; 表示打開點播,會在服務器上生成臨時文件的。
record off; 是關閉保存視頻的功能。
點播播放的地址是一個http協議的數據流地址。例如下面配置的 http://你的IP:8080/hls/streamName2.m3u8 。
點播的文件默認是逐個生成的,又會逐個自動刪除。m3u8文件是一個動態的。用vim可以查看。
2.在下面的http節點內部添加一個server節點,具體內容如下:
#這個是點播播放地址 http://你的IP:8080/hls/streamName2.m3u8 server { listen 8080; index index.html; root /var/www/hls/; location /hls { alias /var/www/hls/; types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } add_header Cache-Control no-cache; } }
說明:
這個節點是配置的一個虛擬主機,目的是為了播放上面點播服務生成的視頻流。
url中streamName2是根據錄制推流的名字來的。需要保持一致。
默認下,該地址有一定的時限行,需要每次都先確認一下,服務器上是否存在該m3u8文件。
3.測試使用
a.推視頻流到服務器 (1).使用linux上ffmpeg工具模擬推流到服務器 安裝ffmpeg工具 apt-get -y install build-essential git-core checkinstall yasm texi2html libvorbis-dev libx11-dev libvpx-dev libxfixes-dev zlib1g-dev pkg-config netcat libncurses5-dev libfaac-dev libmp3lame-dev libx264-dev FFMPEG_VERSION=2.3.3 cd /usr/local/src if [ ! -d "/usr/local/src/ffmpeg-${FFMPEG_VERSION}" ]; then sudo wget "http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2" sudo tar -xjf "ffmpeg-${FFMPEG_VERSION}.tar.bz2" fi cd "ffmpeg-${FFMPEG_VERSION}" ./configure --enable-version3 --enable-postproc --enable-libvorbis --enable-libvpx --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libx264 make checkinstall --pkgname=ffmpeg --pkgversion="5:${FFMPEG_VERSION}" --backup=no --deldoc=yes --default
ffmpeg –version
使用ffmpeg工具把本地的視頻文件模擬推送到服務器
ffmpeg -re -i /data/localFile.mp4 -c copy -f flv rtmp://你的IP/live/streamName
這個命令會把本地的localFile.mp4模擬推入live直播流,然后可以通過 rtmp://你的IP/live/streamName地址觀看該直播。
ffmpeg -re -i /data/localFile.mp4 -c copy -f flv /var/www/hls/streamName
這個命令會把本地的localFile.mp4模擬推入到hls應用中,然后可以通過rtmp://你的IP/hls/streamName 地址觀看該直播,也可以通過播放器打開http://你的IP:8080/hls/streamName.m3u8查看該視頻的點播
(2).Windows上使用一些專業工具推流到服務器
我是使用 銳動PC錄制/直播SDK(http://www.rdsdk.com/contrast...非打廣告]包中的demo來推流的,這個可以免費使用且免安裝。
網上推薦的常見推流測試工具有 OBS, XSplit, FMLE 等。
推流的地址是 rtmp://你的IP/hls/streamName 或者 rtmp://你的IP/live/streamName
(3).自己編寫手機等設備的APP,錄制手機攝像頭捕捉到的頭像及麥克風捕捉到的聲音,一起推送到服務器。
這類安卓或IOS的SDK也比較多。可自行開發。
b.使用播放器點播播放視頻
Windows和linux桌面版都可以是VLC播放器打開 http://你的IP:8080/hls/streamName.m3u8這個地址觀看直播(這個播放器不支持rtmp直播播放?)
c.使用Web瀏覽器在網頁上播放直播視頻
編寫HTML頁面index.html:
HLS Player
修改IP,保存頁面至/var/www/hls/index.html中。
用蘋果設備訪問http://你的IP:8080/index.html就可以看到該直播了。
由于H5兼容性問題,只能在蘋果設備上用瀏覽器訪問。
如果想要其他設備都能訪問需做兼容處理。一般用flash嵌入網頁中去播放直播(rtmp://...)或點播(http://...xxx.m3u8)
d.使用nginx_rtmp_module擴展包內文件來同時錄制和直播測試
在nginx_rtmp_module擴展包內有測試文件,復制該文件夾內的文件到站點根目錄(如/var/www/html)
cp -r /usr/local/src/nginx-rtmp-module/test/www/* /var/www/html;
修改index.html文件中rtmp的地址為 rtmp://你的IP/live/streamName
修改record.html文件中flashvars的streamer為 rtmp://你的IP/live 并改flashvars的file值為streamName
保存。
使用瀏覽器同時打開兩個頁面 :
http://你的IP:8080/index.html(這個是直播觀看的地址) http://你的IP:8080/record.html(這個是直播錄像的地址,采用的是flash錄制電腦的攝像頭[請點擊允許])
三、其他
1.nginx-rtmp-module的配置請看Wiki https://github.com/arut/nginx...
2.以上環境只是測試學習使用。公網上必須考慮權限安全,網絡帶寬,視頻質量等。
3.此類產品網絡上也比較多,例如阿里云基礎服務中就有視頻直播點播的功能。
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。互聯網+時代,時刻要保持學習,攜手千鋒PHP,Dream It Possible。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22814.html
摘要:視頻直播點播服務干貨分享近年互聯網直播業務非常火熱。我也研究了下,發現上配置視頻直播點播也很容易實現,特分享一下。表示打開點播,會在服務器上生成臨時文件的。用蘋果設備訪問你的就可以看到該直播了。由于兼容性問題,只能在蘋果設備上用瀏覽器訪問。 nginx視頻直播/點播服務干貨分享 近年互聯網直播業務非常火熱。我也研究了下,發現nginx上配置視頻直播點播也很容易實現,特分享一下。一、ub...
摘要:我也研究了下,發現上配置視頻直播點播也很容易實現,特分享一下。表示打開點播,會在服務器上生成臨時文件的。用蘋果設備訪問你的就可以看到該直播了。由于兼容性問題,只能在蘋果設備上用瀏覽器訪問。 近年互聯網直播業務非常火熱。我也研究了下,發現nginx上配置視頻直播點播也很容易實現,特分享一下。一、ubuntu14.04安裝nginx及nginx_rtmp_module擴展 nginx根據是...
摘要:我也研究了下,發現上配置視頻直播點播也很容易實現,特分享一下。表示打開點播,會在服務器上生成臨時文件的。用蘋果設備訪問你的就可以看到該直播了。由于兼容性問題,只能在蘋果設備上用瀏覽器訪問。 近年互聯網直播業務非常火熱。我也研究了下,發現nginx上配置視頻直播點播也很容易實現,特分享一下。一、ubuntu14.04安裝nginx及nginx_rtmp_module擴展 nginx根據是...
摘要:本篇文章將會結合網易云信的實踐經驗,以全局概述的方式帶大家認識點播私有化平臺構建的整體架構面貌。基于構建點播私有云平臺在具有以上優勢的同時,還具備資源彈性管理監控完善部署簡易自動化維護等特性。基于構建平臺,能夠自由管理創建云主機。 私有云是為一個客戶單獨使用而構建的,因而提供對數據、安全性和服務質量的最有效控制。前置條件是客戶擁有基礎設施,并可以使用基礎設施在其上部署應用程序。其核心屬...
閱讀 1714·2021-11-22 15:33
閱讀 2085·2021-10-08 10:04
閱讀 3543·2021-08-27 13:12
閱讀 3419·2019-08-30 13:06
閱讀 1467·2019-08-29 16:43
閱讀 1392·2019-08-29 16:40
閱讀 786·2019-08-29 16:15
閱讀 2746·2019-08-29 14:13