通过 ffmpeg 串流对接 OBS 等直播软件

news2024/11/24 13:09:55

我们要将设备通过私有通道输出到 H264 流,传给 OBS 等直播软件使用。为此,设计了上图所示的串流工具。

设计思路

私有通道通过 API 接口提供 H264 流,要传给 ffmpeg ,最简单的方法是通过进程间管道传输数据。这里 Dump 工具直接输出一帧帧符合 H264 ES(Annex B)格式的数据。

然后 ffmpeg 要输出标准协议的视频流给 OBS,最简单的协议是 RTP 组播,这样不需要安排服务器。比如 RTSP、RTMP 都需要配置 ffserver ,增加了系统的复杂性。用流文件格式,比如 FLV、TS,也需要 HTTP 服务器。

串流的工作(从裸的 H264 转换为 RTP/UDP)就交给 ffmpeg 完成了。下面来看看如何配置 ffmpeg。

串流配置

-fflags nobuffer

不缓冲数据减少延迟

-flags low_delay

低延迟编码减少延迟

-analyzeduration 10

分析输入最大时长减少延迟

-probesize 3200

分析输入最大字节减少延迟

-f h264

输入格式h264 裸流

-i pipe:

输入源从管道输入

-vcodec copy

视频格式仅拷贝输入,不转换格式

-f rtp

输出格式RTP 协议封装
rtp://127.0.0.1:1234输出目标本地 udp 1234 端口

RTP 协议一般使用组播地址(224.0.2.0~238.255.255.255),但是我们的串流使用本地回环地址(127.0.0.1)单播就足够了,只有同一个设备的程序能够收到RTP数据。

ffmpeg 正常启动 RTP 串流后,会输出串流 RTP 的描述信息(称为 SDP),比如:

v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 127.0.0.1
t=0 0
a=tool:libavformat LIBAVFORMAT_VERSION
m=video 1234 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z0LAH42NUCSC2TZAAAADAEAAAA8jwiEagA==,aM4xsgA=; profile-level-id=42C01F

将这段信息保存到一个 sdp 文件中 (如:ffmpeg.sdp ),以备后用。

OBS 配置

在 OBS 中使用 RTP 流有两种方式:使用 VLC 视频源,使用媒体视频源。

VLC 视频源

使用 VLC 视频源需要先安装 VLC(Video Lan) 软件。另外,这种方式只在 OBS Windows 版本中支持。

媒体视频源

使用媒体视频源,本质上就是使用 OBS 内部集成的 ffmpeg 解码,因此 ffmpeg 支持的视频流,都能够用作 OBS 的视频源。

添加“媒体视频源”:

配置“媒体视频源”:

  • 取消选择“本地文件”
  • 输入 sdp URL(file:C:/ffmpeg.sdp)
  • 输入 ffmpeg 选项:“protocol_whitelist=file,udp,rtp”(ffmpeg 默认不支持 file sdp,需要通过选项参数打开)

配置完成后,稍等一会儿就可以看到视频内容了。 

 

 

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

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

相关文章

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java美丽华驾校信息管理系统t93d7

毕业设计也不需要做多高端的程序,毕业设计对于大多数同学来说,为什么感觉到难,最重要的一个原因,那就是理论课到实践课的转变,很多人一下不适应,本能开始拒绝,如果是一个考试,大家都…

使用自定义函数实现数据编解码、格式处理与业务告警

背景 在物联网平台的设备数据接入场景中,开发者总是希望平台接入的设备数据格式标准统一,以便对数据进行统一处理。在实际情况中,由于业务需要,平台常常会面对不同类型、不同厂商的设备接入。即使设备接入协议已经统一使用 MQTT …

傻白探索Chiplet,Chiplet技术带来的“新四化”(三)

目录 一、IP芯片化 二、异质集成(HeteroMaterial Integration) 三、异构集成(HeteroStructure Integration) 四、IO增量化 五、总结 一、IP芯片化 IP(Intelligent Property)是具有知识产权核的集成电…

腾讯前端常考vue面试题(必备)

虚拟DOM的优劣如何? 优点: 保证性能下限: 虚拟DOM可以经过diff找出最小差异,然后批量进行patch,这种操作虽然比不上手动优化,但是比起粗暴的DOM操作性能要好很多,因此虚拟DOM可以保证性能下限无需手动操作DOM: 虚拟DOM的diff和patch都是在一次更新中自动进行的,我们无需手动…

driftingblues2靶机(nmap提权)

环境准备 靶机链接:百度网盘 请输入提取码 提取码:9qkq 虚拟机网络链接模式:桥接模式 攻击机系统:kali linux 2021.1 信息收集 1.探测目标靶机 2.探测目标靶机开放端口和服务 3.用dirsearch扫描目录 dirsearch -u 192.168.…

π120E31兼容Si8620EC-B-IS 双通道数字隔离器

