1、通过Boardwayjs 和speexjs来解析音视频数据;
2、通过webgl或者rgb渲染画面,AudioContext播放声音。
对于直播APP开发商来讲,直播APP的功能实现和用户体验是非常重要的部分,功能模块的实现会直接影响用户的体验感,那么直播的模块是怎样划分的呢?
视频录制端:一般是电脑上的音视频输入设备或者手机端的摄像头或者麦克风,目前以移动端的手机视频为主。技术:webRTC(用途:H5视频录制)
视频播放端:可以是电脑上的播放器,手机端的Native播放器,还有就是H5的video标签等,目前还是已手机端的Native播放器为主。技术:HLS协议或RTMP协议(用途:视频播放)、ffmpeg(用途:使用RTMP协议时进行移动端视频解码)
视频服务器端:一般是一台nginx服务器,用来接受视频录制端提供的视频源,同时提供给视频播放端流服务。技术:RTMP协议(用途:上传视频流)、nginxrtmp-mole或SRS(simple-rtmp-server)(用途:流服务器)
如果要算服务器所需要下行带宽,需要知道视频直播码率。一般720P的话,码率在1-2M,10路直播源需要10-20M的下行带宽。如果要看需要多少上行带宽,那要看有多少人同时看你的这10路直播。码率 x 同时观看人数。自己写解码264文件,如果用view显示,就需要转成bitmap显示,或者使用opengl可以显示yuv数据
如果已经保存成MP4格式的文件,就不需要解码了,通过mediaplayer就能播
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)