ffmpeg+nginx-rtmp转发视频流

这篇具有很好参考价值的文章主要介绍了ffmpeg+nginx-rtmp转发视频流。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本篇博客最早发布于实验室公共博客,但已无人维护,现迁移至个人博客


nginx与nginx-rtmp-module安装

画了好几天图,实在有些乏力,找点有意思的事情做做

觉得视频流传输挺有意思,B站找了些视频,但感觉有些大同小异,讲得不是很清楚

FFmpeg/RTMP/webRTC丨90分钟搞定直播逻辑-推流-流媒体服务器-拉流

流媒体服务器搭建RTMP-RTSP-WebRTC流媒体服务器

也没看太明白,虽然不太需要了解底层原理吧,但感觉还是了解一些为好

总之要在云服务器上安装nginxnginx-rtmp-module这两个东西,先装一下吧

nginx-RTMP + ffmpeg实现远程图传

主要参考了下面两篇博客,写得还是很详细的

centos7 nginx rtmp转发流媒体服务器

nginx源码编译安装(详解)

ffmpeg+nginx-rtmp转发视频流

陆师兄编译的时候用了--with-openssl=/usr/local/nginx/src/openssl,帮助文档上

--with-openssl=DIR                 set path to OpenSSL library sources

后面应该是OpenSSL库文件的路径,我之前二进制装的,因此找不到src文件,硬加编译会报错,提示找不到no such file or directory

[lighthouse@VM-4-11-centos nginx-1.22.0]$ whereis openssl
openssl: /usr/bin/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz

第一篇博客中博主没有设置这个参数,所以我也没有设置,大概--with了一些module

安装完成后

[lighthouse@VM-4-11-centos ~]$ whereis nginx
nginx: /usr/local/nginx
[lighthouse@VM-4-11-centos ~]$ cd /usr/local/nginx/sbin/
[lighthouse@VM-4-11-centos sbin]$ ls
nginx
[lighthouse@VM-4-11-centos sbin]$ ./nginx -v
nginx version: nginx/1.22.0
[lighthouse@VM-4-11-centos sbin]$ ./nginx -V
nginx version: nginx/1.22.0
built by gcc 8.5.0 20210514 (Red Hat 8.5.0-4) (GCC) 
built with OpenSSL 1.1.1k  FIPS 25 Mar 2021
TLS SNI support enabled
configure arguments: --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module --with-pcre --add-module=/usr/local/src/nginx-rtmp-module

可以看到还是用到了OpenSSL的,同时还给出了configure arguments

查看下/usr/local/nginx/的目录结构

[lighthouse@VM-4-11-centos nginx-1.22.0]$ cd /usr/local/nginx/
[lighthouse@VM-4-11-centos nginx]$ ls
conf  html  logs  sbin
[lighthouse@VM-4-11-centos nginx]$ tree
.
├── conf
│   ├── fastcgi.conf
│   ├── fastcgi.conf.default
│   ├── fastcgi_params
│   ├── fastcgi_params.default
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types
│   ├── mime.types.default
│   ├── nginx.conf
│   ├── nginx.conf.default
│   ├── scgi_params
│   ├── scgi_params.default
│   ├── uwsgi_params
│   ├── uwsgi_params.default
│   └── win-utf
├── html
│   ├── 50x.html
│   └── index.html
├── logs
└── sbin
    └── nginx

4 directories, 18 files

官方下载地址

https://github.com/arut/nginx-rtmp-module

https://github.com/nginx/nginx

官方的文档及教程

Beginner’s Guide

Linux本地推流-拉流

在装了Ubuntu的笔记本上安装好必要的程序后,修改nginx的配置文件

cd /usr/local/nginx/conf/
sudo vim nginx.conf

只在http前面添加一小部分,及RTAM模块

rtmp {
    server {
       listen 6000;
       application videotest {
           live on;
       }
     }
}
  • 6000是负责推流和拉流的端口
  • live on表示视频流是实时的,而不是每次拉取都是从头开始

然后打开一个终端,重新加载配置文件

cd /usr/local/nginx/sbin/
sudo ./nginx -s reload

将一个视频放到你放的位置,打开终端进行推流

ffmpeg -re -i ~/视频/日落与渔.MP4 -vcodec copy -acodec copy -b:v 800k -b:a 32k -f flv rtmp://localhost:6000/videotest

💡 这里不指定端口的话默认是1935,与配置文件不符的话会报错,通常都需要指定一下

再打开一个终端进行拉流

ffplay rtmp://localhost:6000/videotest

成功播放

ffmpeg+nginx-rtmp转发视频流

将视频推流至服务器并在PC及移动端拉流

同样在服务端安装好必要程序后,修改nginx的配置文件

rtmp {
   
   server {
   
      listen 7788;

      chunk_size 6400;
 
      application videotest {
         
         live on;
   
      }
   }
}
  • chunk_size是数据块大小

打开7788端口的防火墙

ffmpeg+nginx-rtmp转发视频流

同样在笔记本端进行视频推流