π120E31兼容Si8620EC-B-IS 双通道数字隔离器。具有出色的性能特征和可靠性,整体性能优于光耦和基于其他原理的数字隔离器产品。 传输通道间彼此独立,可实现多种传输方向的配置,可实现3.0kVrms隔离耐压等级和 DC 到 600Mbps 信号传输。该系列…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java校园兼职招聘系统x6u36

毕业设计说实话没有想象当中的那么难,导师也不会说刻意就让你毕设不通过,不让你毕业啥的,你只要不是太过于离谱的,都能通过的。首先你得要对你在大学期间所学到的哪方面比较熟悉,语言比如JAVA、PHP等这些,数…

腾讯会议一直显示正在加入会议如何处理?

我们在使用腾讯会议时,一直显示正在加入会议,但是经过很长时间也没有反应,这该怎么办?下面小编就给大家带来了相关的解决办法,说不定有用。 腾讯会议一直显示正在加入会议怎么办? 1、手机上打开腾讯会议。 …

交易所步入「后FTX 时代」,WEEX唯客等后发新秀拉开补位战?

太阳底下没有新鲜事,11月上旬 FTX此轮的骤然崩溃,再次证明了加密行业没有「大而不能倒」的神话,也在一定程度上引爆了加密行业的信任危机与流动性困境。 但把盖子掀开、暴露出里面的风险,未尝不是一件好事——缺乏风控合规的中心…

【剧前爆米花--爪哇岛寻宝】面向对象的三大特性——封装、继承以及多态的详细剖析(下——封装)。

作者:困了电视剧 专栏:《JavaSE语法与底层详解》 文章分布:这是一篇关于Java面向对象三大特性——封装的文章,在本篇文章中我会分享封装的一些基础概念以及实现。 目录 封装定义和优点 访问限定符实现封装 private限定符 priv…

深度学习-LeNet(第一个卷积神经网络)

文章目录简介数据集模型搭建模型训练模型测试前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 LeNet模型是在1998年提出的一种图像分类模型,应用于支票或邮件编码上的手写…

双模蓝牙MIDI模块BT401的功能简单描述和蓝牙MIDI协议

目录 一、蓝牙MIDI概念和功能简述 蓝牙MIDI,实际上是由苹果公司推广并且应用的,目的是借助于低功耗蓝牙来实现 主机和设备之间的无线连接 。协议的标准也是苹果定的。目前也充分的应用到安卓平台了 二、详细记录--功能说明 2.1 蓝牙MIDI的测试说明--m…

【笔记】计算机组成原理复习重点——篇三

计算机组成原理复习重点笔记 第二篇 计算机系统的硬件结构 第3章 系统总线第4章 存储器第5章 输入输出系统 第3章 系统总线 3.1 总线的基本概念 一、为什么要用总线 计算机的各个系统功能部件连在一起才能协同工作,部件之间不可能采用全互联形式&…

MATLB|基于复杂网络的配电系统微电网优化配置

目录 一、概述 二、系统研究 三、复杂网络框架 四、结果与讨论 五、Matlab代码实现 一、概述 多年来,各个领域的科学家开发了一套广泛的工具:数学、计算和统计,旨在分析、建模和理解网络。网络研究的基础可以追溯到图论的发展&#xff0…

第三方软件测试机构如何选择?

什么是软件产品检测报告? 软件测试机构根据委托方提供的测试需求,对软件进行功能性的检测,保证软件功能能正常运行。 软件产品登记测试也是申请软件产品登记的必要条件,对于买方来说,通过第三方检测机构出具的测试报告…

yolov5修改骨干网络-使用自己搭建的网络-以efficientnetv2为例

yolov5修改骨干网络–原网络说明 yolov5修改骨干网络-使用pytorch自带的网络-以Mobilenet和efficientnet为例 yolov5修改骨干网络-使用自己搭建的网络-以efficientnetv2为例 增加网络的深度depth能够得到更加丰富、复杂的特征并且能够很好的应用到其它任务中。但网络的深度过深…

全面适配 Android12

本文目录 背景技术分析实战总结与展望 背景 2021 年 10 月 5 日 Google 发布 Android12 操作系统,安全性和隐私性大幅提升,各手机厂家陆续更新 Android12 操作系统。 2022 年随着各大 APP 应用市场推动 Android12 适配工作,开发者积极响应…

应用性能监控管理工具

应用程序性能监控 Application Manager 的应用程序性能监控(APM Insight) 使应用程序开发人员和 DevOps 工程师能够了解应用程序性能,并帮助他们在问题影响最终用户之前对其进行故障排除。在应用程序性能问题影响收入之前监控、查明并解决它…

计算机毕设Python+Vue校园社团管理系统(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

PiL测试实战(下)| PiL阶段的闭环测试

前言 上篇我们介绍了单元级软件的PiL测试,对于集成级的PiL测试,其流程和单元阶段基本一致。然而,对于一些带有反馈控制逻辑的集成测试(如电机控制器MCU),PiL阶段会将控制算法(Controller Model…