【FFmpeg】ffmpeg+nginx-rtmp实现视频流转发

利用ffmpeg实现rtmp推流直播 ffmpeg直播 阅读详情

1.应用场景

目前的摄像头厂家能提供出来的视频流格式有限,且chrome已经禁止了对flash的支持,导致像硬盘录像机这种只能提供rtsp格式流地址的摄像头无法接入Web应用,所以不得不对视频的流地址进行分发,通过代码对流地址中的数据进行切割,非常影响服务的性能,所以采用ffmepg+nginx-rtmp这种无侵入,占用内存小的方式进行视频的分发。

2.软件包

ffmpeg-n4.4-80-gbf87bdd3f6-win64-gpl-4.4.zip

nginx-rtmp-win32-dev.zip

各位看官自行百度下载…

3.使用ffmpeg进行视频流的转流

1.解压zip目录进入文件的bin目录内,有如下几个文件
在这里插入图片描述
这里要用到的就是ffmpeg.exe
2.常用命令讲解

命令含义
-i设定输入视频的地址
-f设定输出格式
-hls_wrap设定分割的文件数量
-c copy拷贝所有的流

3.举一个例子

① 先在电脑上随便建立一个文件夹,我这里建的名称是test

② 进入ffmpeg的bin目录内,打开cmd命令行

③ 输入下列命令

ffmpeg -i 视频流地址 -hls_wrap 10 -c copy -f hls 本地文件夹地址\test\204.m3u8

当命令行出现以下内容时,表示转流成功
在这里插入图片描述
④打开本地建立的test文件夹,会发现有10个ts文件和一个m3u8文件,这里的ts文件,就是ffmpeg将流地址按照时间切片保存下来的视频文件,按照给定的参数进行循环保存覆盖的。
在这里插入图片描述
到这里,已经实现了对于视频流的转流及保存,这里可以解决的场景有:

  • 内网的摄像头映射到外网环境
  • Web端显示摄像头画面

接下来,只需要将这些切片文件一直提供给前端,就能持续的看到画面了。

4.使用nginx-rtmp推送视频文件,让浏览器显示视频。

解压nginx-rtmp-win32-dev.zip文件,进入conf文件夹,编辑nginx.conf文件

worker_processes  1;

error_log  logs/error.log info;

events {
    worker_connections  1024;
}

rtmp {
    server {
        listen 1935;

        application live {
            live on;
        }
		
        application hls {
            live on;
            hls on;  
            hls_path temp/hls;  
            hls_fragment 8s;  
        }
    }
}

http {
    server {
        listen      8080;
		
        location / {
        	# 这里配置视频文件所在的文件夹,这里就放在nginx-rtmp的html文件夹内,
        	# 所以不需要更改。
            root html; 
        }
		
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            root html;
        }
		
        location /hls {  
            #server hls fragments  
            types{  
                application/vnd.apple.mpegurl m3u8;  
                video/mp2t ts;  
            }  
            alias temp/hls;  
            expires -1;  
        }  
    }
}

启动nginx-rtmp:

start nginx

打开浏览器,看到以下内容,表示推送成功
在这里插入图片描述
前端推荐使用Video.js进行视频的展示,这里不做赘述了,使用起来非常简单。

如果有很多视频需要转发,推荐写bat文件进行后台启动

//流地址转发.bat

start cmd /k ffmpeg -i 流地址1 -hls_wrap 10 -c copy -f hls 本地文件夹\1.m3u8
start cmd /k ffmpeg -i 流地址2 -hls_wrap 10 -c copy -f hls 本地文件夹\2.m3u8
start cmd /k ffmpeg -i 流地址3 -hls_wrap 10 -c copy -f hls 本地文件夹\3.m3u8
start cmd /k ffmpeg -i 流地址4 -hls_wrap 10 -c copy -f hls 本地文件夹\4.m3u8
start cmd /k ffmpeg -i 流地址5 -hls_wrap 10 -c copy -f hls 本地文件夹\5.m3u8

这样保存成bat,直接双击就能启动啦^ _ ^
在这里插入图片描述

JeecgBoot数据权限实战指南:从配置到SQL排错全流程踩坑记录 数据权限是企业应用中的常见需求,核心技术是在SQL查询层动态追加行级过滤条件,以实现不同角色看到不同数据范围。在JeecgBoot这类低代码平台中,数据权限规则通常挂在菜单上,通过注解触发,由切面生成条件片段并拼入最终查询语句。配置链路较长,涉及菜单对应关系、字段命名、缓存刷新等多个环节,任一环节错位都会导致规则不生效或数据泄露。本文从通用数据权限设计原理出发,结合JeecgBoot实际项目,梳理了系统规则、自定义规则、SQL日志排查、缓存清理等高频问题,帮助开发者快速定位权限配置失效、字段写错、SQL拼接 阅读详情

相关推荐

【树莓派】ffmpeg + nginx 推 rtmp 视频流实现远程监控

目录 1. 安装说明 2. 树莓派安装 ffmpeg 3. 云端安装 rtmp 服务器 4. 树莓派推流至 rtmp 服务器 5. 客户端播放 rtmp 视频流 1. 安装说明 要想树莓派实现远程监控的能力,那么就需要有一个“视频中转站”,这个中转站要有一个公网IP,这样才可以在任何地方都能访问 我这里使用的中转站是阿里云服务器。当然网上也有很多 rtmp 服务器可以使用,有需要的...

Walle的博客 8490

使用nginx和ffmpeg搭建HTTP FLV流媒体服务器(摄像头RTSP视频流->RTMP->http-flv)

名词解释RTSP是一种网络协议,用于控制实时流媒体的传输。它是一种应用层协议,通常用于在客户端和流媒体服务器之间建立和控制媒体流的传输。RTSP允许客户端向服务器发送请求,如播放、暂停、停止、前进、后退等,以控制媒体流的播放和操作。RTSP可以与不同的传输协议(如RTP、TCP、UDP)结合使用,以实现实时的音视频流传输。它在视频监控、流媒体直播、视频会议等应用中广泛使用。RTMPRTMP(Real-Time Messaging Protocol)是一种用于实时数据传输的网络协议。

weixin_38340874的博客 1万+

ffmpeg实战教程(九)windows下ffmpeg命令+nginx + rtmp实现推流,拉流。

概述Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 nginx-rmtp-module是Nginx服务器的流媒体插件。nginx通过rtmp模块提供rtmp服务, ffmpeg推送一个rtmp流到nginx, 然后客户端通过访问nginx来收看实时视频流。先介绍一下windows下搭建nginx + rtmp有两种方案: (一) 1.下载ng

WangShuo的专栏 2万+

Nginx+rtmp+ffmpeg搭建视频转码服务

(1)首先安装yasm, FFmpeg 为了提高编译速度,使用了汇编指令,如MMX和SSE等。因为nginx搭建流媒体服务需要用到 nginx-rtmp-module 模块,所有先安装nginx-rtmp-module。还可以使用浏览器这样访问 http://192.168.1.11/hls/22.m3u8。此时通过端口查看命令可以看见linux监听的80端口和1935端口已经全部启动。(3)拷贝命令到/usr/bin(方便后面调用)打开VLC 媒体——>流——>网络。(4) 通过ffmpeg推流。

那些乐趣的博客 7865

使用ffmpeg+nginx进行rtsp视频流至rtmp视频流的转换

说明: 操作系统:window server 2008 R2   步骤: 1、安装ffmpeg: 通过官网http://www.ffmpeg.org/download.html或其他途径下载ffmpeg,解压到程序安装位置即可 2、安装nginx 需要下载旧版nginx并安装nginx-rtmp-module(我使用的是从网上下载的nginx-rtmp集成版,版本号:nginx:1....

dumdums的专栏 4209

