Android Multimedia实战(四)MediaProjection实现截图,与MediaMuxer实现录屏为MP4,Gif格式

MediaProjection可以用来捕捉屏幕,具体来说可以截取当前屏幕和录制屏幕视频 (5.0以上)先总结下系统是如何实现组合键截屏的: 都应该知道Android源码中对按键的捕获位于文件PhoneWindowManager.java中 当满足按键条件时会用一个mHandler 开始post一个runnable,进入这个runnable中执行takeScreenshot()方法。使用AIDL...
阅读(1446) 评论(0)

Camera源码解析之数据传递

MTK Camera HAL 层数据传递主要三模块:一:预览(StartPreview)二:拍照(TakePicture)三:回传(PreviewCallBack)一:预览(StartPreview)AP层下达预览指令后如何获取数据,数据是什么格式的,最后拿到数据后 是如何去预览,以下分为四部分解析预览数据流程1 :AP 层到HAL 层流程及获取数据参数 AP层下达startPreview后调到...
阅读(394) 评论(0)

Android Multimedia实战(三)基于MediaExtractors与MediaMuxer的视频分离与合成

上篇介绍了mp4parser合成视频功能:http://blog.csdn.net/king1425/article/details/70805960 ,这篇使用Android原生API实现视频的分离与合成MediaExtractors将视频多信道的分离出来,比如声音和图像分隔出来 1. JAVA层file: frameworks/base/media/Java/Android/media/M...
阅读(888) 评论(0)

Android Multimedia实战(二)使用MediaRecorder实现分段录制视频,mp4parser合成视频功能

1.MediaRecorder类介绍: MediaRecorder类是Android sdk提供的一个专门用于音视频录制,一般利用手机麦克风采集音频,摄像头采集图片信息。 MediaRecorder主要函数:setAudioChannels(int numChannels) 设置录制的音频通道数setAudioEncoder(int audio_encoder) 设置audio的编码格式setAu...
阅读(1641) 评论(0)

android Multimedia实战(一)详解SurfaceView,TextureView之播放视频的四种方式

在Android中,我们有四种方式来实现视频的播放: 1、使用其自带的播放器。指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型。2、使用VideoView来播放。在布局文件中使用VideoView结合MediaController来实现对其控制。3、使用MediaPlayer类和SurfaceView来实现,这种方式很灵活。4、使用MediaPlayer类和Te...
阅读(2397) 评论(0)

ffmpeg源码简析(十一)libavformat,libavcodec,libavutil

libavformatavformat.h 文件 定义识别文件格式和媒体类型库使用的宏、数据结构和函数,通常这些宏、数据结构和函数在此模块内相 对全局有效allformat.c 文件 简单的注册/初始化函数,把相应的协议,文件格式,解码器等用相应的链表串起来便于查找。cutils.c 文件 文件格式分析模块使用的两个工具类函数,都是对字符串的操作。file.c 把 file 当做类似...
阅读(518) 评论(0)

ffmpeg源码简析(十)libswscale中的SwsContext,sws_scale()

libswscale是一个主要用于处理图片像素数据的类库。可以完成图片像素格式的转换,图片的拉伸等工作。 libswscale常用的函数数量很少,一般情况下就3个:sws_getContext():初始化一个SwsContext。sws_scale():处理图像数据。 sws_freeContext():释放一个SwsContext。 其中sws_getContext()也可以用sws_getCa...
阅读(914) 评论(1)

ffmpeg源码简析(九)av_log(),AVClass,AVOption

1.av_log()av_log()是FFmpeg中输出日志的函数。随便打开一个FFmpeg的源代码文件,就会发现其中遍布着av_log()函数。一般情况下FFmpeg类库的源代码中是不允许使用printf()这种的函数的,所有的输出一律使用av_log()。 av_log()的声明位于libavutil\log.h,如下所示。void av_log(void *avcl, int level,...
阅读(488) 评论(0)

ffmpeg源码简析(八)解码 av_read_frame(),avcodec_decode_video2(),avformat_close_input()

1.av_read_frame()av_read_frame()的作用是读取码流中的音频若干帧或者视频一帧。例如,解码视频的时候,每解码一个视频帧,需要先调用 av_read_frame()获得一帧视频的压缩数据,然后才能对该数据进行解码(例如H.264中一帧压缩数据通常对应一个NAL)。通过av_read_packet(***),读取一个包,需要说明的是此函数必须是包含整数帧的,不存在半帧的情况,...
阅读(817) 评论(0)

ffmpeg源码简析(七)解码-avformat_open_input,avformat_find_stream_info()

1.avformat_open_input打开媒体的的过程开始于avformat_open_input,因此该函数的重要性不可忽视。在该函数中,FFMPEG完成了:输入输出结构体AVIOContext的初始化;输入数据的协议(例如RTMP,或者file)的识别(通过一套评分机制):1判断文件名的后缀 2读取文件头的数据进行比对;使用获得最高分的文件协议对应的URLProtocol,通过函数指针的方式...
阅读(847) 评论(0)

ffmpeg源码简析(六)编码-av_write_frame(),av_write_trailer()

1.av_write_frame()av_write_frame()用于输出一帧视音频数据,它的声明位于libavformat\avformat.h,如下所示。int av_write_frame(AVFormatContext *s, AVPacket *pkt); 简单解释一下它的参数的含义: s:用于输出的AVFormatContext。 pkt:等待输出的AVPacket。函数...
阅读(494) 评论(0)

ffmpeg源码简析(五)编码——avformat_alloc_output_context2(),avcodec_encode_video2()

1.avformat_alloc_output_context2()在基于FFmpeg的视音频编码器程序中,该函数通常是第一个调用的函数(除了组件注册函数av_register_all())。avformat_alloc_output_context2()函数可以初始化一个用于输出的AVFormatContext结构体。它的声明位于libavformat\avformat.h,如下所示。int av...
阅读(488) 评论(0)

ffmpeg源码简析(四)avcodec_find_encoder(),avcodec_open2(),avcodec_close()

avcodec_find_encoder()和avcodec_find_decoder()avcodec_find_encoder()用于查找FFmpeg的编码器,avcodec_find_decoder()用于查找FFmpeg的解码器。 avcodec_find_encoder()的声明位于libavcodec\avcodec.havcodec_find_encoder()的源代码位于libav...
阅读(487) 评论(0)

ffmpeg源码简析(三)av_malloc(),AVIOContext,AVFrame,avio_open2()等

内存操作的常见函数位于libavutil\mem.cav_malloc()av_malloc()是FFmpeg中最常见的内存分配函数。av_malloc()的代码可以简化成如下形式。void *av_malloc(size_t size) { void *ptr = NULL; /* let's disallow possibly ambiguous cases */...
阅读(640) 评论(0)

ffmpeg源码简析(二)av_register_all(),avcodec_register_all()

av_register_all()该函数在所有基于ffmpeg的应用程序中几乎都是第一个被调用的。只有调用了该函数,才能使用复用器,编码器等。av_register_all()调用了avcodec_register_all()。avcodec_register_all()注册了和编解码器有关的组件:硬件加速器,解码器,编码器,Parser,Bitstream Filter。av_register_a...
阅读(889) 评论(1)
132条 共9页首页 上一页 1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:139279次
    • 积分:2760
    • 等级:
    • 排名:第14430名
    • 原创:130篇
    • 转载:2篇
    • 译文:0篇
    • 评论:99条
    联系方式
    博客专栏
    最新评论