腾讯会议obs推流教程_流式编程 前端

腾讯会议obs推流教程_流式编程 前端 **RTSP视频流开发**RTSP视频开发:1.使用VLC播放RTSP视频流,然后使用wireshark抓VLC的包,找到RTSP交互报文2.报文如下: OPTIONSrtsp://192.168.0.212:554/testStreamRTSP/1.0//客户端向服务器发送,说RTSP服务你又那些操作 CSeq:2 User-Age…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

					            	**RTSP视频流开发**

RTSP视频开发:
1.使用VLC播放RTSP视频流,然后使用wireshark抓VLC的包,找到RTSP交互报文
2.报文如下:

	OPTIONS rtsp://192.168.0.212:554/testStream RTSP/1.0    //客户端向服务器发送,说RTSP服务你又那些操作
	CSeq: 2
	User-Agent: LibVLC/3.0.4 (LIVE555 Streaming Media v2016.11.28)
	
	RTSP/1.0 200 OK         //RTSP服务器响应客户端
	CSeq: 2
	Date: Tue, Sep 01 2009 00:01:34 GMT
	Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER  //RTSP响应客户端  说我这些操作
	
	DESCRIBE rtsp://192.168.0.212:554/testStream RTSP/1.0      //客户端向服务器端发送DESCRIBE,用于得到URI所指定的媒体描述信息,一般是SDP信息。客户端通过Accept头指定客户端可以接受的媒体述信息类型。
	CSeq: 3
	User-Agent: LibVLC/3.0.4 (LIVE555 Streaming Media v2016.11.28)
	Accept: application/sdp
	
	RTSP/1.0 200 OK    //服务器响应
	CSeq: 3
	Date: Tue, Sep 01 2009 00:01:36 GMT
	Content-Base: rtsp://192.168.0.212/testStream/
	Content-Type: application/sdp
	Content-Length: 495
	//媒体播放的信息
	v=0
	o=- 1251763203553668 1 IN IP4 192.168.0.212
	s=Session streamed by "testOnDemandRTSPServer"
	i=testStream
	t=0 0
	a=tool:LIVE555 Streaming Media v2016.11.28
	a=type:broadcast
	a=control:*
	a=range:npt=0-
	a=x-qt-text-nam:Session streamed by "testOnDemandRTSPServer"
	a=x-qt-text-inf:testStream
	m=video 0 RTP/AVP 96   
	c=IN IP4 0.0.0.0
	b=AS:500
	a=rtpmap:96 H264/90000  //采用视频采用H264格式
	a=fmtp:96 packetization-mode=1;profile-level-id=640028;sprop-parameter-sets=Z2QAKKzoB4AiflQ=,aO48MA==  //这个是音频 音频格式是AAC 
	a=control:track1
	SETUP rtsp://192.168.0.212/testStream/track1 RTSP/1.0   //建议视频流
	CSeq: 4
	User-Agent: LibVLC/3.0.4 (LIVE555 Streaming Media v2016.11.28)
	Transport: RTP/AVP;unicast;client_port=49474-49475
	
	RTSP/1.0 200 OK
	CSeq: 4
	Date: Tue, Sep 01 2009 00:01:36 GMT
	Transport: RTP/AVP;unicast;destination=192.168.0.15;source=192.168.0.212;client_port=49474-49475;server_port=6970-6971
	Session: FA18BF48;timeout=65
	
	PLAY rtsp://192.168.0.212/testStream/ RTSP/1.0      //双方达成一致,开始播放视频
	CSeq: 5
	User-Agent: LibVLC/3.0.4 (LIVE555 Streaming Media v2016.11.28)
	Session: FA18BF48
	Range: npt=0.000-
	
	RTSP/1.0 200 OK
	CSeq: 5
	Date: Tue, Sep 01 2009 00:01:36 GMT
	Range: npt=0.000-
	Session: FA18BF48
	RTP-Info: url=rtsp://192.168.0.212/testStream/track1;seq=6674;rtptime=191607758