rtsp流通过ffmpeg+nginx转成rtmp以及http-flv流

1.摄像头提供rtsp的视频流,使用VLC转成ogg格式虽然可以通过h5播放,但是延迟太高;最终决定将rtsp流通过ffmpeg+nginx-http-flv转成rtmp以及http-flv流,并通过flv.js在h5页面播放。

a123789999的博客 6724

FFmpeg推送视频流,Nginx RTMP模块转发,VLC播放器播放,实现整个RTMP直播

FFmpeg推送视频流,Nginx RTMP模块转发,VLC播放器播放,实现整个RTMP直播查看本机电脑的设备ffmpeg -list_devices true -f dshow -i dummy红色标记表示视频设备和麦克风设备看到乱码了吧!来这里查看哦 FFmpeg编码推送到RTMP服务器ffmpeg -f dshow -i video="Lenovo EasyCamera":audio="麦克...

C/C++ 2275

实践:记一次内网推接流过程(ffmpeg,nginx,rtmp)

这里主要讲下项目实践,前两篇已经介绍了利用ffmpeg、nginx推接流,现在假如你的项目是内网摄像头该怎么办呢,因为大部分情况下比如学校、库房这些地方的摄像头必然是内网,而且监控系统也基本会是在Windows上,如果你要接内网的视频流到你的算法端口,这个算法端口已经部署到你采购的新电脑中。下面拿本次实践的校园内网(摄像头为海康威视)对这种情况说明下: 1.准备 推流端:校园监控有个总控室,会有一台电脑接入了所有摄像头,首先肯定是要把ffmpeg配置到总控室这台电脑(Windows配置ffmp...

qq_20373723的博客 3250

从内网到公网:使用RTSP和RTMP实现摄像头视频流实时转发

本文将探讨如何利用 FFmpeg 和 Nginx RTMP 模块,实现从局域网摄像头到公网的实时视频流转发分两部分。

qq_40087136的博客 4373

ffmpeg推流+nginx转发+拉流(RTMP拉流)

ffmpeg推流+nginx转发+拉流(RTMP拉流)

deroy 1141

Nginx-FFmpeg-RTMP视频流处理全教程

流媒体技术是一种将压缩的音频和视频数据从服务器传输到客户端的技术,之后用户可以在接收的同时开始播放这些流式媒体。这种技术的优势在于无需完全下载整个媒体文件即可播放,从而大大减少了等待时间。RTMP(Real Time Messaging Protocol)是Adobe公司开发的一种网络传输协议,广泛用于实时传输音视频数据,尤其是在网络直播和视频通话领域。监控流媒体服务器的性能是保证服务质量的关键。可以使用多种工具进行性能监控,比如tophtopfree等系统命令来监控服务器的基本资源使用情况。

weixin_35829279的博客 1537

在两个nginx服务器之间通过ffmpeg实现视频流转推

由于项目需求,需要分别在厂站和集中服务器上开发nginx服务器的rtmp-module模块,通过ffmpeg实现对直播数据流的推流和转推。展示了测试过程的截图。

qq_40988805的博客 1176

告别密码烦恼:用Windows Server NPS给公司Wi-Fi和有线网加一道MAC地址白名单(附H3C交换机配置)

本文详细介绍了如何利用Windows Server NPS(网络策略服务器)与H3C交换机实现MAC地址白名单认证,为企业Wi-Fi和有线网络提供零密码安全方案。通过配置NPS服务器、网络策略及H3C交换机联调,实现无感知认证体验,降低运维负担,同时满足审计追溯需求。适用于中小企业网络管理,提升安全性与便捷性。

weixin_42535703的博客 365

ffmpeg+nginx-rtmp转发视频流

ffmpeg+nginx-rtmp转发视频流

工大机器人工作室 3629

加密视频如何破解 如何解除机器码绑定的视频

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 如何破解加密...

Q-980767270的博客 5万+

基于MicroPython的ESP32与微信小程序MQTT通信实战

本文详细介绍了基于MicroPython的ESP32与微信小程序通过MQTT协议实现远程控制的完整实战方案。项目利用巴法云作为免费MQTT服务器,提供了从设备端编程、小程序开发到通信调试的全流程指南,帮助开发者快速构建低成本、易上手的物联网应用,如智能开关、传感器监控等。

week9的博客 632

Windows搭建RTMP视频流服务(Nginx服务器版)

Windows搭建RTSP RTMP视频流服务(Nginx服务器版)

qq_44231797的博客 1万+

EFR32无线SoC开发指南:从环境搭建到性能优化

物联网边缘设备开发中,无线SoC芯片的选择与开发环境配置是关键第一步。EFR32作为Silicon Labs推出的多协议无线SoC系列,配合Simplicity Studio IDE,为开发者提供了完整的解决方案。本文以EFR32xG22开发套件为例,详细介绍开发环境搭建、工程创建、硬件配置等核心环节,特别针对RAILtest示例工程进行深入解析。通过实际案例演示如何配置无线参数、优化低功耗模式,并分享串口终端交互、吞吐量测试等实战技巧。对于开发者常见的问题如设备识别失败、无线通信异常等,提供了系统化的排查

weixin_30342363的博客 350

Win10下实现利用FFmpeg将rtsp视频流转换成rtmp和hls

Win10下实现利用FFmpeg将rtsp视频流转换成rtmp和hls废话在前能做到什么所用相关技术:FFmpeg安装下载配置环境变量测试搭建nginx-rtmp流媒体服务器下载配置rtsp转rtmp配置功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程

lslanding的博客 1万+

软件测试 | 手把手教你如何使用 Charles 抓包工具(电脑+手机端)

软件测试 | 手把手教你如何使用 Charles 抓包工具(电脑+手机端)一、Charles简介二、Charles下载与安装三、Charles配置(1)Charles-PC端的配置如下:(2)过滤网络请求:(3)Charles抓取HTTPS请求包前置条件:(4)Charles抓取HTTPS双向认证包:关注我,免费领取学习资料 嘿。大家好,我是4U: 做过 APP 测试的同学都会接触抓包工具,通过抓包工具可以获取到客户端与服务端接口的交互数据,在实际测试APP的过程中,我们往往会发现服务端返回 的参数字段错

leboxy的博客 4151

在 ABAP 世界把 SAML 2.0 玩明白:跨域 SSO 的通信模式、配置路径与落地实践

摘要 SAML 2.0是ABAP平台实现标准化SSO的推荐方案,提供Front-Channel(浏览器传递SAML报文)和Back-Channel(使用工件绑定通过SOAP兑换断言)两种通信方式。前者包括HTTP Redirect和POST绑定,后者通过Artifact绑定提升安全性。配置重点包括:激活ICF服务、使用SAML2事务码建立信任、设置用户标识映射、选择绑定方式(POST易调试、Artifact更安全)及配置安全策略(签名/加密)。典型流程包括SP-initiated和IdP-initiated

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 290

ffmpeg+nginx+rtmp实现推拉流,搭建实时视频流场景

一、准备 1.环境: windows 2.开发工具: ffmpeg、nginx(代理服务器)nginx-rmtp-module(nginx服务器的流媒体插件)、vlc(兼容性播放器) 3.原理: nginx通过rtmp模块提供rtmp服务, ffmpeg推送一个rtmp流到nginx, 然后客户端通过访问nginx来收看实时视频流。 二、下载并解压文件 1.百度网盘链接: https://pan....

weixin_43419111的博客 2569

TRAE智能体开发:TRAE概述

TRAE(/treɪ/)深度融合 AI 能力,是一名能够理解需求、调用工具并独立完成各类开发任务的“AI 开发工程师”,帮助你高效推进每一个项目。

王国平的博客 1258
下一篇: 【Docker】安装Mysql5.7
JeffHan^_^
博客等级 码龄7年 1万+粉丝 134原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值