《视频直播技术详解》系列之一:开篇[通俗易懂]

《视频直播技术详解》系列之一:开篇[通俗易懂]此系列为七牛云的原创,仅转载备份,以供查看。随着互联网用户消费内容和交互方式的升级,支撑这些内容和交互方式的基础设施也正在悄悄发生变革。手机设备拍摄视频能力和网络的升级催生了大家对视频直播领域的关注,吸引了很多互联网创业者或者成熟企业进入该领域。七牛云作为一家以基础服务能力见长的云计算公司,于6月底发布了一个针对视频直播的实时流网络LiveNet和完整的直播云解决方案,很多

大家好,又见面了,我是你们的朋友全栈君。

此系列为七牛云的原创,仅转载备份,以供查看。

随着互联网用户消费内容和交互方式的升级,支撑这些内容和交互方式的基础设施也正在悄悄发生变革。手机设备拍摄视频能力和网络的升级催生了大家对视频直播领域的关注,吸引了很多互联网创业者或者成熟企业进入该领域。

七牛云作为一家以基础服务能力见长的云计算公司,于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣。

结合七牛实时流网络 LiveNet 和直播云解决方案的实践,我们将用七篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面、深入地了解视频直播技术,更好地技术选型。
本系列文章大纲如下:

(一)开篇

(二)采集和处理

(三)编码和封装

(四)推流和传输

(无)现代播放器原理

(六)延迟优化

(七)SDK 性能测试模型


本文是《解密视频直播技术》系列之一:开篇,我们将从整体介绍直播中的各个环节。1

1.采集

采集是播放环节中的第一环,iOS 系统因为软硬件种类不多,硬件适配性较好,所以比较简单。Android 则不同,市面上硬件机型非常多,难以做到一个库适配所有硬件。PC 端的采集也跟各种摄像头驱动有关,推荐使用目前市面上最好用的 PC 端开源免费软件 OBS。

2.处理

「80% 的主播没有美颜根本没法看。」不光是美颜,很多其它的视频处理如模糊效果、水印等也都是在这个环节做。目前 iOS 端比较知名的是 GPUImage 这个库,提供了丰富端预处理效果,还可以基于这个库自己写算法实现更丰富端效果。Android 也有 GPUImage 这个库的移植,叫做 android-gpuimage。同时,Google 官方开源了一个伟大的库,覆盖了 Android 上面很多多媒体和图形图像相关的处理。

3.编码

编码主要难点有两个:1. 处理硬件兼容性问题。2. 在高 fps、低 bitrate 和音质画质之间找到平衡。iOS 端硬件兼容性较好,可以直接采用硬编。而 Android 的硬编的支持则难得多,需要支持各种硬件机型,推荐使用软编。

4.推流和传输

传输涉及到很多端:从主播端到服务端,从收流服务端到边缘节点,以及再从边缘节点到观众端。
推流端和分发端理论上需要支持的并发用户数应该都是亿级的,不过毕竟产生内容的推流端在少数,和消费内容端播放端不是一个量级,但是他们对推流稳定性和速度的要求比播放端高很多,这涉及到所有播放端能否看到直播,以及直播端质量如何。
很多人吐槽现在的 CDN 不靠谱,我也承认传统的 CDN 在新时代显得心有余力不足。你能够借助 CDN 快速实现大规模的流分发,但是稳定高速的推流上传可能还需要自己做很多工作。因此,我们七牛打造了一个直播专属的实时流网络,接下来我们会重点介绍这个网络和传统 CDN 的差别。

5.转码

为了让主播推上来的流适配各个平台端各种不同协议,需要在服务端做一些流处理工作,比如转码成不同格式支持不同协议如 RTMP、HLS 和 FLV,一路转多路流来适配各种不同的网络状况和不同分辨率的终端设备。
同时,为了配合一些运营需求,比如一些监管部门的要求,我们在服务端也提供了内容识别如鉴黄的功能。

6.解码和渲染