ffmpeg -re -i ~/视频/日落与渔.MP4 -vcodec copy -acodec copy -b:v 800k -b:a 32k -f flv rtmp://centos:7788/videotest

在台式机上安装VLC软件,打开网络串流

输入 rtmp://1.116.137.21:7788/videotest,即可拉取播放

ffmpeg+nginx-rtmp转发视频流

同样在手机端安装VLC软件,也可拉取播放

ffmpeg+nginx-rtmp转发视频流文章来源地址https://www.toymoban.com/news/detail-500211.html

到了这里,关于ffmpeg+nginx-rtmp转发视频流的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows上搭建Nginx-http-flv实现rtsp视频流推流到rtmp流媒体服务器并转换和前端拉取http-flv视频流

    Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流: Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流_霸道流氓气质的博客-CSDN博客 Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流: Vue中使用vue-vi

    2024年02月15日
    浏览(74)
  • ffmpeg + nginx 实现rtsp视频流转m3u8视频流,转码推流(linux)

    FFmpeg即是一款音视频编解码工具,同时也是一组音视频编码开发套件,作为编码开发套件,它为开发者提供了丰富的音视频处理的调用接口。 FFmpeg提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种多彩格式转换、多种采样率转换、多种码率

    2024年02月09日
    浏览(70)
  • 记录对接海康威视摄像头web端实时预览:Linux+ffmpeg+nginx转换RTSP视频流(完整版实现)

            需求:web端实现海康摄像头实时预览效果         由于市面上大部分网络摄像头都支持RTSP协议视频流,web端一般无法直接使用RTSP实现视频预览,本篇使用ffmpeg对视频流进行转换,最终实现web端实时预览。         工具介绍:ffmpeg、nginx、vue         介

    2024年01月25日
    浏览(57)
  • 将电脑本地视频转成rtsp和rtmp视频流

    1、安装rtsp-simple-server rtsp-server 下载好的文件直接运行就好 2、打开FFmpeg开始推流 udp推流 tcp推流 循环推流 其中: -re 为以流的方式读取; -stream_loop 为循环读取视频源的次数,-1为无限循环; -i 为输入的文件; -f 为格式化输出到哪里;

    2024年02月15日
    浏览(47)
  • 安防视频管理平台GB设备接入EasyCVR, 如何获取RTMP与RTSP视频流

    安防视频监控平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,比如:视频监控直播、云端录像、云存储、录

    2024年02月15日
    浏览(43)
  • Qt推流程序自动生成网页远程查看实时视频流(视频文件/视频流/摄像头/桌面转成流媒体rtmp+hls+webrtc)

    推流程序将视频流推送到流媒体服务器后,此时就等待验证拉流播放,一般可以选择ffplay命令行播放或者vlc等播放器打开播放,也可以选择网页直接打开拉流地址播放,一般主流的浏览器都支持网页直接播放hls/m3u8/webrtc类型的视频流,而且推流的主要目的可能就是为了能够在

    2024年02月05日
    浏览(81)
  • Vue实现摄像头视频分屏, 使用flv.js接收rtmp/flv视频流

    1. 现有的平台系统播放实时视频。 因为用户电脑都是Linux系统,无法直接使用海康前端SDK,讨论决定由后台推视频流,简单调研后发现最流行的是flv,而且有B站开源的flv.js适配。前期后台推给我RTMP前缀的视频流,我尝试使用video.js,西瓜视频等都失败了,后来后端改为http前

    2024年02月03日
    浏览(56)
  • JAVA实现H264视频流推送到RTSP、RTMP服务----JavaCV

    前提: 1.准备好rtsp、rtmp服务 2.准备好视频流接收程序 基本思路是:启动两个线程,线程1接收视频流,线程2使用JavaCV将视频流推送到RTSP、RTMP服务,两者之间使用管道流进行通信。线程2接收到视频流后的具体操作:启动grabber接收视频流并捕获视频帧,然后启动recoder将捕获的

    2024年02月11日
    浏览(60)
  • 利用ffmpeg分析视频流

    ffprobe -show_packets -i \\\"rtsp://192.168.61.46:8554/live?channel=0type=0\\\":该命令用于显示 RTSP 流中的数据包信息,例如时间戳、大小、持续时间等。 ffprobe -i \\\"rtsp://192.168.61.46:8554/live?channel=0type=0\\\":该命令用于显示输入 RTSP 流的基本信息,例如时长、编解码器、分辨率等。 ffprobe -show_format -

    2024年02月13日
    浏览(41)
  • 前端VUE播放RTSP、RTMP、HLS、FLV视频流的解决方案

    最近有个需求是前端在浏览器显示摄像头传回的RTSP视频流,我和后端都没做过视频流的项目,所以一步步摸索过来,方法和经验供大家参考。前端采用的技术有VUE+video.js+flv.js 从上图可以看出,RTSP流不能直接在浏览器播放,所以需要转码: RTMP的流需要在浏览器中用flash播放

    2024年02月06日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包