ffmpeg代码实现流媒体推流(rtsp)

author author     2023-03-21     518

关键词:

参考技术A

最近需要做实时录屏并把视频推流到RTSP服务器,具体流程是抓取屏幕内容(bitmap),并把bitmap转化为YUV,接着把YUV编码成H264,再把H264码流推到RTSP服务器;把采集到的PCM编码为AAC,再把AAC推流至RTSP服务器。

看了雷神的一篇文章: 最简单的基于FFmpeg的推流器(以推送RTMP为例) ,他是把本地的视频文件推流至RTMP服务器,并不符合我的要求。
接着我找到另一篇文章: ffmpeg实现H264压缩并且推流至RTSP ,这篇文章只有图像编码,并没有音频编码,并且推流之后并没有播放成功。
我综合上面两位大佬的思路,和查找一些资料实现了这个功能。

RTSP服务器使用的是 HappyTime 的免费试用版本。

我抓到的bitmap是BGRA格式的,所以使用的图像格式是 AV_PIX_FMT_BGRA cropImage 是含有rgba图像的数组

调用:

由于我是实时抓取的屏幕, frame_yuv->pts 设为当前的时间戳,以保证能正常播放。

调用:

调用:
其中pcm_buff是包含pcm数据的数组

使用udp传输时传到1400多帧就断开链接了,原因不明,所以改用使用tcp协议传输

延迟有1.5秒左右

参考:
https://blog.csdn.net/leixiaohua1020/article/details/39803457
https://blog.csdn.net/yunge812/article/details/79345584
https://trac.ffmpeg.org/wiki

流媒体服务海康摄像头rtsp视频推流转码拉流直播综合应用:vlc+ffmpeg+nginx实现rtsp到rtmp网页直播(代码片段)

...综合直播应用,延迟5秒钟左右…一、前几章节回顾【流媒体服务】基础协议了解(一):【1】RTP/RTMP/RTSP等基础协议了解【流媒体服务】推流拉流体验(二):【1】使用VLC轻松体验本地视频推流、拉流... 查看详情

流媒体解码及h.264编码推流(代码片段)

简介相关理论程序流程Opencv解析视频流像素格式转换FFmpeg进行H.264编码FFmpeg进行格式封装和推流这里我们使用了FFmpge的sdk和Opencv的sdk。为了方便测试,我们直接使用在线的rtsp网络流。rtmp://live.hkstv.hk.lxdns.com/live/hks这个是香港... 查看详情

ffmpeg监控拉流,向流媒体服务器推流

解决用FFMPEG拉网络监控的RTSP流,然后再推到流媒体服务器,然后再通过流媒体服务器对外发布。拉流推流同时由MMPEG完成,网上的教程大部分都是通过OPENCV拉流,然后通过共享管道向FFMPEG推流。-i"rtsp://admin:12345... 查看详情

win10下用ffmpeg推流拉流(代码片段)

...中第一个“”代表摄像头的RTSP地址,第二个“”代表流媒体服务器地址,如果出现下图所示代表推流成功。   三.拉流打 查看详情

ffmpeg搭建一个简单的rtsp推流方案(代码片段)

文章目录ffmpeg搭建一个简单的rtsp推流方案基础环境要求开始demoffmpeg搭建一个简单的rtsp推流方案基础环境要求ffmpegffplay/VLCrtsp服务器开始首先我们必须要安装好ffmpeg,不管是源码编译还是直接安装网上都有很多教程,这里不多展开.... 查看详情

如何通过python实现h.264视频推流与接收(代码片段)

...SP推流2.3.2简单的UDP推流2.3.3简单的RTSP流接收3.网络上基于FFmpeg的视频推流 3.1FFmpeg安装3.2FFmpeg的基本指令3.3基于FFmpeg的RTSP推流3.3.1基于管道的本地推流3.3.2基于FFmpeg的网络推流示例4.实例与验证4.1基于GStreamer的推流实现4.2基于FFmpeg... 查看详情

javacv开发详解之rtsp推流实战:rtsp转推到rtsp(代码片段)

