基于FFmpeg混流及录制rtmp直播流

1、什么是混流?

混流就是把多路音视频流合成单流。准确的说,混流应该叫做混音(音频流)混画面(视频流)

混流的过程包括解码、混流、编码和推流四个部分。混流这个环节包括做抖动缓冲,目的是把多路流进行画面对齐和音画同步,同时通过缓冲对抗网络抖动,以便混合成一路流以后能够达到良好的效果。

在混流的过程中,难点是如何对抗网络抖动等不确定因素。

2、不混流的优势和劣势

不混流的优势

延迟低:不用混流,节省了混流消耗的时间,显著地降低了延迟

成本低: 如果是在服务端进行混流,将会耗费计算资源。考虑到服务端计算资源比较昂贵,如果不用混流,将会节省宝贵的计算资源,显著地降低成本。虽然拉多流比起拉单流会消耗更多的带宽成本,但是拉多流节省计算资源成本,整体而言,成本是降低了。

灵活性:在观众端,业务侧可以比较灵活的操控多路流,来满足多样化的业务需求。比如画中画大小画面相互切换,和对半分屏画面左右调换等效果,来提高观众端的用户体验。

不混流的劣势

拉多流会消耗更多的带宽。多路流被从服务端推到CDN, 然后观众端从CDN拉多流,都会耗费比较多的带宽成本。对于带宽成本占了运营成本显著,的确是需要慎重考量的。

混流的优势

成本:可以分为计算资源成本和带宽成本。由于预先做混流,因此计算资源成本会上去,但是由于只拉单流,因此带宽成本会下来。

可录制:如果业务上有录制音视频流的需求,以备监管抽查或者观众回放的话,那么需要进行混流。如果不进行混流的话,录制的时候只能录制到其中一个路音视频流,也就是只能看到其中一个主播的画面。要录制全画面的话,必须要进行混流。

易传播:如果业务上有通过音视频流地址链接(HLS)进行转发传播的需求,那么也需要进行混流,因为地址链接只会指向一路音视频流。如果不混流,使用转发的地址链接就只会播放出一个主播的音视频流。

混流的劣势

高延迟:由于在做混流的过程中,需要做抖动缓冲和实时转码等计算处理,将会耗费时间,从而造成额外的延迟。

不灵活:由于观众端拉单流观看,多路音视频流已经被混合成单流,所以观众端无法再灵活地对多流进行操控,比如切换画中画的主次画面。

服务器计算成本高:由于混流需要额外的计算资源,这里会导致额外的运营成本。

3、连麦互动的直播方案

4、推流端混流的方案

  • 推流混流劣势服务端计算成本低服务端压力小
  • 劣势增加额外的延迟手机硬件配置的瓶颈上行网络带宽瓶颈推流端环境不可控难以扩展

5、服务端混流的方案

服务端混流的优势

低延迟

计算资源可控

网络带宽资源可控

可控可扩展

服务端混流的劣势

- 服务器计算成本高

- 服务端压力大

6、混流工具介绍

FFmpeg

Ffmpeg框架的基本组成包含AVFormat、AVCodec、AVFilter、AVDevice、AVUtil等模块库

AVFormat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能;音视频的格式解析协议

ACCodec:用于各种类型声音/图像编解码;该库是音视频编解码核心,实现了市面上可见的绝大部分解码器的功能,libavcodec 库被其他各大解码器ffdshow,Mplayer 等所包含或应用。

AVFilter:音视频滤波器的开发,如宽高比裁剪格式化非格式化伸缩

混流的逻辑

  • 混流命令
