前言

现在大大小小的公司,甚至个人开发者,都想开发自己的直播网站或App,本文会帮你理清,开发视频直播平台,你需要注意哪些技术要点。

开源WebRTC能做实时视频直播吗?

你以为调用几个Chrome的API就能直播了?

WebRTC用的不是插件,是Chrome自带的功能,是原生js的API,也没有什么浏览器自带的插件。获取图像信源之后不应该用websocket发送图像数据,而是直接用WebRTC的通信相关API发送图像和声音(这套API是同时支持图像和声音的)数据。

最后:如果按照这个方法折腾完了,你认为会得到什么结果呢?1人广播,39人收看,在一台i3 + 4G + Centos6.4 mini的机器上跑MCU,连续运行48小时没有出现问题,CPU的使用率大概在60%左右。跟现在动辄上十万的直播相比,是不是弱爆了。

所以,别迷信 WebRTC,WebRTC只适合小范围(8人以内)音视频会议,不适合做直播。

开发实时视频直播需要哪些技术?

自负前端开发人员会以为:“熟悉HTML5、1个人大约7个工作日内就可以开发出来了”。面对这样的想法,只有一句话:少年,谦虚点。

如果你天赋异禀,一个人解决了以上技术问题。那么,你还需要解决传输问题。传输好坏,也就是视频是否延迟、卡顿,取决于网络条件好坏。而公共互利网复杂的网络环境就不用说了吧。在家玩游戏不卡,看视频就卡。聊QQ斗地主无压力,看视频就卡。这怎么办?

公众号推荐:

解决办法有3种:

  • 用CDN加速;

  • 花钱自己架服务器;

  • 或者用别人的云服务。

视频信号从现场出发,到达分散在全国各地的观众,需要经过数据中心和各级节点的缓存加速,一路上马不停蹄,可以和杨贵妃的荔枝媲美。而信号在一路上各个环节所需要的时间总和,就是你看到的延迟。

用CDN加速,可以尽量减少延迟。目前业内水准来看,视频延迟都在3-6秒之间。也就是在视频直播时,你看到的是几秒以前的画面。

自己架服务器,如果你部署的数据中心不够多,那么遇上跨网、跨省的传输,还是得用CDN加速。那么为了尽可能降低延迟,你就需要在全国各省市都部署数据中心,来解决跨网、跨省的传输。这种解决方案,相较CDN,非常昂贵。

用云服务的话,就是别人把服务器给你架好了,你只要傻瓜式的用就行了。为防止广告嫌疑,有关实时直播云,现在有很多服务商提供这一块,具体情况请自行了解哦。

当然,不管用哪种方式,请综合权衡利弊,找到适合自已的方案就是最好的方案。

下面,开始讲,视频直播的究竟需要哪些环节,应该如何处理?

开发实时视频直播的流程是什么?

- 前期处理:现在直播美颜已经是标配了,80%的主播没有美颜根本没法看。美颜算法需要懂图像处理算法的人,没有好的开源实现,要自己参考论文去研究。算法设计好了还要优化,无论你打算用CPU还是GPU优化,算法优化本身也需要专业知识支持。GPU虽然性能好,但是也是有功耗的。GPU占用太高会导致手机发烫,而手机发烫会导致摄像头采集掉帧,iPhone6尤其明显。因为iPhone6的CPU和前置摄像头很近,在算法开发、算法优化、效果平衡上需要大量的开发调试工作。而这一切都是需要经验支撑。

- 编码:如果你要上720p,肯定要采用硬编码。软编码720p完全没希望,硬件编码不灵活。兼容性也有问题。如何适应纷繁复杂的网络和纷繁复杂的上下行设备?安卓和芯片的坑,开发过的人都知道。那有人问,要求不高,上软编码低分辨率360p行不行?就算上低分辨率,软编码还是会让CPU发烫,CPU过热烫到摄像头,长期发烫不仅直接反应是费电。既然是手机直播,插着电源和充电器实在说不过去吧。还有,CPU发烫会降频,怎么办?这还是只说性能方面。和前处理只影响图像质量和功耗不同,视频编解码技术还关联成本计算和网络对抗。考虑性能、功耗、成本、网络这四个之后你编码的码率、帧率、分辨率。软硬件开发该如何选择?

公众号推荐:

- 传输:自己做不现实,交给第三方服务商吧。

- 解码:如果你用硬解码,一定要做容错处理,一定要做适配。突然一个crash导致手机重启不好吧。安卓的硬解码,不说了。如果你加了网络目前手机的硬解码还不一定支撑用软解码,功耗发热的问题又来了。

- 渲染:为什么手机明明解码出好多帧数据。就是渲染不出来。为什么画面就是不同步。

好了,以为完了吧?

还有音频呢。mic资源被抢占怎么办?为什么录音线程老是出问题?音频的前处理更复杂。什么时候开启三A引擎噪声抑制?回声消除?增益控制?为什么AAC比Opus质量好?什么是aac,he-aac,heaacv2?如何选择?要不要加混响?播放和录音模式该如何选择?如果你想互动回声消除就要适配N多机型。

以上是媒体模块,还有信令控制,登录、鉴权、权限管理、状态管理等等,各种应用服务,消息推送,聊天,礼物系统,支付系统,运营支持系统,统计系统等。

后台还有数据库,缓存,分布式文件存储,消息队列,运维系统等。

