网上关于视频直播的资料还是挺多的,看了一些文章,自己也动手实践了下,写了这个直播源码搭建教程。主要有三个步骤:(1)Nginxrtmp服务器搭建(2)视频录制推流器 (3)拉流器(播放器),有了这些就可以开始简单视频相关的直播了。对于延时什么的,还需要深入去研究 ,以及如何进行视频开发等后续再深入研究直播源码搭建教程。
Nginx-RTMP服务器搭建
参考:利用nginx搭建RTMP视频点播、直播、HLS服务器
GitHub nginx-rtmp-module 参考地址
Nginx点播设置:
worker_processes 1; events { worker_connections 1024; } ##################RTMP服务################# rtmp { server { listen 1935; #//服务端口 chunk_size 4096; #//数据传输块的大小 application video { play /usr/local/data/video; #//视频文件存放位置,访问方式rtmp://localhost:1935/video #如视频路径存有视频welcome.mp4访问路径即为rtmp://localhost:1935/video/welcome.mp4 } } } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
Nginx直播配置:
worker_processes 1; events { worker_connections 1024; } ##################RTMP服务################# rtmp { server { listen 1935; chunk_size 4096; application video { play /usr/local/data/video; } application live{ #第一处添加的直播字段 live on; } } } ####启动浏览器查看http://localhost:80/stat http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location /stat { #第二处添加的location字段。 rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { #第二处添加的location字段。 root /usr/local/nginx/nginx-rtmp-module/; } location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
Nginx直播回放配置:
worker_processes 1; events { worker_connections 1024; } ##################RTMP服务################# rtmp { server { listen 1935; chunk_size 4096; application video { play /usr/local/data/video; } application live { live on;#直播模式 hls on; #这个参数把直播服务器改造成实时回放服务器。 wait_key on; #对视频切片进行保护,这样就不会产生马赛克了。 hls_path /usr/local/data/hls; #切片视频文件存放位置。 hls_fragment 10s; #每个视频切片的时长。 hls_playlist_length 60s; #总共可以回看的事件,这里设置的是1分钟。 hls_continuous on; #连续模式。 hls_cleanup on; #对多余的切片进行删除。 hls_nested on; #嵌套模式。 } } } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location /stat { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root /usr/local/nginx/nginx-rtmp-module/; } location /live { #这里也是需要添加的字段。 types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } alias /opt/video/hls; expires -1; add_header Cache-Control no-cache; } location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
OBS录制推流
设置步骤:
1、添加场景
2、添加来源:显示器获取 、音频获取等等
3、设置RTMP的服务器路径,并设置流名称
4、开始录制、开始推流
5、验证是否直播成功,打开浏览器http://172.16.20.10:1990/stat,看到如下界面表示直播正常。
VLC视频流播放
参考:RTMP、RTSP、HTTP视频协议详解VLC下载网上一搜就有了。
只需要设置播放流地址就可以验证前面配置的直播地址了:
直播中:
今天的直播源码搭建教程到这里就结束了,有问题的欢迎来问
声明:本文由云豹科技转发自boonya博客,如有侵权请联系作者删除
- 海报