最近对音视频开发比较感兴趣,想做一个手机直播的Demo程序,大概功能是:手机摄像头采集视频,用FFmpeg编码、RTMP推流到流媒体服务器,另外一个手机可以拉流看到直播视频。看了很多资料,包括雷神的博客,在实际动手之前,先总结一下自己计划的学习路线。
一、FFmpeg学习
1.命令行方式,结合X264,对一个YUV数据编码,并用RTMP推送到服务器;
2.调用API接口编程方式,实现上述功能;
3.读取本地视频文件,解封装,推流;
二、流媒体服务器搭建
在Linux上用Nginx搭建一个服务器,支持RTMP服务;
三、Android客户端开发
1.APP开发,环境搭建,UI界面简陋一点也可以;
2.Camera相关的编程,获取摄像头数据;
3.FFmpeg移植到Android端;
4.NDK(JNI)方式调用之前编码、推流代码;
四、客户端拉流
1.先用VLC验证一下前面工作的完成情况;
2.Android端APP拉流,预览功能开发。
整个链路涉及的领域较多,不知道能做到什么程度,哈哈。先立一个Flag,争取年底完成。