直播系统、直播平台技术开发要点在哪? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
jiala
V2EX    程序员

直播系统、直播平台技术开发要点在哪?

  •  
  •   jiala 2017-10-20 14:21:05 +08:00 3249 次点击
    这是一个创建于 2993 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现如今,直播已经成为了人们生活中必不可少的产品了,不仅仅通过实时直播带来的娱乐和欢乐,还有更重要的是它带来的实时信息分享,由此直播也带来了非常大的商业价值和潜力。不仅是现在的秀场直播,现在慢慢兴起的教育、电商、金融等,都在一步步的跨入直播领域,可见直播的领域应该还存在更大的潜力等待我们去挖掘。

    那么现在想要迈进直播这个“槛”的人也越来越多,却又正是因为这个“槛”而无从下手,很多人有好的想法或项目却被直播前的这个门槛给拦住了,那么,直播技术的开发到底需要哪些技术呢?需要了解哪些方面的只是呢?我就给大家来讲解一下:

    首先开发实时直播时需要了解哪些知识:
    摄像头采集;
    1、音视频编解码;
    2、流媒体协议;
    3、音视频流推送到流媒体服务器;
    4、流媒体网络分发;
    5、用户播放器;
    6、音视频同步;
    7、网络延迟自适应;
    8、需要录制,多种视频文件的格式和封装;
    9、语言:C、C++、html、php、mysql......
    10、开发环境:嵌入式,Linux,Windows,Web......

    还有就是视频播放解决方案(卡顿、延迟):
    1、CDN 加速;
    2、自己架服务器;
    3、用别人的云服务。

    用 CDN 加速,可以尽量减少延迟。目前业内水准来看,视频延迟都在 3-6 秒之间。也就是在视频直播时,你看到的是几秒以前的画面。
    自己架服务器,如果你部署的数据中心不够多,那么遇上跨网、跨省的传输,还是得用 CDN 加速。那么为了尽可能降低延迟,你就需要在全国各省市都部署数据中心,来解决跨网、跨省的传输。这种解决方案,相较 CDN,非常昂贵。
    用云服务的话,就是别人把服务器给你架好了,你只要傻瓜式的用就行了。为防止广告嫌疑,有关实时直播云,现在有很多服务商提供这一块,具体情况请自行了解哦。
    当然,不管用哪种方式,请综合权衡利弊,找到适合自已的方案就是最好的方案。

    开发视频直播的流程有哪些:
    1、采集;
    2、前期处理;
    3、编码;
    4、传输;
    5、解码;
    6、渲染。

    采集:iOS 是比较简单的,Android 则要做些机型适配工作(声网 Agora.io 目前适配了 4000+Android 机型)。PC 最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃 PC 只支持手机主播,目前几个新进的直播平台都是这样的。

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

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

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

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

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

    以上是媒体模块,还有信令控制,登录、鉴权、权限管理、状态管理等等,各种应用服务,消息推送,聊天,礼物系统,支付系统,运营支持系统,统计系统等。后台还有数据库,缓存,分布式文件存储,消息队列,运维系统等。

    以上技术要点的小结,确实能说明开发一个能用于生产环境的实时视频直播平台确非易事,跟 IM 里传统的实时音视频一样,这样的技术都是音视频编解码+网络传输技术的综合应用体,没有一定的技术积累,确实有很多坎需要迈过去,所以如果你是自己开发的话真的是并非易事,毕竟在直播开发上每一个技术都是非常的难,自己开发起来不仅要花费大量的时间和资金,而且过程中遇到的很多问题都非常棘手,所以最好找一家专门做直播系统开发的公司,比如像市面上名气实力比较大的美丽播直播系统开发商(www.meilibo.net),团队拥有扎实的直播开发经验,直播产品具有自主知识产权,已成功为国内外客户搭建上线近百家直播平台。所以选择也要选择好的,美丽播会给你强大的技术支持,我相信美丽播会解决你在直播上的一切问题。
    jiala
        1
    jiala  
    OP
       2017-10-20 14:23:22 +08:00
    有问题的可以咨询
    julyclyde
        2
    julyclyde  
       2017-10-20 14:31:20 +08:00
    你这是提问还是广告?
    baixiangcpp
        3
    baixiangcpp  
       2017-10-20 14:31:23 +08:00
    到处复制粘贴别人的内容有意思吗
    z742364692
        4
    z742364692  
       2017-10-20 15:45:36 +08:00
    so?
    nine99
        5
    nine99  
       2017-10-20 16:03:30 +0800
    @jiala 你好,有联系方式吗
    jiala
        6
    jiala  
    OP
       2017-10-20 16:24:51 +08:00
    @nine99 擦亮眼睛
    nine99
        7
    nine99  
       2017-10-20 16:46:30 +08:00
    @jiala ok
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5373 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 45ms UTC 06:42 PVG 14:42 LAX 22:42 JFK 01:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86