./ffmpeg -i “背景图” -i “rtmp://输入流1” -i “rtmp://输入流2” -filter_complex “nullsrc=size=1600x720 [base];[0:v] scale=1600x720 [main]; [1:v] crop=320:180:0:0 [photo1];[2:v] crop=320:180:0:0 [photo2];[base][main] overlay=x=0:y=0 [temp];[temp][photo1] overlay=x=1280:y=0 [temp1];[temp1][photo2] overlay=x=1280:y=180 [temp2]” -c:v libx264 -r 50 -bufsize 10M -f flv “rtmp://推流地址”
- -i:输入文件
- -filter_complex :滤镜
- nullsrc=size=1600x720 [base]:设置基础背景大小,并取别名base
- [0:v] scale=1600x720 [main]:设置第一个输入文件的大小,及背景图大小为1600*720,并取别名main- [1:v] crop=320:180:0:0 [photo1]:裁剪第二个文件大小,设置为320*180,并取别名photo1
- [2:v] crop=320:180:0:0 [photo2]:如上
- [base][main] overlay=x=0:y=0 [temp]:指定main在base的坐标,overlay距离左上角的坐标,并取别名temp
- [temp][photo1] overlay=x=1280:y=0 [temp1];[temp1][photo2] overlay=x=1280:y=180  :如上
- -r 帧率
- -bufsize 码率控制缓冲区大小
- -f flv 强迫采用格式flv
  • 录制命令
./ffmpeg -i rtmp://混流地址 test.mp4

粉丝福利, 免费领取C++音视频学习资料包+学习路线大纲、技术视频/代码,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/760250.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GDPU Java 天码行空4

文章目录 一、实验目的二、实验内容及要求三、实验内容及要求1. 设计AnimalTool工具类,实现eat()函数多态性💖 AnimalDemo.java🌸 运行结果 2. 是猫是狗💖 DuoTaiDemo5.java🌸 运行结果 3. 太会了💖 DuoTai…

国内IP地址切换排行榜软件大全

随着互联网的飞速发展,IP地址切换技术在日常工作和生活中扮演着越来越重要的角色。无论是为了网络安全、访问特定地区网站,还是进行市场调研、网络爬虫等,IP地址切换都成为了不可或缺的工具。虎观代理将为您介绍国内较受欢迎的IP地址切换软件…

B004-springcloud alibaba 服务容错 Sentinel

目录 高并发带来的问题服务雪崩效应常见容错方案常见的容错思路隔离超时限流熔断降级 常见的容错组件 Sentinel入门什么是Sentinel微服务项目集成Sentinel核心库安装Sentinel控制台实现一个接口的限流 Sentinel的概念和功能基本概念重要功能 Sentinel规则流控规则三种流控模式三…

深度学习——线性代数相关知识

线性代数基础知识 一、线性代数基础知识1、标量2、向量3、矩阵4、张量5、点积6、向量—矩阵积7、矩阵—矩阵乘法 二、小结 一、线性代数基础知识 本节将介绍简要地回顾一下部分基本线性代数内容,线性代数中的基本数学对象、算术和运算,并用数学符号和相…

基于SpringBoot的高校办公室行政事务管理系统

采用技术 基于SpringBoot的高校办公室行政事务管理系统的设计与实现~ 开发语言:Java 数据库:MySQL 技术:SpringBootMyBatis 工具:IDEA/Ecilpse、Navicat、Maven 页面展示效果 功能清单 教师信息管理 办公室管理 办公物资管…

软文营销应该怎么做?软文营销的关键

软文本营销不是一个简单的写作和发送文章的过程,而是一个从早期准备到软文本写作再到效果评估的综合运营管理过程。 步骤一:目标明确 目标是指目标用户,找出目标用户是什么样的群体,从而根据用户群体的画像进行软文准备。 步骤二…

3000+人使用,这套人力资源数据分析工具还能这么用

中国科学院自动化研究所(以下简称“自动化所”)成立于1956年,是中国科学院率先布局成立的“人工智能创新研究院”的总体牵头单位,是中国最早开展智能科学与技术基础理论、关键技术和创新性应用研究的科研机构,也是中国…

ADAS-AEB系统详解

ADAS-AEB系统详解 AEB即自动紧急制动(Automatic Emergency Braking),其通过雷达、摄像头共同监测前方车辆以及行人情况,若探测到潜在碰撞风险,系统将采取相应预警及制动措施,从而避免发生碰撞或减轻碰撞损…

