
android多媒体
一叶知秋dong
好记性不如烂笔头,记录学习和工作中的一些东东。
展开
-
Sipdroid数据发送流程
整理一下Sipdroid的数据发送流程.public class SipProvider implements Configurable, TransportListener实现TransportListener的目的是什么?简单,为了实现回调,SipProvider实现了TransportListener,记住-这个很重要.数据发送对应的流程对应如下,再这里假设messa转载 2012-05-14 20:09:09 · 1203 阅读 · 0 评论 -
MP4文件格式详解——元数据moov(一)mvhd box
本系列文档从MP4文件入手,对文件中重要的box进行解析。本次解析moov box,也称movie box。movie box —— container box whose sub-boxes define the metadata for a presentation (‘moov’) moov包含的一系列次级box中存储着媒体播放所需的元数据(metadat转载 2014-12-30 15:22:49 · 2709 阅读 · 0 评论 -
MP4V2--如何使用 MP4SetTrackESConfiguration
如何使用 MP4SetTrackESConfigurationhttp://swchoutech.blogspot.hk/2012/11/mp4settrackesconfiguration.html在使用 MP4v2 製作 .mp4 檔案時,如果你要使用的 Audio 編碼格式是 AAC,那麼你就需要使用 MP4SetTrackESConfiguration 這個函式转载 2014-12-30 15:26:19 · 4426 阅读 · 1 评论 -
Mp4v2实现h264+aac打包成Mp4视频文件
使用mp4v2实现录制mp4视频,需要准备如下信息:1、获取mp4v2源码并编译成库文件,对于mp4v2的编译可以看前面的文章android 编译mp4v2 2.0.0生成动态库 ;2、获取h264数据中的sps和pps数据,如果不会的话可以查看前面的文章 点击打开链接;3、获取音频解码信息,在调用MP4SetTrackESConfiguration使用,具体的获取方转载 2014-12-30 15:27:35 · 3270 阅读 · 2 评论 -
libjingle源码解析
下载地址:http://code.google.com/p/libjingle/可以用SVN checkout:svn checkout http://libjingle.googlecode.com/svn/trunk/ libjingle-read-only我是用MyJingle来调试的:http://www.bluehands.de/softw转载 2014-12-30 15:44:45 · 2337 阅读 · 0 评论 -
MP4文件格式详解——元数据moov(二)tkhd box
本次继续解析moov box,关于moov的解析推荐从我上一篇博文《MP4文件格式详解——元数据moov(一)》看起。moov √ container for all the metadata mvhd转载 2014-12-30 15:24:21 · 1946 阅读 · 0 评论 -
MP4文件格式详解——元数据moov(三)tref box
本次继续解析moov box,关于moov的解析推荐从我之前的博文《MP4文件格式详解——元数据moov(一)》看起。moov √ container for all the metadata mvhd转载 2014-12-30 15:25:07 · 2079 阅读 · 0 评论 -
编写基于libjingle的应用程序的步骤
Libjingle是Google提供的C++组件集,它为点对点通讯与语音呼叫功能提供交互操作性。组件包包括了创建网络连接(穿越NAT与防火墙设备,中继服务器和代理),协商会话细节(编解码器,文件格式等),以及数据的交换。还提供了一些辅助的工具例如XML解析以及网络代理的处理等。使用libjingle可以实现如下应用:多用户语音聊天应用多用户视频会议应用多用户音乐流媒体应用点对点文件共享翻译 2014-12-30 16:05:42 · 1984 阅读 · 0 评论 -
Android Camera HAL浅析
1、Camera成像原理介绍Camera工作流程图Camera的成像原理可以简单概括如下:景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为电信号,经过A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再通过IO接口传输到CPU中处理,通转载 2015-09-01 19:37:13 · 3740 阅读 · 0 评论 -
android硬编码h264-MediaCodec
android编码h264, 用udp发送到vlc播放测试。代码上传至:http://download.youkuaiyun.com/detail/liuhongxiangm/6772629上代码:[java] view plaincopy"font-size:18px;">package com.encode.androidencode;转载 2015-09-10 20:08:13 · 5047 阅读 · 2 评论 -
Android5.0视频录制--MediaProjection
Android在5.0系统之前,是没有开放视频录制的接口的,如果要录制视频,必须要先root,这部分我会在随后的博客中细讲。 在5.0,Google终于开放了视频录制的接口(其实严格来说,是屏幕采集的接口),也就是MediaProjection和MediaProjectionManager。首先来说MediaProjectionManager,它是一个系统级的服务,类似WindowMa转载 2016-11-29 16:04:56 · 2691 阅读 · 0 评论 -
Android5.0以上使用MediaProjection截图和录屏
MediaProjection介绍MediaProjection可以用来捕捉屏幕,具体来说可以截取当前屏幕和录制屏幕视频。MediaProjection由MediaProjectionManager来管理和获取。使用步骤首先获取MediaProjectionManager,和其他的Manager一样通过 Context.getSystemService() 传入参数MEDI转载 2016-11-29 16:05:53 · 3214 阅读 · 0 评论 -
Android多媒体整体架构图
MediaPlayer框架图 Camera框架图 SoundRecorder框架图 VideoCamera框架图 OpenCore与Skia ALSA Audio框架图 Video Overlay框架图 Camera HAL演化图 MediaPlayer框架图转载 2016-12-13 10:33:00 · 3988 阅读 · 1 评论 -
Android多媒体--MediaCodec 中文API文档
*转载请注明出处:http://www.cnblogs.com/roger-yu/MediaCodecpublic final class MediaCodec extends ObjectJava.lang.Object → android.media.MediaCodec MediaCodec类可用于访问Android底层的媒体编解码器,也就是,编码转载 2017-06-13 17:26:31 · 3309 阅读 · 0 评论 -
android MediaCodec解析
简介MediaCodec类可以获取底层媒体编码/解码库,是Android底层多媒体支持库的一部分(一般和MediaExtractor、MediaSync、MediaMuxer、MediaCrypto、MediaDrm、Image、Surface、AudioTrack搭配使用)。宽泛的说,codec(编解码器)通过异步的方式对输入的数据进行处理,输出处理后的数据,过程中需要一系列的输入/转载 2017-06-15 10:18:56 · 13091 阅读 · 0 评论 -
android 5.0 mediacodec demo
最近在高通8974A android5.0 平台调试mediacodec硬件编解码,发现之前在android 4.1上可以用的代码报错不能用了。经过分析和网上搜索解决了,现贴出来。demo的功能就是显示camera 的预览图像,从camera回调里拿到yuv数据,然后送给mediacodec编码,输出的编码数据给到mediacodec解码,解码后的图像显示出来。package原创 2017-07-06 15:45:00 · 1900 阅读 · 0 评论 -
Android直播实现(Android端推流、播放)
最近想实现一个Android直播,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代码就可实现编码、推流和取流播放,整理了一下做了一个demo,在这里记录一下效果图:编码和推流,有两个方案选择:一:使用javacv来实现,最终也是用过ffmpeg来进行编码和推流,jav...转载 2018-10-11 15:15:00 · 46264 阅读 · 44 评论 -
MP4文件格式详解——文件类型ftyp
ISO 14496 - 12 定义了一种封装媒体数据的基础文件格式,mp4、3gp、ismv等我们常见媒体封装格式都是以这种基础文件格式为基础衍生的。如果从全局角度了解基础文件格式,请看我之前的博文《MP4文件格式详解——结构概述》。本系列文档从MP4文件入手,对文件中重要的box进行解析。本次解析ftyp box[cpp] view p转载 2014-12-30 15:21:48 · 4677 阅读 · 0 评论 -
MP4文件格式详解——结构概述
一、基本概念1、 文件,由许多Box和FullBox组成。2、 Box,每个Box由Header和Data组成。3、 FullBox,是Box的扩展,Box结构的基础上在Header中增加8bits version和24bits flags。4、 Header,包含了整个Box的长度size和类型type。当size==0时,代表这是文件中最后一个Box;当size转载 2014-12-30 15:20:57 · 1250 阅读 · 0 评论 -
Sipdroid简单分析
Sipdroid是一款相对成熟的Voip软件,本身提供了视频语音通话功能,支 持各种网络接入模式(蓝牙,wifi,3G等),多种语音视频编码处理,同时Sip完全用java上层编写,模块比较清晰,相对比较好修改。 1、SipDroid模块简单分析 UI层,负责界面显示模块和界面时间传递 Engine层:软件核心处理层,启动各种服务,初始化软件参转载 2012-05-14 20:01:30 · 1585 阅读 · 0 评论 -
Sipdroid涉及到的协议之RFC3261
Sipdroid是不断的向服务器发送Message来实现和服务之间的通信的,发送统一是由org.zoolu.sip.provider.SipProvider提供的sendMessage来实现的,因此在SipdroidEngine中的startEngine初始化整个项目中的核心类的时候,这些类的构造函数中都SipProvider这个参数.(设计的几个核心类包括:UserAgent Regi转载 2012-05-14 20:10:56 · 1026 阅读 · 0 评论 -
rtp 和rtcp 精讲
RTP协议是real-time transport protocol的缩写,被设计来传输流媒体数据,有着广泛的应用,其它相关介绍自己去看RFC,我不打算讨论这些无聊的概念性的东西。 (1)了解RTP 可以说,RTP协议不依赖于底层协议,也就是说,它是独立的协议。而一般的,由于UDP包的快速、时实性高的特点,它通常和UDP结合在一起,作为UDP的上层载体数据的形式传播。转载 2012-05-15 15:35:51 · 2616 阅读 · 0 评论 -
sipdroid的videocamera类,流程分析及RTP/RTCP介绍
Sipdroid是一个运行于Android手机平台上的SIP/网络电话客户端,与QQ、MSN等IMS软件不同的是,Sipdroid不仅仅是支持电脑对电脑,同时也支持电脑对手机和固话,SIP设备对手机和固话,因为有了它,你只要支付很少的RMB,甚至于免费,就可以打电话到国内甚至国际手机或固话。它是基于标准的SIP协议,所以只要是支持这些协议的通讯工具都可以互通。因为没有两部手机用来测试,所以里面转载 2012-05-16 15:43:52 · 3368 阅读 · 0 评论 -
YUV420图像格式
YUV中的Y是指“灰度”或者“亮度” ,英语表达为Luminance、Luma,luminance 表示为 Y, luma 表示为 Y'。Y与RGB的演算关系为:Y = 0.2126 R + 0.7152 G + 0.0722 B,Y' = 0.2126 R' + 0.7152 G' + 0.0722 B' ,符号' 表示使用了Gamma compression。(参见http://en.wiki转载 2012-09-28 17:56:51 · 1251 阅读 · 0 评论 -
Android MediaCodec “Decoded”
Android has a great media library allowing all sorts of things. Until recently though, there was no way to encode/decode audio/video giving developers the ability to do literally anything. Fortunate转载 2013-04-15 14:28:18 · 5019 阅读 · 2 评论 -
Android MediaCodec 使用例子
下面的例子是使用MediaCodec 录制到文件的例子。public class AvcEncoder {private MediaCodec mediaCodec;private BufferedOutputStream outputStream;public AvcEncoder() { File f = new File(Environment.getEx转载 2013-04-15 18:13:22 · 23666 阅读 · 29 评论 -
Android Hardware Decoding with MediaCodec
在Android 4.1之后号称已经在SDK层支持硬解,下面是一个使用的示例,但不得不说,这跟我所需要的还是差了太多(我需要的是我input raw h.264 video, 它直接output raw image buffer, RGB or YUV),不过,还是先收藏下,等回头有空再来研究。 Finally, I must say, fina转载 2013-04-15 14:36:12 · 9082 阅读 · 19 评论 -
Android平台OpenMax多媒体引擎介绍
OpenMax是一个多媒体应用程序的框架标准。其中,OpenMax IL(集成层)技术规格定义了媒体组件接口,以便在嵌入式器件的流媒体框架中快速集成加速编解码器。 在Android中,OpenMax IL层,通常可以用于多媒体引擎的插件,Android的多媒体引擎OpenCore和StageFright都可以使用OpenMax作为插件,主要用于编解码(Codec)处理。 在Androi转载 2013-07-08 09:56:59 · 1601 阅读 · 0 评论 -
android 截屏 和屏幕录像
android上获取屏幕内容的方法有以下几种:1.调用view的getDrawingCache接口,得到屏幕内容的bitmap;优点是使用方便,缺点是只能获取单个view的图像内容,如果此view被切换到后台,或者屏幕上还有别的view,那获取的内容都不是你在屏幕上看到的全屏的图像。2.调用系统截屏接口。android4.0以后系统自带截屏功能,使用方法是按下 power+volume原创 2013-10-16 15:52:46 · 5081 阅读 · 1 评论 -
android fb 截屏轻量级版本
应用里面读取fb0需要先修改fb0的权限,在root过的手机可以通过chmod 777 /dev/graphics/fb0 修改。以下是读取屏幕内容并保存为一个bmp图像的实现。 #include #include #include int save_bmp(const char * path, int w, int h, void * pdata, int b原创 2013-12-26 17:00:35 · 1453 阅读 · 0 评论 -
android上用C语言读取fb0实现截屏,并保存为rgb565的bmp .
工程源码:http://download.youkuaiyun.com/detail/victoryckl/4074654一个增强版本源码:通过对fb0的操作,实现截屏,和送图片到fb0,支持rgb565 rgb888 xrgb8888格式的bmp和fb0 android上用C语言读取fb0实现截屏,保存为bmp图片,支持16位(rgb565)、24位(rbg888)转载 2013-12-26 16:51:28 · 2306 阅读 · 0 评论 -
利用ffmpeg和SDL实现一个跨android版本的音视频播放器
1:从http://www.libsdl.org/tmp/下载SDL for android 版本(我下载的是 SDL-1.3.tar.gz );2:从https://github.com/havlenapetr/FFMpeg下载 havlenapetr 的ffmpeg for android版本;3:把你下载的SDL for android版本解压到本地目录,解压到本地;4:解压后的转载 2014-03-28 08:52:03 · 1827 阅读 · 0 评论 -
OpenGL API 简介 .
OpenGL API 简介开发基于OpenGL的应用程序,必须先了解OpenGL的库函数。它采用C语言风格,提供大量的函数来进行图形的处理和显示。OpenGL库函数的命名方式非常有规律。所有OpenGL函数采用了以下格式: 库前缀有gl、glu、aux、glut、wgl、glx、agl等等,分别表示该函数属于OpenGL那个开发库,从函数名后面中还可以看出需要多少个参数以转载 2014-06-24 16:58:07 · 994 阅读 · 0 评论 -
OpenGL函数
开发基于 OpenGL 的应用程序,必须先了解 OpenGL 的库函数。它采用 C 语言风 格,提供大量的函数来进行图形的处理和显示。OpenGL 库函数的命名方式非常 有规律。所有 OpenGL 函数采用了以下格式: 库前缀有 gl、glu、aux、glut、wgl、glx、agl 等等,分别表示该函数属于 OpenGL 那个开发库,从函数名后面中还可以看出需要多少个参数以及参数的 类型转载 2014-08-29 10:27:24 · 1415 阅读 · 0 评论 -
linphone eventqueue
/** * Structure for filter's methods used as a callback to notify events. * @var MSFilterNotifyFunc */typedef void (*MSFilterNotifyFunc)(void *userdata, struct _MSFilter *f, unsigned int id, v原创 2014-10-22 10:41:11 · 1283 阅读 · 0 评论 -
Android直播实现(srs流媒体服务器部署)
前面介绍了Android端的编码、推流和播放 ,这里介绍一下srs服务器的最简单的部署,如果有兴趣深入研究的可以去看看官方的wiki,因为是国内开发人员开源的,提供中文文档,讲解的很详细 https://github.com/ossrs/srs/wiki/v3_CN_Home编译:官方推荐在CentOs 6.x 和 Ubuntu12.x下编译,为了避免不必要的麻烦,我直接在Ububtu 1...转载 2018-10-11 15:17:18 · 9872 阅读 · 0 评论