本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何使用Nginx-rtmp搭建简易的HLS直播系统

发布于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黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

20 0
收藏该文
已收藏

评论内容:(最多支持255个字符)