Depth.Love Blog

GitHub:https://github.com/depthlove

0%

Part 1. 推流端

推流,就是将采集到的音频,视频数据通过流媒体协议发送到流媒体服务器。

一、选择流媒体协议

现在直播应用,采用 RTMP 协议居多,也有部分使用 HLS 协议。

采用RTMP协议,就要看下它与流媒体服务器交互的过程,RTMP协议的默认端口是1935,采用 TCP 协议。并且需要了解 FLV 的封装格式。

采用 HLS 协议,因为涉及到切片,延时会比较大,需要了解 TS 流。

阅读全文 »

该文的内容在我之前的文章中已经实现过,但是为了结构清晰起见,本文将相机控制和采集视频数据功能封装为单独的库。

iOS上使用AVFoundation.framework框架来调用系统相机并获取视频数据。视频数据可以根据设定的参数,可采集到RGB或YUV数据,一般使用的是GBRA32,420v,420f,下面演示相机的调用和视频数据的获取。

a)引入框架的头文件#import <AVFoundation/AVFoundation.h>

b)调用的类遵守协议AVCaptureVideoDataOutputSampleBufferDelegate

阅读全文 »

本人小硕一枚,科班出身,毕业后在公司做过iOS应用开发工程师,搞过iOS项目移植到flash、unity3d平台的开发,在流媒体行业内实力不错的公司做过播放器开发工程师,现在在一家互联网公司做音视频编解码工程师。

以前,就想着把自己实战经历过的项目经验总结并分享下,个人觉得在分享的过程中,会加深对知识点和技术的认识,同时也能帮助下一些人。值得开心的是,去年4月份左右,具体时间记不得请了,北京的一家做游戏应用内支付的公司的iOS工程师看到我的博客园博客后,联系我寻求iOS项目移植到flash平台的帮助。经过半个月时间与我沟通,项目移植成功上线了。在小型互联网公司,工程师可谓是孤军奋战。分享自己所学和经历是一件很兴奋,很开心的事。

阅读全文 »