视频传输播放为解决的bug
来源:互联网 发布:国家二级c语言成绩 编辑:程序博客网 时间:2024/05/21 17:27
最近很长一段时间都是在做,视频传输、播放方面。
已有的开发工具:友善之臂开发板,USB摄像头(Logitech)。
打算实现的功能是:开发板实时发送视频,PC端实时接收视频并播放。
发送端开发板:开发板采集USB视频数据(YUV420P),T264进行编码,发送方式UDP,UDP里的数据是ts流,H264是用ts流进行封装的。
接收端PC:用UDP的recvfrom()函数接收数据,得到ts流数据,对ts流数据进行解析得到H264数据,对H264数据进行解码,得到YUV420P,对YUV420P进行播放。
按照自己的思想逻辑是没有问题的。开发板是能正常编码,ts封装,UDP发送的;PC是能接受UDP数据,解析出ts流得到H264数据,但在对H264进行解码的时候报错了,郁闷啊。
整个开发需要的代码完全来自于网上下载和参考前辈的代码:
开发板端:T264编码是下载的开源工程、TS封装是来自于合众达6467里面的一个实例、udp很简单就自己写的,这样开发板端代码就凑齐了。也能运行了。
PC端:H264解码使用的T264开源工程的解码部分、TS解析是用的霄神的开源项目SpecialFST里面的ts流解析部分、udp是自己简单写的、YUV播放模块是在pudn下载的一个开源的YUVviewer项目里面的YUV播放模块,这些代码凑在一块好像也是没什么逻辑问题的。
但最后的问题就是出现在PC端H264解码模块:WHY?
自今自己还是不明白,所以,实时播放功能还是没能实现:
T264解码报错情况是:当我把第一次解析后得到的H264数据传输给T264解码器时,是没有问题的,问题出现在第二次把H264数据传输给T264解码时报错了,报错地方在T264_parse(t)这个函数,错误显示是内存访问异常,越界访问了。
对于解析后的H264单独保存下来 是能播放的,而实时解码时就出问题了,还不知道问题到底出现在哪里。
初步考虑是不是:1、线程里包括接受UDP数据、ts解析、H264解码、YUV播放,是不是线程太耗时了报错?下一步解决办法是不是得再开一个线程用于解码播放?
2、是不是需要创建一个临时文件,用于写数据和读数据用?
3、是不是得考虑换思路了,换rtp、或换ffmep这种解码形式、或者用live555来实现?
思想太乱,不敢再多想。
- 视频传输播放为解决的bug
- 视频传输播放为解决的bug--续2(已解决)
- SurfaceView播放视频遇到的bug
- iOS开发-BUG:解决在使用MPMoviePlayerController播放视频后导航栏上移的问题
- Webview播放视频bug
- MPMoviePlayerViewController播放网络视频bug
- 音视频同步播放器遇到的奇葩的bug
- ubuntu 14.04解决视频播放的问题
- 解决webView无法播放视频的问题
- coursera视频无法正常播放的解决
- 录制视频的大Bug (IOS 不能播放)
- unity手动拖拽播放视频的bug小结
- 播放记录产生两条的bug分析及解决
- cocos2dx 3.x 播放视频bug
- 解决Ice 对象大数据量传输Bug
- 解决Ice 对象大数据量传输Bug
- Chromium为视频标签<video>全屏播放的过程分析
- 网页播放视频解决代码
- 天声人語 20141221
- 胡博君谈Java中final的用法
- vector 删除常见错误
- 【leetcode 进制转换】Excel Sheet Column Title
- ctime库函数的使用
- 视频传输播放为解决的bug
- 在理论分析家和程序员眼中,html5是大不相同的
- 第17周-Problem E: 重复字符串
- 介绍NPTL
- Eclipse无法识别(手机)设备的解决方案
- 字符串的全排列和组合算法
- 什么是线程池
- 栈的应用实践之计算机执行后缀表达式
- Android基础系列之资源(三)