...是那句话,Nocodenobb!废话少谈,直接上代码。参考资料ffmpeg官方rtsp封装格式说明:https://ffmpeg.org/ffmpeg-protocols.html#rtsp开始前的准备工作1、依赖项使用maven添加依赖 查看详情

javacv音视频开发宝典:rtsp拉流转码方式转推到rtmp

...rtmp协议相信大家都不陌生了,rtmp协议是Adobe公司制定的流媒体协议。rtmp推流可以说是直播行业最常用的推流方式,没有之二。但是由于rtmp规范已经不在维护了,不支持h265编码,更不用说goole出品的vp8、vp9和av1了。好了,还是那... 查看详情

ffmpeg推流相关指令

1.rtsp->rtsp(只解封装,不解码)ffmpeg-re-rtsp_transporttcp-irtsp://usr:[email protected]:port/h264/ch1/sub/av_stream-acodeccopy-vcodeccopy-frtsprtsp://ip:port/name2.rtsp->rtmp(只解封装,不解码)ffmpeg-re-rts 查看详情

ffmpeg音视频开发:发布rtsp流(采用easydarwin作为流媒体服务器)(代码片段)

...n拥有完整的源代码,可以帮助开发者更快更简单实现流媒体音视频产品功能,使用完全免费;下面就介绍一下EasyDarwin的使用过程。官网地址: EasyDarwin开源流媒体服务器OpenSourceStreamingServer如果官 查看详情

ffmpeg安装

2020-07-04目的 搭一个ffmpeg+nginx服务器实现实时推流 参考:https://blog.csdn.net/baidu_38172402/article/details/80794484手把手教你搭建Nginx-rtmp流媒体服务器+使用ffmpeg推流  查看详情

c#使用ffmpeg推流,并且获取流保存在本地,随时取媒体进行播放!

...一点成果,这边做个笔记;本文着重在于讲解下如何使用ffmpeg进行简单的推流,看似简单几行代码没有官方的文档很吃力。并获取流的源代码:如下→#regionRTMP推流(**已成功推流至服务器**)Network.Create().WithSource(inputPath)//inputPath可... 查看详情

利用ffmpeg推流到rtsp,再利用jmpeg在html界面上显示的解决办法(代码片段)

目录需求在python代码里推流到rtsphtml里播放rtsp视频流需求最近在百度飞桨上训练了一个摔倒识别的模型,用的PaddleDetection这个模型,训练好以后我部署到了Windows,但是我看大多数人都是部署到了Linux,具体方法大家可以自行百度... 查看详情

javacv开发详解之rtp推流实战:rtsp转推到rtp(代码片段)

...。Nocodenobb!废话少谈,让我们直接上代码吧。参考资料ffmpeg官方rtp封装格式说明:https://ffmpeg.org/ffmpeg-protocols.html#rtp开始前的准备工作1、依赖项使用maven添加依赖 查看详情

javacv开发详解之10:基于dshow调用windows摄像头视频和音频,想要获取屏幕画面首选gdigrab

...频javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)javaCV开发详解之... 查看详情

c#ffmpeg推流vlc.dotnet拉流优化参数(代码片段)

FFmpeg是流媒体开源神器,视频转换、剪裁包括推流,无所不能,很多系统都是基于其开发的。拉流可以用FFplay,但是不利于集成到自己的代码中,因此拉流选择了Vlc.DotNet。在使用中,仅使用默认参数,... 查看详情

android平台ffmpeg实现rtmp推流-c++的实现

...tmp推流到服务器上,相机采集视频将在下一篇文章分享。流媒体服务器使用nginx-rtmp-module来进行搭建。本文所使用FFmpeg的版本是4.1,关于FFmpeg编译成Android平台so库如果有需要,我将在下一篇文章分享说明。视频编码比较耗cpu,上... 查看详情

python通过ffmpeg实现实时推流(ubuntu20.04+ffmpeg+nginx)(代码片段)

...的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信,属于应用层。1.3OBS-studio简介OpenBroadcasterSoftware是一个免费的开源的视频录制和视频实时流软件。其有多种功能并广泛使... 查看详情