ffmpeg+nginx 实现rtsp转rtmp并通过nginx转发

Windows安装

ffmpeg

  1. windows版下载地址https://ffmpeg.zeranoe.com/builds/ static版本就行
  2. 配置环境变量:下载的压缩包解压后的路径加入path

  3. 测试运行:cmd 输入ffmpeg -version 显示如下:

  4. 安装完毕。
  5. Rtsp转Rtmp 并推送到Nginx命令:
ffmpeg -rtsp_transport tcp -i "rtsp://root:[email protected]/axis-media/media.amp" -vcodec copy  -acodec copy -f flv "rtmp://127.0.0.1:1935/live/"

Nginx

  1. nginx rtmp module下载地址https://github.com/illuspas/nginx-rtmp-win32
  2. 配置rtmp代理:conf/nginx.conf 确保有以下内容
rtmp {
    server {
        listen 1935;
        application live {
            live on;
        }
        application hls {
            live on;
            hls on;
            hls_path temp/hls;
            hls_fragment 8s;
        }
    }
}
  1. 点击nginx.exe运行或者cmd窗口中输入nginx.exe
  2. 测试是否运行:访问http://127.0.0.1:8080/index.html

测试搭建是否成功

  1. Cmd 窗口执行: ffmpeg -rtsp_transport tcp -i “rtsp://root:[email protected]/axis-media/media.amp” -vcodec copy -acodec copy -f flv “rtmp://127.0.0.1:1935/live/”
  2. 使用vlc播放器播放rtmp://127.0.0.1:1935/live/ 是否成功

Linux 安装

Nginx

  1. 软件包nginx-1.15.5.tar.gz,nginx-rtmp-module-master.tar
  2. 依赖库openssl-1.0.2l.tar.gz; pcre-8.42.tar.gz; zlib-1.2.11.tar.gz;
  3. 安装openssl
    • 解压openssl-1.0.2l.tar.gz
    • 进入文件夹 ./config
    • make && make install
    • 安装zlib
    • 解压tar xf zlib-1.2.11.tar.gz
    • ./configure
    • make && make install
    • 安装 nginx
    • 解压nginx-1.15.5.tar.gz; nginx-rtmp-module-master.tar
     cd nginx-1.15.5
     ./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module-master --with-http_ssl_module  --with-pcre=../pcre-8.42 --with-openssl=../openssl-1.0.2l --with-zlib=../zlib-1.2.11
    
    • 安装: make &&make install
    • cd /usr/local/nginx/
    • vi ./conf/nginx.conf
    • 添加以下内容
rtmp {
    server {
        listen 1935;
        chunk_size 4000;
    application live{
  live on;
}
        application hls {
            live on;
            hls on;
            hls_path html/hls;
            hls_fragment 3s;
        }
    }
}
  1. 修改http server端口为8001 修改servername 为本机ip,保存退出
  2. 开放1935端口和8001端口
  3. firewall-cmd --zone=public --add-port=1935/tcp –permanent
  4. firewall-cmd --reload
  5. 启动 ./sbin/nginx -c ./conf/nginx.conf
  6. 查看是否启动成功:ps aux|grep nginx

ffmpeg

  1. 安装编译环境(root权限):yasm yasm-1.3.0.tar.gz
  2. cd yasm-1.3.0/
  3. ./configure
  4. make && make install
  5. 安装 ffmpeg tar -xvf ffmpeg-4.0.2.tar.gz
  6. ./configure
  7. make && make isntall
  8. 修改文件/etc/ld.so.conf 内容增加第二行/usr/local/ffmpeg/lib/
  9. 增加环境变量ffmpeg:输入 export PATH=/usr/local/ffmpeg/bin/:$PATH
  10. 测试执行 ffmpeg -version 无报错则安装完成
  11. 推流测试

原文地址:https://www.cnblogs.com/xxjs/p/12069364.html

时间: 2024-10-09 11:25:31

ffmpeg+nginx 实现rtsp转rtmp并通过nginx转发的相关文章

Rtsp to Rtmp流媒体转发

RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信.支持该协议的软件包括Adobe Media Server.Ultrant Media Server.red5.nginx. HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,相对于常见的流媒体直播协议,例如RTMP协议.RTSP协议.MMS协议 等,HLS直播

