首页 网站首页 商业信息 推流 查看内容

详解RTSP推流实战(1)

共生网络 2022-10-16 22:21 8122人围观 推流

0.引言

本篇文章首要讲授RTSP推流实战,整体推流流程与RTMP推流流程类似。假如对于RTSP协议不领会,还可以参考前面的文章。文章参考列表以下:

RTSP协议交互流程之推流分析

手把手搭建RTSP流媒体办事器

具体剖析RTSP框架和数据包分析(1)

RTSP协议交互流程之拉流分析

流媒体推拉流实战之RTMP协议分析(BAT口试官保举)

超具体RTMP协议详解(资深流媒体架构师保举)

音频编码实战(1)

聊聊视频直播提早的几点优化

流媒体之推流拉流实战之关键点优化分析(2)

详解RTSP推流实战(1)


1.项目情况预备和演示

先预备好情况,预备好YUV文件和PCM文件。

履行以下号令:

(1)从文件提取pcm数据

ffmpeg -i a.mp3 -ar 48000 -ac 2 -f s16le 48000_2_s16le.pcm

(2)从文件提取yuv数据

ffmpeg -i b.mp4 -an -c:v rawvideo -pix_fmt yuv420p 720x480_25fps_420p.yuv

(3)将文件拷贝到以下目录:

详解RTSP推流实战(1)


(4)办事器利用EasyDarwin,仅仅当做测试利用。办事器上推流的打印,推流的进程描写。

详解RTSP推流实战(1)


(5)ffplay拉流测试号令:

ffplay -i rtsp://192.168.129.48/live/livestream

当地预览与拉流显现对照。

详解RTSP推流实战(1)


2.整体框架分析

音视频收集模块,经过收集后稀有据就利用回调函数去挪用音视频编码模块,音视频编码后首先就要放到行列,可以放到同一个行列或分歧的行列。rtsp推流模块从行列里面去取数据。其框图和数据结构以下:

详解RTSP推流实战(1)


AudioCapture---->PcmCallback----->AACEncoder

------->post到行列------->RTSP_Pusher

VideoCapture----->YuvCallback------->H264Encoder

3.音视频收集

音视频收集都是自力的线程。CommonLooper实现一个线程的Looper。AudioCaptuer和VideoCapturer城市去继续CommonLooper。

(1).模拟的收集,是实时,依照播放速度去读取yuv/pcm数据。

(2).每帧数据都需要打上时候戳。重新封装了一个类,专门去打时候戳。

PushWork是一个开放个用户的类,由用户去设备参数等操纵。参数类,利用key-value的方式去做。

详解RTSP推流实战(1)


详解RTSP推流实战(1)


(3)读取pcm数据,音频收集完数据后,经过回调函数callback_get_pcm_(pcm_buf_, nb_samples *4)发送进来。以下代码:

详解RTSP推流实战(1)


4.重采样

假如麦克风收集的声音的输出格式和编码音频的输入参数纷歧致(音频解码和音频播放纷歧致,也需要做重采样),那就需要做重采样。

详解RTSP推流实战(1)


(1)音频编码参数设备,以下代码:

详解RTSP推流实战(1)


详解RTSP推流实战(1)


(2)视频参数设备,以下代码:

详解RTSP推流实战(1)


(3)初始化视频编码器参数设备,以下代码:

详解RTSP推流实战(1)


这里的rtsp_debug设备为1,暗示可以开启预览。
properties.SetProperty("rtsp_debug", 1)

(4)利用SDL开启预览,以下代码:

详解RTSP推流实战(1)


(5)读取用户设备的音视频参数,以下代码:

详解RTSP推流实战(1)


5.视频编码类H264Encoder

假如视频间隔不均匀,波动比力大,这里就做了一个帧间隔的校正算法,让帧间隔均匀。

详解RTSP推流实战(1)


(1)启动rtsp推流模块,并做初始化,以下代码:

详解RTSP推流实战(1)


(2)rtsp推流的时辰,需要设备对应的音视频编码参数。以下:

详解RTSP推流实战(1)


为了避免毗连时梗塞,开启毗连超机会制。假如办事器卡死或断开,这个时辰推流模块去毗连就会堵住。所以要利用超时断开重连机制。

详解RTSP推流实战(1)


详解RTSP推流实战(1)


留意:在前面专门讲优化的文章分析过,为了节省时候,在初始化顺序,一定是首先初始化推流模块开启收集毗连,由于收集比力比力耗时,能够会致使数据帧的缓存。具体缘由可以看看前面讲优化的文章。音视频的捕捉是放在最初面。以下顺序:

详解RTSP推流实战(1)


(3)设备和开启音频捕捉,并设备回调,把捕捉的数据发送给音频编码器。以下图:

详解RTSP推流实战(1)


(4)在音频收集的回调函数中开启开启编码。以下代码:

详解RTSP推流实战(1)


详解RTSP推流实战(1)


留意:ffmpeg 内置的aac编码器,需要的格式都是float的 planar的格式。

(5)设备和开启视频捕捉,并设备回调,把捕捉的数据发送给视频编码器。以下代码:

详解RTSP推流实战(1)


(6)在视频收集的回调函数中开启开启编码。以下代码:

详解RTSP推流实战(1)


留意:音视频收集返来就一定要去读取时候戳。

(7)编码后的音视频放到同一个行列,需要标志是音频包还是视频包。以下:

这里的推流模块rtsp_pusher,就会开一个线程,循环去推送。

详解RTSP推流实战(1)


