通过Nginx实现直播软件源码的推流和拉流

推流和拉流是直播软件源码实现直播的重要步骤,今天我们分析一下如何通过Nginx实现直播软件源码的推拉流。 ​

理论介绍

1、RMTP, Real Time Messaging Protocol 实时消息传输协议。

该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。RTMP与HTTP一样,都属于TCP/IP四层模型的应用层。
复制代码

2、FFmpeg, 直播软件源码视频处理最常用的开源软件。

实现步骤

1、安装配置 FFmpeg

Mac 下装的比较简单,直接 homebrew 装即可:

brew install ffmpeg

2、安装 nginx

安装 rtmp module 采用 stack overflow 该方式可以成功安装

// 因为我之前有通过 homebrew 装过nginx,所以需要先 unlink
brew unlink nginx
// 了解了一下,类似npm 切换 registry
brew tap denji/nginx
// 执行安装
brew install nginx-full --with-rtmp-module

Nginx常用命令

  1. nginx -s reload 重新加载配置文件
  2. nginx -s reopen 再次打开日志文件
  3. nginx -s stop 停止服务器
  4. nginx -s quit 退出服务器
  5. nginx 启动Nginx

Nginx目录

  • 安装位置 /usr/local/opt/nginx-full/bin/nginx
  • 配置文件所在目录 /usr/local/etc/nginx/nginx.conf
  • 服务器根目录 /usr/local/var/www

直播软件源码安装好 nginx 后,进行 rtmp 配置: ​

完整的配置文件可以从这里查看,可以备份下你当前的nginx.conf,然后用我提供的 nginx.conf 进行替换,然后执行 nginx -s reload,重新加载即可。

rtmp {
    server {
        listen 1935;
        chunk_size 4096;

        application video {
            play /usr/local/var/www/video;
        }

        application live {
            live on;
            record off;
            hls on;
            # 这个路径是会有内容写到其中的
            hls_path /usr/local/var/www/live/hls/;
            hls_fragment 5s;
        }
    }
}

注意,其中的 /usr/local/var/www/video 目录如果不存在,可以手动创建一下。 ​

直播软件源码播放相关的配置

location /hls {
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            # 注意,这里的路径需要和下面 rtmp 配置的路径一致,否则会报404
            alias /usr/local/var/www/live/hls/;
            expires -1;
            add_header Cache-Control no-cache;
        }

        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            # 这里的目录一定要准确,否则会报404
            root /usr/local/Cellar/rtmp-nginx-module/1.1.7.11-dev_3/share/rtmp-nginx-module/;
        }

3、FFmpeg 推流,拉流

直播软件源码推流脚本

ffmpeg -re -i video.mp4 -vcodec libx264 -acodec aac -f flv rtmp://localhost/live/llccing

注意,执行上面命令的时候,有个video.mp4文件,所以需要在视频文件所在的目录运行该命令,或者指定绝对路径。视频资源在参考中已经提供,可以去下载。 ​

直播软件源码拉流脚本

ffplay rtmp://localhost:1935/live/llccing

先推流,再拉流,即可实现视频播放。

4、OBS 推流, VLC 拉流

OBS推流设置,如下图:

image.png

VLC 拉流设置,如下图

image.png

如此就实现了通过 OBS 推流直播,通过 VLC 拉流观看直播。

5、成功展示

展示效果图如下

image.png

这样,我们就实现了直播软件源码的推拉流。

声明:本文由云豹科技转发自程序猿小新博客,如有侵权请联系作者删除

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值