Android 中H.264/AVC codec的开发
来源:互联网 发布:python sleep 编辑:程序博客网 时间:2024/06/05 10:12
http://blog.csdn.net/brooknew/article/details/8223130
Android有MediaRecorder接口,通过这个接口可以录制视频文件。Android内部也有各种音视频codec,但是并没有开放Java接口。所以当你想每次从Camera直接抓取一个画面,然后压缩成H264/MPEG4/H263 等视频包时,就有困难了。这种需求在视频聊天/视频共享里会有。本人仔细研究某开源代码,对其进行合理配置达到优化的目的,做了一套H.264/AVC的编解码器,编解码器使用C/C++开发,通过Android NDK编译产生动态连接库。基于这个库,我还做了一个在android里运行的应用来演示这个H.264/AVC编解码器。
这里就介绍一下这个应用。它包含HelloGalleryActivity、AvcRecActivity、AvcFileListActivity、AvcViewActivity、LoopAvccodecActivity这些Activity。HelloGalleryActivity是一个入口,先对这个应用做个简单的说明,然后排出三个按钮。第一个是录制,点击它会启动AvcRecActivity,在这里面可以录制一个个画面,并且把它压缩成一个个H264/AVC数据包,并且存入后缀名为avc的文件里。第二个是播放,点击它会启动AvcFileListActivity,把/sdcard/avccodecDemo目录里所有avc文件列出来,点击某个文件将启动AvcViewActivity把该文件播放出来。第三个是自环,点击它会启动LoopAvccodecActivity,它录制和播放同时进行,每录制压缩一个帧,又解出来显示出来,这样可以评估同时录放的性能。还有一些类在这里介绍一下,GraphicsView是用来显示解压出来的数据的。Yuv2Rgb 负责把YUV数据转成RGB数据,只有RGB数据才好显示,这一功能也是通过C/C++代码和Java代码结合来达成。YzrAvcEnc.java、YzrAvcDec.java、Yuv2Rgb.java 是调用C/C++动态库的接口。还有操纵camera的代码等。
代码在这里: http://nchc.dl.sourceforge.net/project/avccodecdemo/avccodecDemo-src-apk.zip
在csdn里下载了29次的资源被管理员下掉了,我又重新上传到 sourceforge 了。
编解码器的原生动态连接库是一个演示版,编码和解码出来的数据包含水印。要得到全功能版或源代码,需要付费。
联系方式为 brooknew@163.com
微博:http://weibo.com/u/3072288012
- Android 中H.264/AVC codec的开发
- Android 中H.264/AVC codec的开发
- Android 中H.264/AVC codec的开发
- H.264/AVC的结构
- h.264/AVC的结构 NAL结构
- H.265/HEVC中比较耗时的模块介绍(与H.264/AVC对比)
- H.264/AVC是什么?
- H.264/AVC是什么?
- AVC/H.264 Profile
- AVC/H.264 Profile
- H.264/AVC是什么?
- H.264/AVC概述
- AVC和H.264
- H.264/AVC基本概念
- HEVC/H.265编码开发现状更新!离大规模替换AVC/H.264的时间已经很近了!
- H.264/AVC中CAVLC编码方法简介
- H.264/MPEG-4 AVC
- H.264/MPEG-4 AVC
- IOS通讯录内容调用
- Socket通信原理和实践
- 第22条:优先考虑静态成员类
- 獲取用戶端ip地址
- 二分法查找法
- Android 中H.264/AVC codec的开发
- 原生php 实现路由功能
- 英文版XP 不显示中文的情况
- 不用输入帐号密码登录MySQL的方法
- UITableView选中cell
- Windows Embedded CE 6.0 Internals (4) The Mechanism of API
- 排序算法汇总总结
- Android 中this、 getApplicationContext()、getApplication()之间的区别
- 中国软件测试现状调查报告发布啦!!