做移动视频直播应用的思路
2016-04-29 00:25
169 查看
做移动视频直播应用的思路
学习自前辈@卢_俊 微博 http://weibo.com/lujunblog# 思路步骤参考
调用 Camera API 实现取前置/后置摄像头的画面并提供预览和控制功能;调用 MediaCodec API 对 Camera 预览的 YUV 图像进行硬编码,将编码后的文件存到本地(自己定义一些帧头格式,后面自己来解析,也可以考虑存为 MP4 或者其他格式);
读取上面录下来的文件,一帧一帧解析,调用 MediaCodec API 进行解码并显示出来;
以上是是视频录制和解码播放。
搭建一个简单的后端 Socket 服务器,自己定义一些通信协议;
在 Android 端实现 Socket 客户端,做到能把录下来的视频文件发送到服务器保存起来,也能从服务器请求指定的视频文件,接收并解码播放;
这一步,是最重要的一步,为了提供更流畅的视频直播效果,需要在服务器的实现、流媒体协议的设计与应用、CDN、云存储等等许多方面进行考虑和优化。到这一步你基本上实现了类似微信短视频功能,但不是实时。
做实时传输,不存文件,直接将编码后的视频数据传输到服务器,服务器将码流转发给参与直播的客户端。
# 名词解释
码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也就码率,是视频编码中画面质量控制中最重要的部分。同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越好。多码流技术是通过在编码过程中同时产生多种不同码流及分辨率的流媒体数据,根据用户实际网络带宽条件为之自动分配相对最佳解码画质的解决方案。# 参考
Android MediaCodec小结Android 用 MediaCodec 实现视频硬解码
MediaCodec - Android SDK | Android Developers
图文详解YUV420数据格式
Android Yuv图像转jpg方法
相关文章推荐
- 第一篇CSDN博客
- wxPython安装
- DOSBox运行TT
- Linux 配置启动模式-命令行界面
- 知问前端——对话框UI(一)
- 字符串操作——课堂笔记
- windows下单机版伪分布式solrcloud搭建(solr-4.9.1+apache-tomcat-7.0.68+zookeeper-3.4.8)
- 《去大理》
- Echarts 后台交互
- 3~4月学习小结
- 详细分析SOA的十大设计原则
- java上机。。。包。。。
- presentViewController 方法中实现半透明背景效果
- 曾经的你
- Launching Spring application Address already in use
- Android Studio 模板用法与自定义模板
- Windows Server 2008 R2 IIS7 搭建PHP环境
- 计蒜课--非递归二叉树的遍历
- Windows Server 2008 R2 IIS7 搭建PHP环境
- Android Studio利用Gradle进行NDK开发