WangShuo的专栏

不积跬步,无以至千里;不积小流,无以成江海!

排序:
默认
按更新时间
按访问量

JNI高阶知识总结

JNI与NDK的关系NDK可以为我们生成了C/C++的动态链接库,JNI是java和C/C++沟通的接口,两者与android没有半毛钱关系,只因为安卓是java程序语言开发,然后通过JNI又能与C/C++沟通,所以我们可以使用NDK+JNI来实现“Java+C”的开发方式。JNIEnv与Java...

2017-05-08 12:24:31

阅读数:906

评论数:0

ffmpeg实战教程(五)libswscale,libavfilter实践指南

1.libswscale实现YUV转RGBlibswscale里面实现了各种图像像素格式的转换。libswscale使用起来很方便,最主要的函数只有3个: (1) sws_getContext():使用参数初始化SwsContext结构体。 (2) sws_scale(...

2017-05-05 16:59:18

阅读数:1518

评论数:0

ffmpeg实战教程(四)格式转换如MP4转MKV等

知识延伸:I,P,B帧和PTS,DTS的关系基本概念:I frame :帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。P frame:...

2017-05-05 10:37:47

阅读数:3368

评论数:0

ffmpeg实战教程(三)音频PCM采样为AAC,视频YUV编码为H264/HEVC

音频PCM采样数据编码为压缩码流(MP3,WMA,AAC等)简单介绍一下流程中各个函数的意义:av_register_all():注册FFmpeg所有编解码器。avformat_alloc_output_context2():初始化输出码流的AVFormatContext。avio_open():...

2017-05-04 20:28:15

阅读数:2392

评论数:0

ffmpeg实战教程(二)用SDL播放YUV,并结合ffmpeg实现简易播放器

我们先实现用SDL播放YUV数据先来了解一下基本概念SDL基本函数: [初始化] * SDL_Init(): 初始化SDL。 * SDL_CreateWindow(): 创建窗口(Window)。 * SDL_CreateRenderer(): 基于窗口创建渲染器(Render)。...

2017-05-04 15:33:08

阅读数:3401

评论数:0

ffmpeg实战教程(一)Mp4,mkv等格式解码为h264和yuv数据

FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。而网上对这些功能的使用大多是基于命令行的。这不利于我们深入学习定制化ffmpeg,今后我将写一系列的用代码实现这些功能的教程供大家学习。这系列的前部分我打算写在windows上的实现,后部分写移植到Android...

2017-05-04 12:16:41

阅读数:9614

评论数:8

ffmpeg源码简析(十二)FFMPEG中的主要结构体总结

FFMPEG中结构体很多。最关键的结构体可以分成以下几类:a) 解协议(http,rtsp,rtmp,mms)AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音频使用的封装格式。每种协议都对应...

2017-05-02 14:54:21

阅读数:738

评论数:0

android源码分析——事件输入流程MotionEvent事件处理流程

Input事件输入系统之应用MotionEvent触摸事件处理流程 输入事件一般分为KeyEvent按键事件,和MotionEvent触摸事件,也就是我们平时说的touch事件,事件的传递流程相当复杂庞大, 我们先暂时绕开那个庞大的系统来谈谈上层应用如何接收到MotionEvent事件然后处理...

2017-05-02 09:52:16

阅读数:976

评论数:0

细数Android5.0到Android7.X 多媒体技术新特性

Android 5.0 行为变更媒体播放如果您要实现显示媒体播放状态或传输控件的通知,请考虑使用新的 Notification.MediaStyle 模板,而不是自定义 RemoteViews.RemoteView 对象。无论您选择使用哪个方法,请务必将通知的可见性设为 VISIBILITY_PU...

2017-04-28 16:23:26

阅读数:3418

评论数:0

Android Multimedia实战(六)音频 MediaRecorder和AudioRecord录音与MediaPlayer和AudioTrack播放

录制声音MediaRecorder和AudioRecord 区别MediaRecorder和AudioRecord都可以录制音频,区别是MediaRecorder录制的音频文件是经过压缩后的,需要设置编码器。并且录制的音频文件可以用系统自带的Music播放器播放。 而AudioRecord录制的...

2017-04-28 15:25:23

阅读数:1338

评论数:0

Android Multimedia实战(五)MediaCodec编码解码实例解析

MediaCodec概述MediaCodec是一个Android原生的编解码器。 简单的来说,MediaCodec可以把摄像头采集的数据流编码为H264格式,这个过程是压缩过程。也可以把H264格式解码在surface类的控件上显示。我们先来看一下Android系统中解码器的命名,软解码器通常是...

2017-04-28 12:00:46

阅读数:2084

评论数:0

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

MediaProjection可以用来捕捉屏幕,具体来说可以截取当前屏幕和录制屏幕视频 (5.0以上)先总结下系统是如何实现组合键截屏的: 都应该知道Android源码中对按键的捕获位于文件PhoneWindowManager.java中 当满足按键条件时会用一个mHandler 开始pos...

2017-04-27 15:15:43

阅读数:3754

评论数:0

Camera源码解析之数据传递

MTK Camera HAL 层数据传递主要三模块:一:预览(StartPreview)二:拍照(TakePicture)三:回传(PreviewCallBack)一:预览(StartPreview)AP层下达预览指令后如何获取数据,数据是什么格式的,最后拿到数据后 是如何去预览,以下分为四部分...

2017-04-27 09:26:53

阅读数:497

评论数:0

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

上篇介绍了mp4parser合成视频功能:http://blog.csdn.net/king1425/article/details/70805960 ,这篇使用Android原生API实现视频的分离与合成MediaExtractors将视频多信道的分离出来,比如声音和图像分隔出来 1. J...

2017-04-26 20:59:09

阅读数:1325

评论数:0

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

1.MediaRecorder类介绍: MediaRecorder类是Android sdk提供的一个专门用于音视频录制,一般利用手机麦克风采集音频,摄像头采集图片信息。 MediaRecorder主要函数:setAudioChannels(int numChannels) 设置录制的音频通道数...

2017-04-26 16:00:10

阅读数:2679

评论数:0

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

在Android中,我们有四种方式来实现视频的播放: 1、使用其自带的播放器。指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型。2、使用VideoView来播放。在布局文件中使用VideoView结合MediaController来实现对其控制。3、使用Med...

2017-04-25 20:24:36

阅读数:3858

评论数:0

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

libavformatavformat.h 文件 定义识别文件格式和媒体类型库使用的宏、数据结构和函数,通常这些宏、数据结构和函数在此模块内相 对全局有效allformat.c 文件 简单的注册/初始化函数,把相应的协议,文件格式,解码器等用相应的链表串起来便于查找。cutils.c 文件...

2017-04-25 10:40:33

阅读数:699

评论数:0

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

libswscale是一个主要用于处理图片像素数据的类库。可以完成图片像素格式的转换,图片的拉伸等工作。 libswscale常用的函数数量很少,一般情况下就3个:sws_getContext():初始化一个SwsContext。sws_scale():处理图像数据。 sws_freeConte...

2017-04-25 09:46:01

阅读数:1355

评论数:1

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

1.av_log()av_log()是FFmpeg中输出日志的函数。随便打开一个FFmpeg的源代码文件,就会发现其中遍布着av_log()函数。一般情况下FFmpeg类库的源代码中是不允许使用printf()这种的函数的,所有的输出一律使用av_log()。 av_log()的声明位于liba...

2017-04-25 09:19:05

阅读数:674

评论数: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...

2017-04-24 20:42:13

阅读数:1101

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