美文网首页
基于Android和iOS视频会议及监控系统

基于Android和iOS视频会议及监控系统

作者: newjourney2018 | 来源:发表于2018-07-26 00:57 被阅读0次

        一直想学习实时视频聊天的技术,虽然到现在也没有完全搞明白各种编码格式,但搞清楚怎怎么编解码H264视频,怎么编解码AAC格式音频就够了,就能实现一个最基本的视频聊天/会议系统。什么RTMP,HLS统统可以不管他,不过,不管的前提是你得自己封装视音频流。由于固执的认为只有本地化编解码才是效率最高的,所以没有打算使用ffmpeg来编解码,虽然ffmpeg在iOS上已经使用硬编码了。当然,如果在windows上开发,ffmpeg会简单一些,也可以使用x264和AAC的独立库。视音频流准确说说应该是视音频帧,中间是分割好的一段段数据。

        从相机采集视频帧->调整单帧相片编码格式->编码成H264视频帧->发送到服务器->服务器转发到对端->对端接收数据->解码并显示

        从麦克风采集音频->编码成AAC->发送到服务器->服务器转发到对端->对端接收数据->解码并播放

        从相机采集视频:具体代码不贴了,到处都是。

        调整单帧相片编码格式 :有些Android相机输出的照片格式是YV12格式,而MediaCodec需要的是NV12格式,所以需要转换,转换代码如下:

public byte[] YV12toYUV420PackedSemiPlanar(final byte[] input, final  byte[] output, final int width, final int height) {

    finalint frameSize = width * height;

    finalint qFrameSize = frameSize / 4;

    System.arraycopy(input, 0, output, 0, frameSize);// Y                                                                                                     

    for (int i = 0; i < qFrameSize; i++) {

        output[alignedFrameSize + i * 2] = input[frameSize + i + qFrameSize];// Cb (U)                                                                       

        output[alignedFrameSize + i * 2 + 1] = input[frameSize + i];// Cr (V)                                                                                 

    }

    return output;

}

这个地方注意,真正用在产品里需要使用openGLES来转码,CPU转码效率太低。

        编码成H264视频帧:Android编码使用MediaCodec,iOS编码使用VideoToolBox。具体代码参考度娘。

        发送到服务器:传输协议使用自定义协议,为了代码通用性,使用标准TCP socket C实现底层通信框架,兼容Windows,Linux,Android,iOS。

        服务器转发到对端:服务器是在Linux C socket实现,理论上只要CPU,内存,网络带宽足够,可并发千万用户同时在线。

        对端接收数据:接收数据也是使用标准TCP socket C实现。

        解码并显示:Android解码使用MediaCodec,iOS解码使用VideoToolBox。具体代码参考度娘。

        音频采集传输和视频一样。


00018

相关文章

  • 基于Android和iOS视频会议及监控系统

    一直想学习实时视频聊天的技术,虽然到现在也没有完全搞明白各种编码格式,但搞清楚怎怎么编解码H264视频,怎...

  • iOS通过runloop监控卡顿

    质量监控-卡顿检测iOS实时卡顿监控基于Runloop简单监测iOS卡顿的demo微信iOS卡顿监控系统iOS-R...

  • 智慧展馆智能集中控制系统

    沃利创意开发的“展厅智能集中控制系统”是基于Apple IOS及Android平台开发的多种操作控制及运用管理系统...

  • Android平台架构

    参考文章:平台架构Android的前世今生Android 系统架构和应用组件那些事iOS基于Unix安卓基于Lin...

  • 隐私政策

    OneNote隐私政策 序言 OneNote(以下简称“本款产品”)是基于Android(安卓)系统、iOS系统的...

  • 泉州电话交换机

    ◆★◆厦门电话营销系统,厦门系统集成,福建视频会议,厦门弱电工程,福建监控◆★◆ --------------- ...

  • 监控系统数据中心机房类型和维护

    监控系统数据中心机房监控系统也可以称为“自我监控系统”,主要是针对机房所有的设备及环境进行集中监控和管理的,其监控...

  • Android 沉浸式状态栏 +DrawerLayout+To

    概述 Android 状态栏沉浸式基于4.4及以上, Android 系统名字、版本、API level的对应关系...

  • 本司监控报警现状

    监控报警现状本司是基于open falcon进行监控报警 系统资源监控:cpu、mem、io等,都有这些监控和报警...

  • 移动设备操作系统

    IOS Android (基于 Linux)

网友评论

      本文标题:基于Android和iOS视频会议及监控系统

      本文链接:https://www.haomeiwen.com/subject/tukqtftx.html