摘要:
本文来自:http://www.cnblogs.com/mcodec/articles/1780598.html?page=1#pagedcommentH264解码器源码,移植ffmpeg中的H264解码部分到Android,深度删减优化,在模拟器(320x480)中验证通过。程序的采用jni架构。界面部分,文件读取,视频显示都是用java做的,底层的视频解码用C来做满足速度的要求。在这个版本中,从H264码流中分割出Nal是在java层做的,这样在java层直接调用解码时就知道是否有显示视频,缺点的就是耦合度/封装性差一点。如果采用在底层做Nal分割的方法,可以封装得好看一些,但是每次送的数 阅读全文
摘要:
拿到H264的裸流数据是,一般码流结构是SPS,PPS,I帧,P帧......SPS,PPS,I帧,P帧...........。用RTP打包H264数据时,SPS和PPS可以不发,直接发I帧和P帧数据即可。还要看I帧和P帧有多大,如果小于MTU就直接加RTP包发送就可以,如果大于MTU就得分片了。具体的分片方法可以参考RFC3984中。 我用的FU-A,分片方式。 第一个 FU-A 包的 FU indicator 应该是:F = NALU 头中的 F;NRI = NALU 头中的 NRI;Type = 28。FU header 应该是:S = 1;E = 0;R = 0;Type = ... 阅读全文
摘要:
都是摸着石头过河,花了整整一个星期,终于把技术难点给突破了,貌似网上对这个讨论的较少。主要需要实现的功能是在android手机上实时采集视频,并在远程比如PC机上实时显示出来,也就是以android手机作为监控摄像头。一开始查到的是smartcam的一个开源项目,看了下源代码,发现其实现原理是利用android 的camera图像的预采集,通过实现PreviewCallback类的回调函数onPreviewFrame,获得camera采集的原始图像数据之后,压成jpeg格式传到pc端。pc端对接收到的jpeg图像序列进行实时解压和显示,就达到了预想的效果。虽然这种方式稍微显得比较笨拙,这个方式 阅读全文
摘要:
刷机具体操作步骤:1、下载升级包文件,解压后把文件夹改为image 再将整个目录复制到手机SD卡上,格式为"sd/image/image.bin" 2、关机 3、按住中间设置键(MENU)+音量上+开机,直接进入到T卡升级界面,你看看到屏中间有个进度条。 4、自动重启后进入系统初始化阶段,请不要操作,直到进入系统 5、升级完成,进入系统正常使用。 阅读全文
摘要:
转自:http://www.yuanma.org/data/2007/0515/article_2595.htmSDP:Session Description ProtocolSDP格式: Session description v=(protocol version) o=(owner/creator and session identifier) s=(session name) i=* (session information) u=* (URI of description) e=* (email address) p=* (phone number) ... 阅读全文
摘要:
转自:http://www.rosoo.net/a/201106/14631.htmlH264的RTP中有三种不同的基本负载(Single NAL,Non-interleaved,Interleaved)应用程序可以使用第一个字节来识别。在SDP中也说明了本次会话的属性SDP 参数下面描述了如何在 SDP 中表示一个 H.264 流:. "m=" 行中的媒体名必须是 "video". "a=rtpmap" 行中的编码名称必须是 "H264".. "a=rtpmap" 行中的时钟频率必须是 900 阅读全文
摘要:
本文将从设计理念层面:abstract class和interface所反映出的设计理念,来分析一下二者的区别。作者认为,从这个层面进行分析才能理解二者概念的本质所在。abstarct class在Java语言中体现了一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在"is a"关系,即父类和派生类在概念本质上应该是相同的。对于interface 来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的,仅仅是实现了interface定义的契约而已。为了使论述便于理解,下面将通过一个简单的实例进行说明。考虑这样一个例子,假设在我们 阅读全文
摘要:
如果使用模拟器时,手机设置已经开启gps,还是不能获得模拟器信号,或者程序里面一直为null.那么把target换成 api 7.换成2.1的模拟器就可以了应该。 阅读全文
摘要:
转载:http://blog.newnaw.com/?p=719看起来Mobile Atlas Creator现在遇到了点麻烦。作者在sourceforge论坛上发帖说,由于收到了很多地图厂商的邮件,要求他从工具中撤下这个或那个地图数据源。。。这也是能理解的,商业公司毕竟在花大力气维护这些地图,人家不让用了我们还能怎么着?所以作者从1.9 beta2版本开始,在MAC中只保留了基于OpenStreetMap的数据源,并且取消了以前版本软件的下载。 不过作者也善意提醒大家,如果有需要,大家可以主动尝试联系数据厂商,看看能否让自己通过MAC获取离线地图。。。当然,MAC依然继续会是一个开源的jav 阅读全文
摘要:
格式如 "Tue Oct 18 04:11:56 CST 2005 "的String转换成Date,关键代码是SimpleDateFormat sdf = new SimpleDateFormat( "EEE MMM dd HH:mm:ss zzz yyyy ", Locale.US);Date d = sdf.parse(myString); 阅读全文