windows下流媒体nginx-rmtp-module服务器搭建及java程序调用fmpeg将rtsp转rtmp直播流

第一步:首先介绍一下所用相关技术 注:项目中使用的jwplayer插件,不支持rtsp协议,所以使用以下技术来进行转艺 FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.在这里我只用到了它的视屏格式转换功能,将rtsp协议的视频流转成rtmp Rtsp协议(实时流传输协议):  公司用的是海康的监控地址为(rtsp://admin:[email protected]/h264/ch1/main/av_stream) 3. Rtmp协议(实时消息传输协议 ):

海康&大华&DSS视频拉流-RTSP转RTMP多媒体播放技术

海康&大华&DSS获取RTSP 实时流 海康:rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream说明:username: 用户名.例如admin.password: 密码.例如12345.ip: 为设备IP.例如 192.0.0.64.port: 端口号默认为554,若为默认可不填写.codec:有h264.MPEG-4.mpeg4这几种.channel: 通道号,起始为1.例如通道1

HTTP协议/RTSP协议/RTMP协议的区别

RTSP. RTMP.HTTP的共同点.区别 共同点: 1:RTSP RTMP HTTP都是在应用应用层. 2: 理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP,做点播用HTTP.做视频会议的时候原来用SIP协议,现在基本上被RTMP协议取代了. 区别: 1:HTTP: 即超文本传送协议(ftp即文件传输协议). HTTP:(Real Time Streaming Protocol),实时流传输协议. HTTP全称Routing Table Maintena

Nginx基础知识之————RTMP模块中的中HLS专题(翻译文档)

一.在Nginx配置文件的RTMP模块中配置hls hls_key_path /tmp/hlskeys; 提示错误信息: nginx: [emerg] the same path name "/data/hlskeys" used in /usr/local/nginx/conf/nginx.conf:178 and in /usr/local/nginx/conf/nginx.conf:178 解决办法: 查看官方RTMP源代码:nginx-rtmp-module / hls /ng

使用FFMPEG在windows平台下推rtmp流

使用FFMPEG在windows平台下推rtmp流 工作中习惯在Linux下面使用FFmpeg模拟推rtmp流,无奈家中的电脑都是windows系统,需要利用家中的带宽来测试流媒体服务器的性能.所以研究了一下如何在windows系统中快速推流. 首先下载安装ffmpeg 下载windows下的FFMPEG压缩包,解压到当前目录,见下图(如何快速截图并上传到图传?) 我们使用的是ffmpeg-20180429-19c3df0-win64-static\bin路径下的ffmpeg.exe文件. 写两

RTSP、RTMP、HTTP协议

一.异同1.RSTP.RTMP.HTTP协议共同点RTSP RTMP HTTP都是用在应用层.理论上这三种协议都可以做直播和点播,但直播一般用RTSP和RTMP点播用HTTP.2.RSTP.RTMP.HTTP协议区别HTTP将数据作为文件处理,所以HTTP不是流媒体协议,RTMP和RTSP是流媒体协议.RTMP是Adobe的私有协议,未完全公开,RTSP和HTTP是共有协议.RTMP一般传输flv,f4v格式流,RTSP传输ts,MP4格式流,HTTP没有特定的流.RTSP一般需要2-3个通道,

RTSP 与 RTMP 协议 (转)

源: RTSP 与 RTMP 协议 RTSP Spec中文版(1-11) RTSP协议 流媒体之rtsp篇 H264视频传输.编解码----RTSP协议 原文地址:https://www.cnblogs.com/LittleTiger/p/10412095.html

如何在IE浏览器播放RTSP或RTMP流(RTSP/RTMP OCX控件)

好多开发者一直苦恼于如何在IE浏览器环境下,构建低延迟的RTSP或RTMP播放,对于RTSP流来说,好多公司通常的做法是把RTSP转RTMP,然后分发到RTMP服务器,然后服务器转http-flv出来,浏览器直接播放http-flv流,亦或通过flash控件直接播放RTMP流,还有就是,转hls流出来,缺点是hls流延迟更大. 以上方案未尝不可,如果对播放体验和延迟要求更高,最简单的做法是直接在IE浏览器下加载activex控件,扩展了ocx控件,用于IE浏览器下的低延迟RTMP或RTSP播放.