加速量产化节奏!移远通信5G RedCap模组RG255C-CN顺利通过SRRC认证

近日,移远通信5G RedCap模组产品再传喜讯——RG255C-CN顺利通过SRRC(无线电型号核准)认证测试,成为领先行业的轻量化5G产品。 此前,该模组也已通过NAL(电信设备进网许可)、CCC(中国强…

DXP学习1-使用DXP软件创建工程并熟悉相关操作

目录 实验内容(任务) PCB项目文件及原理图文件的创建及保存: 熟悉窗口界面、主菜单、各工具栏及图纸参数的设置: 首先先通过"纸张选择"做如下修改 修改纸张大小👇 修改标题栏的格式👇 修改…

生命源集团2024全球品牌发布会成功举办

生命源集团2024全球品牌发布会圆满落幕 3月20日,生命源集团在杭州隆重举办了主题为“生命源启,荣耀之巅”的2024全球品牌发布会。 活动伊始,嘉宾们陆续签到入场,现场气氛热烈而庄重。随后,生命源集团十二大事业部总裁…

6.2 ServiceNow 自动化测试框架 (ATF)

6.2 自动化测试框架 ATF 目录一、自动化测试框架 (ATF) 简介1. Automated Test Framework(ATF)2. 使用自动化测试框架 (ATF)的好处: 二、 ATF的测试类型1. 功能业务逻辑测试2. 回归测试3. 浏览器兼容性测试4. 服务器端 Jasmine测试 三、 ATF测…

详解:创业老阳推荐的Temu蓝海项目还能赚钱吗?

在当前全球化的背景下,跨境电商行业日益繁荣,成为了许多创业者关注的焦点。其中,Temu项目凭借其独特的商业模式和强大的市场潜力,备受瞩目。尤其是当知名创业导师老阳推荐Temu项目时,更是激起了广大创业者的热情和好奇…

机器人路径规划:基于冠豪猪优化算法(Crested Porcupine Optimizer,CPO)的机器人路径规划(提供MATLAB代码)

一、机器人路径规划介绍 移动机器人(Mobile robot,MR)的路径规划是 移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或…

应急响应-Linux(1)

应急响应-Linux(1) 黑客的IP地址 思路: 一般系统中马之后会有进程连接黑客的主机,可以使用netstat -anpt查看下当前进程的连接,此处查看到没有后 ,可以从系统服务开始查找,系统的服务日志一般都会保存相关访问信息&…

SAP CAP篇十五:写个ERP的会计系统吧,Part II

本文目录 本系列文章目标开发步骤数据库表设计初始数据初始数据:AccountCategories初始数据:AccountUsages初始数据:ChartOfAccounts初始数据:AccountSubjects Service 定义生成Fiori AppApp运行 本系列文章 SAP CAP篇一: 快速创…

P8597 [蓝桥杯 2013 省 B] 翻硬币 Python

[蓝桥杯 2013 省 B] 翻硬币 题目背景 小明正在玩一个“翻硬币”的游戏。 题目描述 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零),比如可能情形是 **oo***oooo,如果…

【ppt技巧】PPT转换为图片,方法有哪些?

想要将ppt文件转换为图片,其实很简单,一起来看一下如何操作吧! 方法一: 使用格式转换器,有些文件格式转换器,支持ppt转换为图片。 方法二: 不需要转换器,直接在ppt中进行操作即可…

可观测性体系建设后,该如何挖掘数据及工具价值?

在现代企业的运维管理中,构建高效且可靠的可观测性体系是保障系统稳定性和业务连续性的关键。然而,运维团队成员的技术能力参差不齐往往成为实现这一目标的障碍。尤其在处理复杂系统故障时,高度依赖专业知识和经验的可观测性工具很难被全员有…

j-vxe-table设置

1.设置按键回车箭头tab健设置 :mouse-config"{selected: true}" :keyboard-config"{ isArrow: true, isEnter: true, isEdit: true,isTab:true}" 2 表格编辑设置 :edit-config"{trigger: this.triggerFlag, mode: row, showIcon: false , active…