普及下视频处理整体流程

  最近开始接触视频,总结下视频方面学到的知识。

首先我们的项目是直接与ipc通讯的(当然还有服务器),从通讯协议上说不是采用网上流行的rtsp协议,为什么不采用rstp协议,据说是rtsp协议不能穿越多到墙(我没有验证).那当前使用的协议为什么又能穿越多道墙呢?这又使用了那一协议。答案就是UPnP协议。仔细了解UPnP协议,才发现确实可以做到。因为一般的路由器都支持这个协议,无意中了解到UPnP协议的强大。

IPC端:

   我们的摄像头是如何捕捉视频的呢?其实很简单,采用了CMOS为主要的光感半导体。光线通过CMOS之类的半导体。产生高低电压,然后经过放大等一系列的处理(我只用一系列来说明,其实这里使用了很多的技术,我也不懂的技术)传输到网络上。当然包括了编码在内了,说到编码,我以H264为准。

 H264编码:

   是最新的编码格式,也可以叫MPEG-4. 这只是国际上两个组织各自的叫法。在H264编码技术上分为两层:视频编码 和网络提取层。

视频编码:

  视频编码上使用了很多的技术。在这里只介绍帧内预测编码和帧间预测编码,其实就是后面要说到的I帧,p帧,B帧。I帧一般称为关键帧,p帧就是根据i帧或者前一个p帧预测出来的帧,B帧没有主要作用。有兴趣的可以看下另一博客《h264检测I帧还是p帧》。帧内预测是压缩比不怎么高,其实就是对关键帧的压缩,可以这么理解:对于关键帧的图片来说能压缩的数据是很少的,因为都是唯一关键数据,重复的数据比较少。其编码就是提供了9种4x4像素宏块预测对一图片的预测。帧间预测压缩比就比较高了。以连续的前后两张图片为例:第二张图片在第一张图片上求出差异,只要有第一张图片全图和差异就能恢复出第二张图片来。依次类推第3,4,5张图片。所以说压缩比是比较高的。

网络提取层:

  说白就是对网络的处理。使之在不同的网络下都能正常运行,保证了视频数据与网络的无关性,增强了适配性。

视频流格式变换:

 从摄像头出来的数据一般都是RGB888的裸数据,经过H264编码后一般都会转化成YUV格式的数据。为什么转YUV格式,请看另一博客《视频YUV数据介绍》,然后通过网络传输,客户端接收到数据后根据逆向工程进行解码并显示。所以一条主线:RGB888-->H264编码-->YUV-->网络-->YUV(二进制数据转YUV)-->RGB->FFMPEG(h264解码)--》UIImage。客户端解码过程请看另一博客《IPCAM 视频数据解码并处理》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值