(8)挪用RTSPPusher::sendPacket(AVPacket *packet, RTSPMediaType_T mediatype)去发送数据。以下:

详解RTSP推流实战(1)


(9)封闭推流的流程,一般都是与初始化相反。封闭流程以下:

音频的capture->音频reseample->音频encoder->音频pusher。

视频的capture->视频reseample->视频encoder->视频pusher。

详解RTSP推流实战(1)


6.总结

本篇文章首要讲授了RTSP推流的首要流程和重要源码实战分析,了解完后,可以有一个整体分析。接待关注,收藏,转发,分享。

前期关于项目常识,也会更新在微信公众号“记录天下 from antonio”,接待关注

高端人脉微信群

高端人脉微信群

人脉=钱脉,我们相信天下没有聚不拢的人脉,扫码进群找到你所需的人脉,对接你所需的资源。

商业合作微信

商业合作微信

本站创始人微信,13年互联网营销经验,擅长引流裂变、商业模式、私域流量,高端人脉资源丰富。

精彩点评

查看全部评论>>

相关推荐

详解RTSP推流实战(1)

详解RTSP推流实战(1)

0.引言本篇文章主要讲解RTSP推流实战,整体推流流程与RTMP推流流程类似。如果对于RTSP

视频号推流直播是什么?怎么玩?(附最全操作流程!)

视频号推流直播是什么?怎么玩?(附最全操作流程!)

随着视频号直播的不断完善,美颜、抽奖、推流直播等功能纷纷上线,【附近的直播和人】

抖音直播间推流机制是什么?怎么做能让直播间一直有流量 ... ...

抖音直播间推流机制是什么?怎么做能让直播间一直有流量 ... ...

很多人直播间没有人,就是因为搞不懂抖音直播间推流机制。不明白推流机制就找不到正确

python利用ffmpeg进行rtmp推流直播

python利用ffmpeg进行rtmp推流直播

思路:opencv读取视频 — 将视频分割为帧 — 将每一帧进行需求加工后 — 将此帧写入pi

OBS推流如何实现多平台推流

OBS推流如何实现多平台推流

500强直播策划,策划过多起直播。经常会遇到需要全平台推流的情况,但是OBS的原生软件

这篇微头条是3个月前写的,最近几天被再次推流,它有何特别之处

这篇微头条是3个月前写的,最近几天被再次推流,它有何特别之处

#头条文章养成计划#根据我400多天创作的亲身体验,文章推荐的时间比较长,而微头条的

头条的推流机制,原来是这样的

头条的推流机制,原来是这样的

#头条创作挑战赛#头条推流的机制是怎样的?在头条写作了31天,小编一直被这个问题困扰

在电脑上使用OBS在各大平台 直播 推流的方法

在电脑上使用OBS在各大平台 直播 推流的方法

Open Broadcaster Software(简称 OBS)是一款好用的第三方开源程序直播流媒体内容制

视频和视频帧:ffmpeg的RTMP推流

视频和视频帧:ffmpeg的RTMP推流

写在前面本文将介绍以下内容:什么是推流?将介绍推流常见的协议RTMP,HLS等。怎么用f

西瓜媒体直播教程:30秒学会推流直播

西瓜媒体直播教程:30秒学会推流直播

头条直播换到西瓜后台啦! 推流还是一样方便快捷! 功能更多更

视频号如何推流直播?推流直播详细教程

视频号如何推流直播?推流直播详细教程

​最近有很多同学问我视频号推流直播怎么做,这种三两句话回答不清楚,今天特意写了详

推流与拉流简概

推流与拉流简概

推流:将直播内容推送至服务器的过程拉流:为服务器已有直播内容,用指定地址进行拉取

一篇文章突然停止推流,我只做了2件事,结果收益200元

一篇文章突然停止推流,我只做了2件事,结果收益200元

我是依伊,一个全职写作的创作人,点击右上角关注,为你分享【新媒体写作变现】和【个

OBS直播多平台同时推流解决方法,简单粗暴

OBS直播多平台同时推流解决方法,简单粗暴

用OBS作为电脑直播推流,是很多人使用的一款开源软件。我们使用OBS时,它默认的是只能

3分钟带你了解抖音推流机制!

3分钟带你了解抖音推流机制!

你是否也遇到过辛辛苦苦拍了视频,但结果却还不如跳舞的小姐姐?为什么别人随便拍的视

千万级直播运营必须掌握的OBS推流直播技能

千万级直播运营必须掌握的OBS推流直播技能

专业直播操盘手必须掌握的OBS推流直播技能私域直播母東東,业绩增长分分钟Hello,各位

如何获取抖音直播的推流地址?

如何获取抖音直播的推流地址?

想在直播间中直播游戏,那就需要用到2个东西,分别是推流码和obs软件。那抖音直播推流

视频号问题系列(一):视频号如何开通推流直播

视频号问题系列(一):视频号如何开通推流直播

缘起: 最近工作比较忙、文章也没怎么更新,不过最近 一段时间过来问我视频号问题的朋

玩转直播,直播推流软件你选对了吗?

玩转直播,直播推流软件你选对了吗?

随着近几年互联网技术高速发展,人们对社交形式多样化的需求不断增加,从一开始的文字

直播推流和拉流方法-VLC 播放器专题

直播推流和拉流方法-VLC 播放器专题

直播目前处于一个风口期,很多直播开始跨平台跨地域直播,如何实现异地直播,跨平台直

商业洽谈 文章投递 寻求报道
电话咨询: 15924191378
关注微信