Android视频编解码 简述(1)

Android视频编解码 简述

简述

随着现在大屏幕的风潮来袭,出现了许多设备互联的需求,其中最重要的功能之一就是投屏功能,其次现在的app都离不开视频播放,这些功能的背后都少不了音视频编解码,我们这个章节就来了解一下编解码的一些知识。

首先我们先来说一下为什么需要编解码,其实主要目的就是为了减少视频的大小,试想如果我们有一个10242048分辨率的视频(手机屏幕的大小差不多这个量级),我们使用RGBA来编码,一个像素4个字节,那么一个图像就是2MB 4,就是8MB,就算一秒钟30帧,那么一秒钟视频就是240MB,一分钟就10+GB了,这个大小很夸张,而实际上我们一个1分钟的视频可能也就10M左右,这个就是因为编码大大压缩了视频的大小。

我们平时的视频播放或者投屏都是在服务端先将数据编码,然后通过信道(wifi)传输到客户端,客户端再解码显示。

编码为什么能做到这么大的压缩率呢

编码这么大的压缩率主要要依赖于视频的一些特性,一方面是单个图片可以压缩,单张图片其实有非常多的冗余信息,因为一个物体附近的颜色可能都非常相近,然后通过一些有损压缩压缩一些人眼不敏感的信息,可以将单张图片压缩到10%左右的大小(并不准确,需要依赖图片自身的特性),一张jepg图片可能就是200KB左右。

其次视频中连续的图片都有大量相似的内容,例如一个人在一个场景里走的视频,每一帧之间可能背景部分几乎是完全一样的,只有人的部分发生了位置偏移,所以可以参照一张图片,其他的图片都发送偏移信息,就是所谓的I帧。

涉及内容

本章会先介绍Android的编解码框架MediaCodec提供给app接口如何使用,会通过相机数据写一个demo。

然后会介绍一下MediaCodec的框架流程。

还有H264编码使用的一些原理。

后续可能会进一步研究软件编解码的原理,由于视频编解码的实现非常复杂,而且一般不是做编解码器的话也不需要去学习它的具体实现,对原理有一定了解即可,所以可能会把时间线放的很长~

相关推荐
深念Y18 小时前
RIO-UL00(EMUI 4.1 / Android 6.0.1 / arm64)开机自启动 sshd
android·linux·华为·安卓·chroot·sshd·emui
DogDaoDao7 天前
【H266/VVC提案解读】ITU-T H.274 (V4) 规范深度解读 — 视频编码 SEI 消息的全面演进
音视频·实时音视频·视频编解码·流媒体·h266·vvc·视频编解码标准
DogDaoDao8 天前
MSU 2026 视频编解码大赛放榜深度解读
音视频·视频编解码·hevc·av1·h266·msu·avs
DogDaoDao8 天前
NNVC-17.1 深度解析:神经网络视频编码的最新进展与性能全景
神经网络·音视频·视频编解码·h266·vvc·vtm·nnvc
DogDaoDao9 天前
H.266/VVC 双雄对决:VTM vs VVenC 深度对比分析
音视频·视频编解码·vvc·vtm·h.266·视频压缩·vvenc
Anhty9 天前
2026 实测 4 款 AI 变声器|QQ 聊天伪装声线,告别僵硬假声
人工智能·功能测试·ios·智能手机·安卓
Anhty14 天前
手机端叮咚变声器2026实测:功能表现、优缺点完整解析
功能测试·ios·智能手机·安卓
iReachers14 天前
HTML打包APK实现拍照、录像、录音和文件选择教程
html·安卓·相机·apk打包·麦克风
朝阳58115 天前
RunBeat 跑步节拍器 · 技术实现拆解
安卓
星花月16 天前
视频压缩为什么会变糊?从码率、分辨率到 H.264/H.265 的参数选择指南
ffmpeg·音视频·h.265·视频编解码·视频