android直播学习:软编码+硬编码+rtmp推流视音频
来源:互联网 发布:mac文件夹预览图片 编辑:程序博客网 时间:2024/05/29 15:43
最近在自学视音频方面的知识,感谢雷神的博客,愿雷神一路组好
雷神博客连接:http://my.csdn.net/leixiaohua1020
本项目地址(含源码):https://github.com/dengzhi00/Live_Rtmp2
初学者,项目没做具体优化,欢迎大家交流学习(也欢迎大家start)
项目结构:
项目包含三大模块:
livecollector模块:视音频采集模块 LiveVideoGet:视频采集类 LiveAudioGet:音频采集类 LiveVideoEncode:视频编码nv21转yuv420p,视频硬编码,视频90度旋转算法 LiveAudioEncode:音频硬编码类 LiveEncode:视音频采集参数编码控制类 LiveRop:参数控制,数据回调类
livepush模块:视音频编码推流模块,视频编码:x264编码;音频编码:faac编码;推流:rtmp推流
liveffmpeg模块:ffmpeg编码推流模块,ffmpeg正在学习中,此模块将持续更新…
app模块:测试demo
视频采集
anroid视频采集采用Camare类
采集方法详见项目LiveVideoGet类:
源数据获取:
采集的码流格式是nv21格式
具体格式是:
Y Y Y Y
Y Y Y Y
Y Y Y Y
Y Y Y Y
V U
V U
V U
V U
转换成yuv420sp格式:
Y Y Y Y
Y Y Y Y
Y Y Y Y
Y Y Y Y
u v
u v
u v
u v
代码:
视频编码
详见项目LiveVideoEncode类:
硬编码:
初始化编码器
注:
此视频源数据为旋转90度数据,后置摄像头逆时针旋转,前置摄像头顺时针旋转,
故初始化编码器时将编码器宽高交换位置:
MediaFormat format = MediaFormat.createVideoFormat(MediaFormat.MIMETYPE_VIDEO_AVC, height,width);
软编吗:详见livepush模块
cpp下Stream.cpp文件,注释都在
- android直播学习:软编码+硬编码+rtmp推流视音频
- 音频AAC编码的RTMP直播
- 音频AAC编码的RTMP直播
- 音频AAC编码的RTMP直播
- Android音频AAC硬编码
- iOS RTMP 视频直播开发笔记(5)- iOS H.264 实时硬编码实现原理
- iOS RTMP 视频直播开发笔记(5)- iOS H.264 实时硬编码实现原理
- iOS RTMP 视频直播开发笔记(5)------- iOS H.264 实时硬编码实现原理
- iOS RTMP 视频直播开发笔记(5)------- iOS H.264 实时硬编码实现原理
- 【Android】使用MediaCodec硬编码实现视频直播推流端(一)
- 【Android】使用MediaCodec硬编码实现视频直播推流端(一)
- 【Android】使用MediaCodec硬编码实现视频直播推流端(一)
- 【Android】使用MediaCodec硬编码实现视频直播推流端(一)
- Android硬编码——音频编码、视频编码及音视频混合
- Android硬编码——音频编码、视频编码及音视频混合
- Android硬编码——音频编码、视频编码及音视频混合
- Android硬编码——音频编码、视频编码及音视频混合
- Android硬编码——音频编码、视频编码及音视频混合
- 51nod 1076 2条不相交的路径(Tarjan,边双连通分量)
- 机器人AI的制作
- Android消息推送之自启动
- MFC对话框可拖动化
- c语言中的#ifndef、#def、#endif等宏是什么意思
- android直播学习:软编码+硬编码+rtmp推流视音频
- Noip2016 天天爱跑步【LCA】【差分】
- 移动端开发踩坑日记——安卓4.4.2不触发touchend事件
- 全面升级Android面试之Content Provider面试题集
- 使用dialog导致内存泄露的问题
- OSI参考模型和TCP/IP体系结构
- SSM---分页
- 一个前端刚入门的小白的独白
- windows10 home edition 連AD共享盤的方法