Android MediaCodec编码camera NV21数据

本文介绍了如何在Android中利用MediaCodec对从Camera获取的NV21格式视频数据进行编码,详细阐述了参数设置,如30fps帧率、1280 x 720分辨率和特定的比特率,并讲解了NV21到NV12的数据转换过程。
摘要由CSDN通过智能技术生成

视频编码

说明:
使用MediaCodec对由Camera采集的数据进行编码

1.采集视频数据
参数设置:
帧率:30fps
视频size:1280 x 720
视频比特率:1280 x 720 x 2

mCameraId = if(cameraType == TYPE_FRONT) Camera.CameraInfo.CAMERA_FACING_FRONT else Camera.CameraInfo.CAMERA_FACING_BACK
mCamera = Camera.open(mCameraId)
val params = mCamera?.parameters
//设置nv21格式
params?.previewFormat = ImageFormat.NV21

val videoSizes = params?.supportedVideoSizes
val videoSize = videoSizes?.let {
    chooseVideoSize(it) }
mVideoSize = videoSize
//设置预览视频size
params?.setPreviewSize(videoSize?.width!!, videoSize.height)
//设置帧率,此处需要乘以1000
params?.setPreviewFpsRange(mFrameRate * 1000, mFrameRate * 1000)
mCamera?.parameters = params

mCamera?.setPreviewCallback(mPreviewCallback)
mCamera?.setErrorCallback(mErrorCallback)

//设置camera预览角度
val orientation = mContext.resources.configuration.orientation
if(orientation == Configuration.ORIENTATION_LANDSCAPE){
   
    mCamera?.setDisplayOrientation(0)
}else{
   
    mCamera?.setDi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值