- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
花屏和丢帧问题解决思路
IP摄像头播放
Uestc Computer
当前版本 V 密级 文档编号 总页数 正文页数 附录页数 编制人 评审人 鲁晓军 批准人 编制日期 评审日期 批准日期
修改履历
序号 状态 版本 修改内容 修改位置 修改人
日期 评审人
日期 批准人
日期 1 1.0 全文完成 张占忠 2015/06/27 2 3 4 5 6 7 评阅意见 状态:C—创建文档,A—增加内容,M—修改内容,D—删除内容BufQue[head] = numcount 0xff;//FirstBit;
head = (head+1)%BUF_SZIE;
BufQue[head] = (numcount8) 0xff;//SecondBit;
head = (head+1)%BUF_SZIE;
BufQue[head] =(numcount16) 0xff;
head = (head+1)%BUF_SZIE;
BufQue[head] = (numcount24) 0xff;
head = (head+1)%BUF_SZIE;
BUF_SZIE为缓冲区的大小。切记:由于缓冲区为循环队列,因此必须有求余操作。
检查缓冲区代码是否正确与是否丢帧的思路:
缓冲区代码写好以后并不能立即确定缓冲区代码是否正确,并且由于是一帧帧的得到数据,用单步调试太过复杂繁琐并且一不错就得重新调试,并且由于码流在不停发送并不能确定是否丢帧。解决办法就是将调试信息写到文件中去。
解决思路:
First :发送端发送数据是发送一个时间戳,也就是帧发送的顺序。接受端接受到的数据也有一个时间戳,如果接收端接收到的时间戳不连续,即是丢帧。
Second:接收端接受到数据以后在将数据写入缓冲区以前将H264码流保存到文件中设该文件为RecH264.h264.
Third :将从缓冲区里面读出来的数据也保存到文件中。设该文件为DecBuf.h264
Forth:用VLC播放器播放RecH264.h264.,如果没有花屏则证明接收到的数据无误。如果播放RecH264.h264.不花屏而播放DecBuf.h264花屏说明缓冲区代码错误。
Fifth:如果用VLC播放器播放RecH264.h264花屏,检查数据是否发送和发送的每一帧数据是都正确。
注意:如果写文件的时候以a+,ab+,w+等方式打开文件,在写文件的时候会自动将0A转化为0D0A,这时就算发送端发送数据无误,写文件的时候也会出错。解决方式很简单。以wb+方式打开文件,这样0A就不会转化为0D0A了。
花屏问题解决思路:
1:检查解码方式是否正确。
遇到花屏问题首先考虑的是是否丢帧。而丢帧问题的解决办法为增加缓冲区。增加缓冲区以后,如果还是出现花屏,这时候解决问题主要从以下方面着手。
第一:检查缓冲区,方法如上。
第二:解码是否正确。无论是采用FFmpeg解码还是用海思解码还是别的方式解码,必须确定解码是都正确。验证解码是否正确的方式如下:
将解码以后的YUV数据保存,可以自己编写YUV文件播放器也可以用现有软件播放。当然也可以将现有的YUV数据转码成RGB数据进行播放。如果此时不能正常播放则说明是解码出错。
2:针对缓冲区的访问机制。(事件遇到问题,信号量可以完美解决缓冲区互斥访问的问题)
对于缓冲区我们必须保持互斥访问,然而互斥访问就有一个问题那就是读和写会占据一定的时间,不能同时访问。不用mutex那么采用event会怎么样呢?会缓冲区爆掉,原因也很简单,因为如果解码一个很大的帧,解码需要花相当多的时间,这是同时到来2个event,然而传给解码进程的只有后面一个event,也就是说缓冲区里面有一帧数据没有进行解码,这样越积累愈多,缓冲区就会爆掉。
信号量semaphor可以完美解决以上问题。每往缓冲区里面存一个数据,semaphor就加1.每取一个数据semaphor就减一,只要有数据取进程就可以一直取,没有数据,那么取数据进程就阻塞等待,这样可以解决有的数据没有取走的问题。
3:SDL显示的控制。(每一帧应该怎么播放)
SDL显示的时候如果用SDL_delay()函数,不是说不行,而是相对不好,因为每帧的解码时间不确定,delay时间不好确定,并且如果帧率
您可能关注的文档
- 自动化_专业英语_部分课后单词.doc
- 企业政策绿色通道政策解释.doc
- 自动售水机项目投资计划书.doc
- 自动控制原理实验报告实验三-控制系统串联校正.docx
- 自动控制原理试卷A答案.doc
- 自动控制原理课程教学大纲.doc
- 自动控制原理试卷01.doc
- 自动控制理论课程设计_KSD—1型晶闸管直流随动系统分析与校正.docx
- 自学考试本科论文提交的材料-2016版.doc
- 企业最优资本结构发言提纲.doc
- 2024年05月广西壮族自治区工业促进和中小企业服务中心2024年公开遴选20名工作人员笔试上岸试题历年典型考题与考点剖析附带答案解析.docx
- 2024年05月广东广州美术学院招考聘用协议年薪制工作人员4人笔试上岸试题历年典型考题与考点剖析附带答案解析.docx
- 2024年05月广东中山市教育和体育局直属学校(中山市建斌职业技术学校)招考聘用5人笔试上岸试题历年典型考题与考点剖析附带答案解析.docx
- 2024年05月广西梧州市卫生健康委员会2024年招考1名工作人员笔试上岸试题历年典型考题与考点剖析附带答案解析.docx
- 2024年05月山西省清徐县事业单位2024年公开招考83名工作人员笔试上岸试题历年典型考题与考点剖析附带答案解析.docx
- 2024年05月广东东莞市机关事业单位集中公开招聘编外聘用人员88人笔试上岸试题历年典型考题与考点剖析附带答案解析.docx
- 2024年05月广东东莞广播电视台招考聘用8人笔试上岸试题历年典型考题与考点剖析附带答案解析.docx
- 2024年05月广东中山市神湾镇人民政府所属事业单位招考聘用事业单位人员11人笔试上岸试题历年典型考题与考点剖析附带答案解析.docx
- 2024年05月广东广州市南沙区会办公室招考聘用编外人员笔试上岸试题历年典型考题与考点剖析附带答案解析.docx
- 2024年05月广东广州市越秀区登峰街招考聘用综合行政执法协管员笔试上岸试题历年典型考题与考点剖析附带答案解析.docx
文档评论(0)