一:富媒体时代FFmpeg视频处理技术
手机录屏放到PC上看一般角度都不对:ffmpeg
1.获取视频的旋转角度
2.根据旋转角度来调整视频
3.根据大小,比特率来压缩视频
4.给视频加水印
https://www.bilibili.com/video/av6474374/?from=search&seid=1500047667389730188
二.Android ndk图片处理
图片的美白等效果的处理C/C++的效率远高于java
https://www.bilibili.com/video/av8885666/?from=search&seid=960408721895128881
三. 视频直播核心技术_FFmpeg视频解码与NDK原生绘制
1.解码3兆大小的flv为460兆的yuv文件,
2.直接通过NDK原生绘制的方法绘制到手机屏幕上
https://www.bilibili.com/video/av6475173/?from=search&seid=960408721895128881
https://www.bilibili.com/video/av8531822/?from=search&seid=960408721895128881
四:NDK音频拼接与音频混合
1.通过ffmpeg来拼接两个mp3文件
2.通过ffmpeg来音频混合两个mp3文件
https://www.bilibili.com/video/av6607515/?from=search&seid=960408721895128881
五:视频通话核心技术
http://www.iqiyi.com/w_19ru838x4t.html
1.音视频采集(麦克风<音频采样数据:pcm>,相机<视频像素数据:YUV420p>)
音频:点击开始之后就回去开一个子线程开启audiorecord.startrecord(),然后audiorecord.read(buffer,0,buffer.length)来读取音频采样数据,然后传给ndk进行编码
视频:打开相机,通过预览方式,每预览一帧画面,通过回调获取预览的视频像素数据,然后给到ndk层进行编码
2.音视频编码
H264是一个编码标准,有多个实现方式:x264开源库专门用来做H264的编码
NALU单元:一段视频是由若干个nalu单元组成,一个nalu结构体如下:
起始位 header payload(真正的数据集)
每一帧画面编码完了之后得到一个的nalu单元的数组,对每一个NALU单元进行处理组装成rtmppacket放入队列中
编码完了之后放到一个队列里面rtmppacket,开启一个rtmp推流线程从这个队列中拉取rtmp协议包,发送到流媒体服务器上
3.推流(rtmp协议(rtmpdump库),底层是socket)
4.拉流:客户端
五:性能优化之内存泄露
https://www.bilibili.com/video/av7657774/?from=search&seid=10727244930271376111
六:安卓电量性能优化
https://www.bilibili.com/video/av6474707/?from=search&seid=10727244930271376111
七:mvp架构设计与性能优化
九:百度网盘客户端