小结

以上技术要点的小结,确实能说明开发一个能用于生产环境的实时视频直播平台确非易事,跟IM里传统的实时音视频一样,这样的技术都是音视频编解码+网络传输技术的综合应用体,没有一定的技术积累,确实有很多坎需要迈过去。。。

浅谈开发实时视频直播平台的技术要点相关推荐

  1. 开发实时视频直播平台的技术要点

    该篇文章转自:http://www.52im.net/thread-475-1-1.html 主要列举了实现视频直播平台过程中的技术要点和难点.阅读长长见识. -------------------- ...

  2. 实时视频直播平台的技术要点详解

    现在大大小小的公司,甚至个人开发者,都想开发自己的直播网站或App,本文会帮你理清,开发视频直播平台,你需要注意哪些技术要点. 开源WebRTC能做实时视频直播吗? 你以为调用几个Chrome的API ...

  3. 浅谈即时通讯开发之实时视频直播平台如何开发

    现在大大小小的公司,甚至个人开发者,都想开发自己的直播网站或App,本文会帮你理清,开发视频直播平台,你需要注意哪些技术要点. 你以为调用几个Chrome的API就能直播了? WebRTC用的不是插件 ...

  4. 浅谈互联网时代下融媒技术现状

    浅谈互联网时代下融媒技术现状 摘要:近年来,我国数字技术的迅速发展使得媒体技术在"互联网+"时代下不断发展融合,形成了如今的融合媒体技术.新兴融媒技术的发展给广播电视行业带来了新的 ...

  5. 浅谈视频监控管理平台现状及发展趋势

    浅谈视频监控管理平台现状及发展趋势 以前,一提起视频监控系统,不少人马上就想到各式各样的球机.枪机等摄像头或者电视墙.专业键盘这些用户端设备,或者会想到各式各样的矩阵.DVR产品.而最为核心的视频监控 ...

  6. 浅谈基于软交换的下一代网络技术

    浅谈基于软交换的下一代网络技术 随着产业界的融合趋势,电话网.计算机网.有线电视网趋于融合,网络面临的负荷在不断增大,业务需求也趋于多样化,运营商必须提供越来越多的多媒体业务才能吸引住用户,如何建设一 ...

  7. 浅谈数字媒体艺术中的技术应用-3-工具介绍(二)

    上一篇文章介绍了数据可视化工具Processing和OpenFrameWorks,以及开源电子硬件Arduino和RaspberryPI.这一篇继续把剩下的几个工具进行逐一的介绍. 商用游戏引擎:Un ...

  8. 浅谈互联网金融测试平台规划

    浅谈互联网金融测试平台规划 最近,测试团队的测试平台逐渐成型,记得16年我刚来公司时做的一个规划,打算将测试平台建设起来,谈谈自己的一些理解和体会,算是事后为这个事情的一种复盘:最早测试平台规划时,我 ...

  9. 直播源码开发视频直播平台,不得不了解的流程...

    随着直播行业的不断发展,直播平台市场已基本稳定,诸如斗鱼.虎牙等头部直播平台都已选择上市之路.如今开发视频直播平台还有市场吗?答案是"有".现在的视频直播平台在垂直细分领域的发展越 ...

最新文章

  1. 基于Matlab的声波信号处理,基于声卡和Matlab平台的语音信号增强处理系统
  2. Cisco交换机密码恢复
  3. 使用Spring Security 3.1保护RESTful Web服务,第3部分
  4. A Simple Note on P4FPGA: A Rapid Prototyping Framework for P4
  5. day43,使用朋友pyMySQL连接数据库
  6. Hibernate学习之createSQLQuery与createQuery的区别及使用
  7. 华为 P40 或首发鸿蒙系统;新 iPhone Logo 移至中间;React 组件库 uiw 3.4.0 发布 | 极客头条​...
  8. datagridview表中插入一行_excel表格技巧:Ctrl+T在超级表中的妙用
  9. 如何卸载红蜘蛛多媒体网络教室软件
  10. suse linux 使用教程,suse linux 命令教程
  11. Nsight Compute 使用
  12. java判断 港(澳)台大陆身份证校验
  13. 路由汇总与路由聚合的区别
  14. 联通屏蔽80端口后利用NAT端口映射穿透解决WEB网站应用发布
  15. rar压缩包解开加密在线,忘记rar压缩包密码如何找回?
  16. 智慧城市 宠物管理系统的重要性 --“遛狗不牵绳-违法”
  17. word文档从第二页开始标注页码
  18. tornado完成一个简单的登录界面/图片的上传
  19. 坑——FreeSwitch接通30s就挂断
  20. STM32系列——手把手教你蓝牙模块HC05、HC06的使用,重在“用起来”(HAL库)

热门文章

  1. 平衡二叉树节点跟高度的关系
  2. HP Designjet T1100 - 面板提示打印头更换未完成故障排除
  3. 洛阳中考实验计算机分数,2020洛阳中考最低录取控制分数线(洛阳教育城域网)...
  4. 2021-4-14 计算机网络前沿技术
  5. 国内航班最快明年可实现上网打电话
  6. 六、注册页功能制作《仿淘票票系统前后端完全制作(除支付外)》
  7. U.2和SATA接口硬盘的区别
  8. 什么是EOS(不一样的角度看柚子)
  9. Linux 磁盘相关知识点总结
  10. Delong test