• 欢迎大家分享资料!前往留言板评论即可!

使用nginx实现rtmp的推流和点播

合宙 模组资料网 2年前 (2021-05-15) 411次浏览 0个评论 扫描二维码
文章目录[隐藏]

@

Contents

RTMP简介

  1. 是流媒体协议。
  2. RTMP协议是 Adobe 的私有协议,未完全公开。
  3. RTMP协议一般传输的是 flv,f4v 格式流。
  4. RTMP一般在 TCP 1个通道上传输命令和数据。

详细资料:https://cloud.tencent.com/developer/article/1038381
使用nginx实现rtmp的推流和点播

nginx简介

nginx是一个高性能的HTTP和反向代理服务器,其特点是占用内存少,并发能力强。

代理服务器:

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站,去获取信息。

主要的功能有:

  1. 突破自身IP访问限制,访问国外站点。教育网、169网等网络用户可以通过代理访问国外网站。
  2. 访问一些单位或团体内部资源,如某大学FTP(前提是该代理地址在该资源 的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育 网开放的各类FTP下载上传,以及各类资料查询共享等服务。
  3. 突破中国电信的IP封锁:中国电信用户有很多网站是被限制访问的,这种 限制是人为的,不同Serve对地址的封锁是不同的。所以不能访问时可以换一个国 外的代理服务器试试。
  4. 提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界 的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。
  5. 隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击.

安装与使用

安装

sudo apt-get install nginx # 安装Nginx
sudo apt-get install libnginx-mod-rtmp  # 安装libnginx-mod-rtmp
sudo apt install ffmpeg --推流,拉流工具

配置nginx

vim /etc/nginx/nginx.conf  #打开配置文件
set mouse=a #支持鼠标操作
rtmp {
    server {
        listen 1935;  #rtmp server 缺省端口
        chunk_size 4096;   #d配置 RTMP 消息块 4096 字节

        # 点播配置
        application vod {
            play /home/haska/videos; #video path
        }

        # 直播流配置
        application live{
            live on;
        }
    }
}

nginx常用指令

sudo service  nginx reload   #不重启重新载入最新配置文件内容
sudo service  nginx stop     #停止服务
sudo service  nginx restart  #重启服务

使用ffmpeg推流

推流指令

  • 一次性推流
ffmpeg -re -i test.mp4 -c copy -f flv rtmp://192.168.0.103:1935/live/test

该指令是推流一个文件,推结束后,就会停止,客户端拉流完成后也会结束。
– 添加参数循环推流

ffmpeg -re -stream_loop 1 -i test.mp4 -c copy -f flv rtmp://192.168.0.103:1935/live/test
  • 使用脚本循环推流
for((;;)); do \
ffmpeg -re -i "H:\video.mp4" \
-c copy \
-f flv -y rtmp://10.100.1.4:1935/live/12345; \
sleep 1; \
done

指令详解

-re ffmpeg 默认打开文件以后,处理速度很快。为了让 ffmpeg 模拟本地设备,以流的速度处理,需要此选项。
-i 这是输入文件选项。
-c 这是推流的过程中,直接 copy 编码的 H264/AAC 流,避免解码、编码。
-f 这是输出格式,我们这里用 -f flv 标明需要通过 flv 格式推流。后面小节会单独讲解 AVC/AAC 如何打包 flv tag的。

使用VLC软件点播

点播

rtmp://192.168.0.103:1935/vod/test.mp4

测试过程中发现不能点播MP3文件,原因不明

直播

rtmp://192.168.0.103:1935/live/test

转载请注明原文链接:使用nginx实现rtmp的推流和点播
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址