Description: H264解码器源码,移植ffmpeg中的H264解码部分到Android,深度删减优化,在模拟器(320x480)中验证通过。
程序的采用jni架构。界面部分,文件读取,视频显示都是用java做的,底层的视频解码用C来做满足速度的要求。
在这个版本中,从H264码流中分割出Nal是在java层做的,这样在java层直接调用解码时就知道是否有显示视频,缺点的就是耦合度/封装性差一点。
如果采用在底层做Nal分割的方法,可以封装得好看一些,但是每次送的数据有限制,如果送的数据太多,底层可能会一次解码出好几帧视频,但是通知到界面层只能显示一帧,造成丢帧的现象。 如果每次送的数据较少,就会有很多次底层调用没有进行实质解码,很小气的做法,比如有一压缩数据帧需要600字节,如果一次送100个字节给解码器,那么要送6次才会进行实质解码,因为每个数据帧有大有小,所以只能取极小值才不会导致丢帧。
不过所有的编码解码都是各种因素平衡折中的结果,具体用什么方法具体分析。
注意解码库写死了视频大小240x320,其他视频大小要简单修改一下底层的代码。-H264 decoder source code, porting ffmpeg s H264 decoding to Android, the depth of cut optimization, in the simulator (320x480) in the validation passed. Platform: |
Size: 650240 |
Author:caoliang |
Hits:
Description: H264解码器源码,移植ffmpeg中的H264解码部分到Android,深度删减优化,在模拟器(320x480)中验证通过。
程序的采用jni架构。界面部分,文件读取,视频显示都是用java做的,底层的视频解码用C来做满足速度的要求。
在这个版本中,从H264码流中分割出Nal是在java层做的,这样在java层直接调用解码时就知道是否有显示视频,缺点的就是耦合度/封装性差一点。
如果采用在底层做Nal分割的方法,可以封装得好看一些,但是每次送的数据有限制,如果送的数据太多,底层可能会一次解码出好几帧视频,但是通知到界面层只能显示一帧,造成丢帧的现象。 如果每次送的数据较少,就会有很多次底层调用没有进行实质解码,很小气的做法,比如有一压缩数据帧需要600字节,如果一次送100个字节给解码器,那么要送6次才会进行实质解码,因为每个数据帧有大有小,所以只能取极小值才不会导致丢帧。
不过所有的编码解码都是各种因素平衡折中的结果,具体用什么方法具体分析。-H264 decoder source code, porting ffmpeg s H264 decoder part to Android, the depth of cut optimization, in the simulator (320x480) to verify through.
Program using jni architecture. Interface portion of the file to read, the video display is made with java, the underlying video decoding in C to do to meet the speed requirements.
In this version, the H264 stream from a separate layer of Nal is done in java, so call decoding in java layer directly whether there is to know when to display video, drawback is the coupling/packaging of almost.
If used at the bottom do Nal segmentation method can be encapsulated look good, but each time there is limited data to send, if you get too much data, the underlying may be a decoding of several frames of video, but the notice to the interface layer can only display one, resulting in dropped frames phenomenon. If you send less data each time, there will be many times not to call the underlying substance of decoding, a small gas practices, s Platform: |
Size: 230400 |
Author:wyc |
Hits:
Description: 流媒体程序开发之:H264解码器移植到OPhone:并写一个测试程序(OPhoneSDK+Java)测试解码库是否正常运行,此方法也可用在android手机上。-Program development of streaming media: H264 decoder ported to OPhone: and write a test program (OPhoneSDK+ Java) test whether the normal operation of the decoder library, this method can also be used in the android phone. Platform: |
Size: 268288 |
Author:u1001234 |
Hits:
Description: H264解码器源码,移植ffmpeg中的H264解码部分到Android,深度删减优化,在模拟器(320x480)中验证通过。
程序的采用jni架构。界面部分,文件读取,视频显示都是用java做的,底层的视频解码用C来做满足速度的要求。
在这个版本中,从H264码流中分割出Nal是在java层做的,这样在java层直接调用解码时就知道是否有显示视频,缺点的就是耦合度/封装性差一点。
如果采用在底层做Nal分割的方法,可以封装得好看一些,但是每次送的数据有限制,如果送的数据太多,底层可能会一次解码出好几帧视频,但是通知到界面层只能显示一帧,造成丢帧的现象。 如果每次送的数据较少,就会有很多次底层调用没有进行实质解码,很小气的做法,比如有一压缩数据帧需要600字节,如果一次送100个字节给解码器,那么要送6次才会进行实质解码,因为每个数据帧有大有小,所以只能取极小值才不会导致丢帧。
不过所有的编码解码都是各种因素平衡折中的结果,具体用什么方法具体分析。
如果程序崩溃退出,优先考虑:
1)是否是baseline
2)byte [] NalBuf = new byte[40980] 缓冲区是否溢出。
如果有B帧,那肯定不是baseline。
这个是测试码流-If the program crashes to exit, giving priority to: 1) whether the baseline 2) byte [] NalBuf = new byte [40 980] buffer overflow. If B frames, it certainly is not the baseline. This is a test stream Platform: |
Size: 419840 |
Author:李军 |
Hits:
Description: android上的h264解码器,可以通过JNI,应用层对h264数据进行解码-h264 decoder for android according to the jni interface to java Platform: |
Size: 680960 |
Author:RobSky |
Hits:
Description: 通过jni实现的java调用语言版H264解码库实现的android简易视频播放器-Achieved through jni call java language version of android H264 decoding library implements simple video player Platform: |
Size: 241664 |
Author:梁代久 |
Hits:
Description: H264解码器源码,移植ffmpeg中的H264解码部分到Android,深度删减优化,在模拟器(320x480)中验证通过。
程序的采用jni架构。界面部分,文件读取,视频显示都是用java做的,底层的视频解码用C来做满足速度的要求。
在这个版本中,从H264码流中分割出Nal是在java层做的,这样在java层直接调用解码时就知道是否有显示视频,缺点的就是耦合度/封装性差一点。
如果采用在底层做Nal分割的方法,可以封装得好看一些,但是每次送的数据有限制,如果送的数据太多,底层可能会一次解码出好几帧视频,但是通知到界面层只能显示一帧,造成丢帧的现象。 如果每次送的数据较少,就会有很多次底层调用没有进行实质解码,很小气的做法,比如有一压缩数据帧需要600字节,如果一次送100个字节给解码器,那么要送6次才会进行实质解码,因为每个数据帧有大有小,所以只能取极小值才不会导致丢帧。
不过所有的编码解码都是各种因素平衡折中的结果,具体用什么方法具体分析。-H264 decoder source code, porting the H264 decoding ffmpeg to Android, depth of cut optimization, in the simulator (320x480) is verified.
Program using jni architecture. Part of the interface, file read, the video display is made with java, the underlying video decoding using C do meet the speed requirements.
In this version, from the H264 stream is segmented Nal java layer do so directly call the java layer decoding know whether displaying video, the disadvantage is that the degree of coupling/encapsulation almost.
If you do use the underlying Nal segmentation method, you can get some good-looking package, but every time there is limited data to send, if sending too much data, the underlying may decode several time-frame video, but can only display notifications to the UI layer one, resulting in dropped frames phenomenon. If you send less data each time, there will be many times the underlying call no substantial decoding, a small gas practice, such a frame requ Platform: |
Size: 243712 |
Author:caojin |
Hits:
Description: 从项目中抽取的一个java类,可以提取.h264格式文件中的sps和pps参数。不是完整的android项目,需创建android项目,然后拷贝java文件,使用该功能-a simple java file.for extract sps and pps a given .h264 file . copy the java class to you project to use it . Platform: |
Size: 27648 |
Author:aabry |
Hits: