基于nginx-rtmp实现电视回看业务
生活随笔
收集整理的這篇文章主要介紹了
基于nginx-rtmp实现电视回看业务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 阿里云??>??教程中心???>??android教程??>??基于nginx-rtmp實現電視回看業務??
- 基于nginx-rtmp實現電視回看業務
發布時間:2018-01-18 來源:網絡 上傳者:用戶
關鍵字:?基于?實現?業務?電視?nginx?rtmp
發表文章- 摘要:軟硬件環境ubuntu16.0464bitAndroidStudio2.2.3OTTBOxwithandroid5.1.1nginx1.11.3nginx-rtmp-module簡介電視回看是數字電視領域的另一項基礎功能,它能提供一定時長的電視回放,可以實現像點播業務中的暫停,快進,快退等功能,一般的運營商都會提供回看的服務.本文講述如何基于nginx-rtmp來實現電視回看.原理電視回看的核心是節目的錄制.你可以選擇與直播同步錄制或者指定時間段錄制,錄制結束后生成節目資源的
軟硬件環境?
ubuntu 16.04 64bit?
Android Studio 2.2.3?
OTT BOx with android 5.1.1?
nginx 1.11.3?
nginx-rtmp-module?
簡介?電視回看是數字電視領域的另一項基礎功能,它能提供一定時長的電視回放,可以實現像點播業務中的暫停,快進,快退等功能,一般的運營商都會提供回看的服務.本文講述如何基于nginx-rtmp來實現電視回看.
原理?電視回看的核心是節目的錄制.你可以選擇與直播同步錄制或者指定時間段錄制,錄制結束后生成節目資源的播放url,客戶端拿到url進行播放,播放的過程和點播一樣.
實踐?
nginx-rtmp配置文件?先來看看配置文件nginx.conf
#user nobody;?
worker_processes auto;?
rtmp_auto_push on;?
error_log logs/error.log debug;?
#error_log logs/error.log notice;?
#error_log logs/error.log info;?
events {?
worker_connections 1024;?
}?
rtmp {?
server {?
listen 1935;?
chunk_size 4000;?
# HLS?
application hls {?
live on;?
hls on;?
hls_path /opt/www/live;?
hls_continuous on;?
hls_sync 100ms;?
hls_nested on;?
wait_key on;?
hls_playlist_length 5m;?
hls_cleanup on;?
hls_fragment 10s;?
# hls_keys on;?
# hls_key_path /opt/www/keys;?
# hls_key_url http://10.10.10.79:8081/keys;?
# hls_fragments_per_key 10;?
recorder all {?
record all manual;?
record_suffix -%Y-%m-%d-%H_%M_%S.flv;?
record_unique on;?
record_path /opt/www/record;?
}?
}?
}?
}?
# http?
http {?
server {?
listen 8081;?
location / {?
root /opt/www/;?
}?
# This URL provides RTMP statistics in XML?
location /stat {?
rtmp_stat all;?
rtmp_stat_stylesheet stat.xsl;?
}?
location /stat.xsl {?
root /home/djstava/Workshop/Web/nginx-rtmp-module/;?
}?
location /control {?
rtmp_control all;?
}?
location /hls {?
types {?
application/vnd.apple.mpegurl m3u8;?
video/mp2t ts;?
}?
root /opt/www/;?
add_header Cache-Control no-cache;?
}?
location /dash {?
root /opt/www/;?
add_header Cache-Control no-cache;?
}?
}?
}?主要關注下rtmp標簽下的recorder和http標簽下的control,錄制的節目保存在/opt/www/record,/opt/www是nginx的根目錄,便于http播放.
直播模擬?利用ffmpeg推送本地文件到服務器模擬直播
ffmpeg -re -i test.mp4 -vcodec copy -acodec copy -y -f flv rtmp://10.10.10.52/hls/live?
節目錄制?開始錄制
curl "http://10.10.10.52:8081/control/record/start?app=hls&;name=live&;rec=all"?結束錄制
curl "http://10.10.10.52:8081/control/record/stop?app=hls&;name=live&;rec=all"?錄制完成后會在/opt/www/record目錄下生成相應的flv文件
?
nginx_rtmp_record?
客戶端播放?播放需要的是url,把錄制的文件名和主機nginx訪問目錄拼接一下,很簡單,這里的話就是http://10.10.10.52:8081/record/-1483066808-2016-12-30-11_00_08.flv
參考文獻?
https://github.com/arut/nginx-rtmp-module/wiki/Control-module?
總結
以上是生活随笔為你收集整理的基于nginx-rtmp实现电视回看业务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hls之m3u8、ts流格式详解
- 下一篇: 阿里云全球首次互联网8K直播背后的技术解