发布于2021-07-12 22:51 阅读(661) 评论(0) 点赞(20) 收藏(3)
在网上也有一些关于使用Nginx-rtmp来搭建直播系统的教程,可是都是使用rtmp协议,然而rtmp在网页端只能通过Flash player插件进行播放,因为现在的浏览器已经陆陆续续不支持Flash player插件,所以使用rtmp协议做直播是不支持网页端播放。
然而Nginx-rtmp不止支持rtmp协议,而且还支持hls协议,hls协议对网页播放非常友好,今天我就带大家学习一下使用Nginx-rtmp搭建简易的hls直播系统。
专业术语
rtmp协议:RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。
hlv协议:HLS (HTTP Live Streaming)是Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。
一、 工具与环境
Ubuntu 18.04:Linux操作系统
Nginx 1.8.1:一个高性能的HTTP和反向代理web服务器
nginx-rtmp-module:Nginx的rtmp模块
FFmpeg:是一个多媒体框架,可以对视频进行编解码、推拉流等功能的强大工具
VLC media player:一款支持流媒体的视频播放器
二、 安装Nginx与nginx-rtmp_module
网上有很多基于源码的安装教程,步骤是有点繁琐,这里教大家用PPA源直接安装Nginx和nginx-rtmp-module模块,命令如下:
$ sudo add-apt-repository ppa:nginx/stable
$ sudo apt update
$ sudo apt install nginx
$ sudo apt-get install libnginx-mod-rtmp
运行这四行命令,就可以把Nginx和nginx-rtmp-module模块安装上。
三、 配置Nginx
rtmp {
server {
listen 1935;
application hls {
live on;
hls on;
hls_path /data/nginx/rtmp/hls;
}
}
}
以上是配置hls的推流配置
```cpp
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias /data/nginx/rtmp/hls;
add_header Cache-Control no-cache;
}
以上是配置hls的拉流配置
四、 使用FFmpeg对摄像头进行推流
在本地安装FFmpeg工具。
1. 查看电脑设备
$ ffmpeg -list_devices true -f dshow -i dummy
我们可以看到电脑里有“HD Webcam”摄像头和“麦克风 (2- Realtek High Definition Audio)”麦克风。
2. 测试摄像头是否可用
$ ffplay -f dshow -i video="HD Webcam"
或
$ ffplay -f vfwcap -i 0
当看到这个画面就证明摄像头可用。
3. 推流摄像头与麦克风
$ ffmpeg -f dshow -i video="HD Webcam"
-f dshow -i audio
="麦克风 (2- Realtek High Definition Audio)"
-vcodec libx264 -preset:v ultrafast -tune:v zerolatency
-f flv rtmp://192.168.1.5:1935/hls/live
其中rtmp://192.168.1.5:1935/hls/live里的IP为你服务器的IP地址。
4. 播放直播视频
a. 使用VLC media player播放视频
在本地安装VLC media player并打开
点击“媒体”->“开开网络串流”
输入视频地址:http://192.168.1.5/hls/live.m3u8,点击“播放”即可播放视频
b. 使用网页播放视频
创建文件video.html,输入以下代码:
<video src="http://192.168.1.5/hls/live.m3u8" controls="controls">
您的浏览器不支持 video 标签。
</video>
使用浏览器打开video.html,即可播放视频
五、 结语
到此为止,一个直播系统已经完美搭建成功。可是这个直播系统有个比较严重的问题,就是hls协议的延时比较严重,通常有8-10秒的延时,可通过配置来降低延时,但是效果也不太理想。对于一些不太注重延时的需求还是可以满足的。
接下来我会教大家搭建更高级别的直播系统,可实现实时的直播需求,敬请关注。
原文链接:https://blog.csdn.net/RJ0024/article/details/118576818
作者:3823ehwe
链接:http://www.phpheidong.com/blog/article/114954/ed582b281ee329bedb7a/
来源:php黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 php黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-4
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!