android 音视频
沈万三djh
这个作者很懒,什么都没留下…
展开
-
Android中间层分析2.【media】音视频基础知识-5.ffmpeg yuv输出
开发环境vs2010 环境比较老。一下程序要求输出一个pcm数据,使用yuv工具可以打开播放。在这里简单介绍ffmpeg的api调用。后面还会写个整个video的播放,会提供统一的工程。AVFormatContext *pFormatCtx;int i, videoindex;AVCodecContext *pCodecCtx;AVCodec *pCodec;AVFrame *pFrame,*pFrameYUV;uint8_t *out_buffer;AVPacket *pack.原创 2020-06-29 11:21:37 · 165 阅读 · 0 评论 -
Android中间层分析2.【media】音视频基础知识-1概述
播放器原理基础数据 视频 yuv rgb yuv420 音频 pcm adpcm 编码格式 音频编码格式(AAC,MP3,AC-3) 视频编码格式(H.264,MPEG2,VC-1)封装格式(MP3 MP4 RMVB WAV)播放器原理基础数据通过上图 可以了解播放器的原理,其实就是将一个压缩数据还原成一个基础数据的过程。那么什么时基础数据,基础数据就是硬件所能识别的数据,音频硬件所能识别的是pcm。下面分开将。视频 yuv rgb yuv420 rgb视频的基本数据,就是显原创 2020-06-29 11:14:10 · 247 阅读 · 0 评论 -
Android中间层分析2.【media】音视频基础知识-2工具
2、需要认识的一些工具做音视频难么遇到些bug。一些有用的分析工具不仅能帮助我们解决问题,还能帮助我们在学习的时候有个客观的认识,使得知识变得不会难么抽象。借助工具,这是非常好的一个学习方法。这边介绍几个我自己常用的。2.1 码流分析工具 Elecard StreamEye Tools这个工具在分析图像运动适量的时候常用的,最近很少用了,又卸载了。就不上图了。2.2 视频格式分析工具 Elecard Video Format Analyzer视频格式分析工具,将一个视频里面的块结构,已经头里面的信原创 2020-06-29 11:16:35 · 364 阅读 · 0 评论 -
Android中间层分析2.【media】音视频基础知识-3开源项目
3、主流的开源项目•Ffmpeg•VlC•mplayer•ijkplayer目前比较受欢迎的主流的项目,有上面几个。其中ffmpeg 是必须要了解的。http://ffmpeg.org/ 这个是官网。它是一个开源项目,里面包含各种解码编码格式,并通过一系列的框架,将其组合在一块,形成了非常好用的编解码内核。网上有好多学习的资料。接下来的 三个播放器都是以ffmpeg作为基础,而产生的。这边特别留意的是ijk播放器,是Android上app常使用的,因为其兼容了Android的接口,使用起来原创 2020-06-29 11:18:48 · 166 阅读 · 0 评论 -
Android中间层分析2.【media】音视频基础知识-4.ffmpeg pcm输出
开发环境vs2010 环境比较老。一下程序要求输出一个pcm数据,使用pcm工具可以打开播放。在这里简单介绍ffmpeg的api调用。后面还会写个整个audio的播放,会提供统一的工程。cAVFormatContext *pFormatCtx;int i, audioStream;AVCodecContext *pCodecCtx;AVCodec *pCodec;首先定义一些变量。char url[]="WavinFlag.aac";av_register_all();.原创 2020-06-29 11:20:41 · 203 阅读 · 0 评论 -
Android中间层分析2.【media】音视频基础知识-6.ffmpeg 简单视频播放器
哎,喜欢偷懒,这边直接抄袭下雷神的代码。雷神是个值得敬佩的程序员。vs代码下载链接:/** * 最简单的基于FFmpeg的视频播放器2(SDL升级版) * Simplest FFmpeg Player 2(SDL Update) * * 雷霄骅 Lei Xiaohua * leixiaohua1020@126.com * 中国传媒大学/数字电视技术 * Communication University of China / Digital TV Technology * http.原创 2020-06-29 11:22:48 · 202 阅读 · 0 评论 -
Android中间层分析2.【media】音视频基础知识-7.ffmpeg 简单音频播放器
哎,喜欢偷懒,这边直接抄袭下雷神的代码。雷神是个值得敬佩的程序员。vs代码下载链接:https://pan.baidu.com/s/1c2dIuYk 密码:ld4b/* *最简单的基于FFmpeg的音频播放器 *Simplest FFmpeg Audio Player * *雷霄骅 Lei Xiaohua *leixiaohua1020@126.com *中国传媒大学/数字电视技术 *Communication University of China / Digital TV .原创 2020-06-29 11:23:34 · 234 阅读 · 0 评论 -
Android中间层分析2.【media】音视频基础知识-8、Android最简单的音频播放器
1、最简单的音频播放器Android 音视频的代码好多都属于native层,Nupalyer和AweSomePlayer控制流程复杂, 学习难度比较大,作为app人员来说接触的机会又比较少,导致想学习知识的人门槛比较高。所以这边通过上层的控制,让大家慢慢熟悉播放器的原理。因此将非常简单的音频播放器,拿出来练习,源码提供大家参考。都有注释就不一一解释了。本app采用上层的MediaCodec 和 MediaExtractor 将音频播放。步骤大概如下:1、开启线程2、将输入源给分离器Medi原创 2020-06-29 11:24:43 · 231 阅读 · 0 评论 -
Android中间层分析2.【media】音视频基础知识-10、Android自制简单音视频播放器
3、自制简单音视频播放器Android 音视频的代码好多都属于native层,Nupalyer和AweSomePlayer控制流程复杂, 学习难度比较大,作为app人员来说接触的机会又比较少,导致想学习知识的人门槛比较高。所以这边通过上层的控制,让大家慢慢熟悉播放器的原理。因此将非常简单的音视频播放器,拿出来练习,源码提供大家参考。本app采用上层的MediaCodec 、 MediaExtractor 将音视频播放,播放显示器采用常用的SurfaceView,声音输出采用AudioTrack,步原创 2020-06-30 09:01:10 · 175 阅读 · 0 评论 -
Android中间层分析2.【media】Android 音视频学习路线总结 --总纲目录
我们这篇开始一起研究Android多媒体的框架,有兴趣的同学可以和我们一起学习多媒体的内容。下面给出大概学习的路径也就是知识点,从简单的多媒体知识,到Android多媒体框架是一个渐进的过程。中间有些内容不一定会写,但是大概学习的思路是这样的,如果没有写道的请大家脑部下。Android media在android架构中比较重要的一个服务框架,用的是cpp写的,不同于ams、wms等,需要大家有c语言的基础。我们这里重点会介绍mediaplayerservice,当然也会涉及到媒体扫描和audiofling原创 2020-08-19 20:52:38 · 460 阅读 · 0 评论 -
Android中间层分析2.【media】Android 音视频播放流程-4.MediaPlayer的setDataSource流程
2.3.MediaPlayer的setDataSource流程上面已经讲了创建流程,已经讲本地的MediaPlayer创建好了,接下来就是给数据。比如给个"/sdcard/test.mp3"或者"/sdcard/test.mp4" 其实在上面来说流程是一样的,想想都知道应该是从:java-》jni-》本地Mediaplayer。2.3.1JAVA层[-->MediaPlayer.java] public void setDataSource(String path)原创 2020-08-19 20:35:29 · 971 阅读 · 0 评论 -
Android中间层分析2.【media】Android 音视频播放流程-3.MediaPlayer的创建
2.2.MediaPlayer的创建按照播放的流程我们先分析下MediaPlayer的创建[-->MediaPlayer.java]public class MediaPlayer extends PlayerBase{...private static native final void native_init();private native final void native_setup(Object mediaplayer_this);... static {原创 2020-08-19 20:33:04 · 304 阅读 · 0 评论 -
Android中间层分析2.【media】Android 音视频播放流程-2.nuplayer的启动
2.1启动上一章简介中讲到,Android7.0 在多媒体服务拆分成了多个进程,不在是以前的单个mediaserver进程。具体如下mediaservermedia.codecmedia.extractoraudioserver这些进程是管理那些服务,和那些进程相关联。我们一个个来看。2.1.1 mediaserver进程的启动我们直接来看下main_mediaserver.cpp文件[-->main_mediaserver.cpp]int main(int argc __原创 2020-08-19 20:31:32 · 416 阅读 · 0 评论 -
Android中间层分析2.【media】Android 音视频播放流程-1.简介
播放器原理以及基础知识相对应的Android播放器原理通过setDataSource 理解JAVA到Nuplayer层总结下从上层到Nupalyer都经过了哪些类。–>Mediaplayer.java–>android_media_MediaPlayer.cpp–>mediaplayer.cpp–>MediaPlayerService.cpp---->MediaPlayerFactory–>NuPlayerDirvier.cpp–>Nupla原创 2020-08-19 20:27:58 · 247 阅读 · 0 评论 -
MPEG-4 Audio 关于esds 记录
当解析Mp4的时候,会碰到这个esds 的box,这个box 有很多信息。 当时是为了解决在MP4A中如何判断是acc还是 MP3 然后找到下面答案 https://wiki.multimedia.cx/index.php?title=MPEG-4_Audio http://stackoverflow.com/questions/3987850/mp4-atom-how-to-discrim原创 2016-12-08 17:51:48 · 3128 阅读 · 0 评论