解码和渲染,也即音视频的播放,目前 iOS 端的播放兼容性较好,在延迟可接受的情况下使用 HLS 协议是最好的选择,我们也提供了能够播放 RTMP 和 HLS 的播放器 SDK。Android 的硬件解码和编码一样也存在兼容性问题,目前比较好的开源播放器是基于 ffplay 的 ijkplayer,我们也基于此实现了一个更好的 Android SDK。
除了 SDK 的介绍之外,我们将重点介绍播放器的原理,以及现代视频播放器的基本架构。

7.直播场景化解决方案

除了整个直播流程的介绍之外,我们将围绕当下最火的直播场景如社交直播和游戏直播,介绍它背后的技术方案。这些技术方案不仅涉及到七牛这样的直播基础服务,还可能涉及到和场景相关的其它技术,如社交直播下的聊天、点赞和弹幕的支持。

在下一篇连载中,我们将详细介绍下直播播放环节的前两个环节:采集和处理。

  • 面对市场上各种视频采集源,直播应用开发者应该如何去完整的覆盖?
  • 市场上主播的各种需求如美颜、水印、连麦互动等该怎么去满足?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162858.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月23日 下午9:46
下一篇 2022年7月23日 下午10:00


相关推荐

  • Linux安装Anaconda教程

    Linux安装Anaconda教程1 首先上 Linux 官网下载最新对应版本的 Anaconda 安装包链接 Anaconda 官网下载 2 因为我们是在 Linux 系统下安装 Anaconda 所以选择 Linux 平台的 64 位版本 3 打开终端 输入 ls 命令查看当前目录下的文件和文件夹 cd 路径命令可以进入文件夹 lscd 路径 4 用 ls 命令查看当前文件目录 找到安装包如果是图形界面 打开文件管理器 在 Anaconda 安装包目录下右键 在终端打开也可以直接进入目录终端 5 用 sh 命令执行 sh 文

    2026年3月19日
    1
  • PDB文件说明

    PDB文件说明蛋白质数据库ProteinDataBank(PDB)是一个包含蛋白质、核酸等生物大分子的结构数据的数据库,网址是http://www.rcsb.org。PDB可以经由网络免费访问,是结构生物学研究中的重要资源。为了确保PDB资料的完备与权威,各个主要的科学杂志、基金组织会要求科学家将自己的研究成果提交给PDB。PDB数据库存储结构数据的文件是PDB文件,每一个蛋白质或核酸都对应着一个编号,即P…

    2022年6月2日
    130
  • Seedance 2.0 保姆级实操教程:从入门到「AI导演」模式

    Seedance 2.0 保姆级实操教程:从入门到「AI导演」模式

    2026年3月13日
    1
  • 02-continue与break的区别「建议收藏」

    02-continue与break的区别「建议收藏」大家好,我是Python领域的博主,如果觉得我的写的不错的话,请点赞关注支持我一下。如果你是初学者,可以和小编一起学习,在这里我每天都会发Python的基础知识,以及相关的代码。关注我和我一起学习吧文章目录 一、continue和break的区别 二、使用方法 1.continue 2.break 总结一、continue和break区别break和continue是python语…

    2025年11月7日
    8
  • 淘宝准点秒杀脚本

    淘宝准点秒杀脚本腾讯云服务器优惠购买链接:1核2G云服务器首年88元:http://url.cn/5Z0ZWGI准备软件下载地址:https://download.csdn.net/download/tangcv/11968538pycharm文件太大,不好上传,直接去官网下载:https://www.jetbrains.com/pycharm/download/#section=windo…

    2022年6月14日
    36
  • 因果推断学习笔记三——Uplift模型「建议收藏」

    因果推断学习笔记三——Uplift模型「建议收藏」一、Uplift模型因果推断在互联网界应用主要是基于Upliftmodel来预测额外收益提升ROI。Uplift模型帮助商家计算人群营销敏感度,驱动收益模拟预算和投放策略制定,促成营销推广效率的最大化。同时如何衡量和预测营销干预带来的“增量提升”,而不是把营销预算浪费在“本来就会转化”的那部分人身上,成为智能营销算法最重要的挑战。举个例子????:对用户A和用户B都投放广告,投放广告后用户A的CVR(转化量/点击量)为5%,用户B的CVR为4%,那么是否就给用户A投广告呢?仅从投放广告后的结果来看是这

    2025年5月23日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号