Andriod视频采集
在Android端通过摄像头可以采集到视频数据,通过
parameters.setPreviewFormat(ImageFormat.NV21)
通过adb logcat -s jw可以查看支持的格式,一般是NV21,YV12
可以指定视频的格式!
采集完成后的数据buffer就可以传到JNI层,进行格式转换以及编码!
NV,YUV格式转换
Android端采集完成的数据是NV21的,需要转换成YUV420P后,进行H.264编码!
NV21与YUV420P都是属于YUV420格式,每四个Y共用一组UV分量,区别是UV分量的空间排列不同,因此只需要将NV21的UV调换成YUV的VU即可!
H.264编码
预设参数
关于H.264编码,我们可以参照源码里面的example.c!首先需要设置相关的参数,然后再进行编码!
主要调用的几个函数:
x264_param_default_preset 设置
x264_param_apply_profile 设置档次
x264_picture_alloc(x264_picture_t输入图像)初始化
x264_encoder_open 打开编码器
x264_encoder_encode 编码
x264_encoder_close( h ) 关闭编码器,释放资源
开始编码
调用x264_encoder_encode开始编码得到一系列的NALU!
在