3.使用tcpdump这个抓包工具,在设备进行抓包,然后将抓的报文和PC机使用wireshark抓包进行对比,格式那个地方不对,就找花时间找问题所在,让你的设备的RTSP交互报文和PC机上抓包的RTSP交互报文格式一致.当时我遇到的问题是因为音频而导致的,我在大华球机上,不带音频的信息,我写好RTSP视频信息时,很高兴,然后向领导交叉,我的公司的设备播放客户的RTSP视频流时出现了问题,客户的视频带音频.然后我使用VLC播放客户的RTSP视频流,抓包,发现, 客户有两次SETUP 第一次时间里视频套截字建立,第二次是音频套接字建立.就是因为这个导致报文格式不一样.(对于H264结构不懂,可以看看这个http://www.iosxxx.com/blog/2017-08-09-%E4%BB%8E%E9%9B%B6%E4%BA%86%E8%A7%A3H264%E7%BB%93%E6%9E%84.html)

4.报文格式一样是,视频还播放不出来,当时我就纳闷,到底是为什么呢?只有一个办法就是抓包.获取到的视频数据,然后看看我拼帧是否拼对了,一看,my god.我的神啊,这是和我看开玩笑吗,我对视频帧处理,和抓包获取的视频帧完全牛头不对马嘴.然后我根据用户采用RTP对H264视频进行打包方式,进行拼帧,这个做完之后,发现视频卡顿,根据序列号进行判断是否设备丢包了,同时在设备进行抓包,比较,发现抓包的视频数据是连续的,然而设备却显示是丢包,这是为啥.我想了很久也是没有想明白这是为什么,当时想出现丢包,我就叫把视频给丢掉,然后等I帧来,才开始接受数据.后来我看一个大牛博客,上面说,因为延时设备没有收到包,你取数据时,没有取到,这个就造成丢包,然而设备还是接受到了.最后我把调用延时改小一点,视频问题解决了.

5.处理AAC音频,我做的很简单,将AAC数据给取出来,加上我公司的对AAC音频头.就这样RTSP视频流协议就做好了(AAC音频可以看这个博客https://blog.csdn.net/bsplover/article/details/7426476)

总结:
1.保持一颗乐观的心态.
2.找问题不能模糊化,要做到精确定位.
3.代码规范.写代码时多思考

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180845.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C# Grid StackPanel DockPanel WrapPanel

    C# Grid StackPanel DockPanel WrapPanelWPF面板布局介绍Grid、StackPanel、DockPanel、WrapPanel回顾       上一篇,我们介绍了基本控件及控件的重要属性和用法,我们本篇详细介绍WPF中的几种布局容器及每种布局容器的使用场景,当然这些都是本人在实际项目中的使用经验,可能还存在错误之处,还请大家指出。本文大纲1、Grid2、StackPanel3、DockPanel…

    2022年7月23日
    6
  • 云原生数据仓库AnalyticDB MySQL版_cloudbase

    云原生数据仓库AnalyticDB MySQL版_cloudbase北京时间2020/5/4青年节,TPC(全球最知名非盈利的数据管理系统评测基准标准化组织)官网正式上线AnalyticDBTPC-DS成绩,AnalyticDB通过严苛的TPC-DS全流程测试,性能QphDS分数为14895566,性价比分数为0.08CNY,相比较基于Spark深度优化版的前世界纪录性能提升29%并且单位成本仅为其1/3,成为TPC-DS官方榜单上全球性能、性价比双双领先的数据仓库,这是继2019/4/26之后再次获得全球领先的成绩!榜单截图如下,详细榜单请参见:TPC-DSRes

    2022年9月15日
    0
  • 前端技术栈总结_前端开发技术栈

    前端技术栈总结_前端开发技术栈vuereact

    2022年10月25日
    0
  • ssm管理系统课题_p2实验室

    ssm管理系统课题_p2实验室开发目的方便高效地实验室设备统一管理,除了实现基本的增删改查,还提供借用、归还、购买和问题反馈功能,可实现对实验室设备的基本业务的处理本项目由本人负责开发完成,项目能保证正常运行,当然其中不免也会有缺漏或不完善的地方解决方案1.后端Java框架使用spring+springmvc+mybatisspring功能是实现参数参数注入,请求分发处理,对数据库操作进行事务控制,其中mybatis使用注解查询,整体上大部分使用xml配置,少部分使用注解2.前端使用HTML+javascript+css+j

    2022年10月13日
    0
  • hdfs命令大全_hdfs创建文件夹命令

    hdfs命令大全_hdfs创建文件夹命令hdfs常用命令:第一部分:hdfs文件系统命令第一类:文件路径增删改查系列:hdfsdfs-mkdirdir创建文件夹hdfsdfs-rmrdir删除文件夹dirhdfsdfs-ls查看目录文件信息hdfsdfs-lsr递归查看文件目录信息hdfsdfs-statpath返回指定路径的信息第二类:空间大小查看系列命令:hdfsdfs-du-h…

    2022年10月4日
    0
  • shiro面试必问_面试过程中的问题与对策

    shiro面试必问_面试过程中的问题与对策一,什么是Shiro?Shiro是apache旗下一个开源安全框架,它将软件的安全认证相关的功能抽取出来,实现用户身份授权,加密,会话管理等功能,组成了一个通用的安全认证框架二,目前市场主流的安全框架有哪些?(1),shiro:轻量级的,使用方便,灵活,是apache旗下一个开源安全框架,适合任何框架(2),SpringSeurity:是spring家族的一部分很多项目会使用到Spring全家桶,相对shiro来说SpringSeurity更轻量,必须要求spring环境,相对shiro

    2022年10月10日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号