专栏首页用户7445706的专栏想做好直播间搭建,推流与拉流的详细过程你都知道吗
原创

想做好直播间搭建,推流与拉流的详细过程你都知道吗

直播间搭建的成功离不开基本的流媒体传输,随着网络技术的不断提高,对音视频传输的质量与速度要求也不断提高,想做好一套直播系统,推流与拉流的详细过程原理你都知道吗?

一、推流端

直播间搭建推流端即主播使用的终端设备。

1、iOS手机端。

2、Android手机端。

3、PC电脑端。

二、推流的过程

1.通过摄像头或录屏功能进行视频采集用于直播间搭建。

2.通过话筒进行音频采集,音频原始数据格式:PCM。

3.将视频文件编码,视频格式从YUV(RGB)变为H.264(H.265)。

将音频文件编码,视频格式从YUV(RGB)变为H.264(H.265)。

4.将音频文件编码,音频格式从PCM变为AAC。

5.将视颊与音频文件编码为有“流媒体”特性的多媒体容器格式(Multimedia Container Format),此时音颊和视频(H.264和AAC)结合成了FLV或TS或RTMP Packet,这要视传输协议的规定而定)。

6.选择一种向服务器推流的协议(“流”即“有流媒体特性的多媒体容器格式的文件”),应用层协议:HLS;RTSP;RTMP,传输层协议:RTCP、RTP,网络层协议:RSVP。

7.传入推流地址(URL)来定位我们的推流目标(即将流媒体发送给「谁」)然后开始推流,直播间搭建中比如你在斗鱼当主播,OBS中的推流地址就写斗鱼的,你要是在六间房当程序员,程序中默认的推流地址就写六间房的。

三、服务器

1、服务器在下不是很熟悉,简要说一下其最基木功能:生成拉流URL(用户可以使用该URL拉流,从而观看直播)。

2、并且服务器还需要有其他功能:如转码、录制、截图、鉴黄。

四、拉流

1、直播间搭建通过某种渠道获取拉流URL(或者叫播放URL),并选取一种从服务器拉流的协议,然后开始拉流应用层协议:HLS;RTSP;RTMP,传输层协议:RTCP、RTP,网络层协议:RSVP。

2、将处于「多媒体容器格式」的流解复用成为「视频编码格式」的视颊数据(如H.264)和「音频编码格式」的音频数据(如AAC)。

3、使用硬解码(GPU解码+CPU辅助)或软解码(CPU解码)解码后视频数据格式为YUV或RGB,音频数据格式为PCM解码后视频数据格式为YUV或RGB,音频数据格式为PCM。

4.执行音画同步操作。

5.将同步后的音频(PCM)送到音频输出设备播放。

将同步后的视频(YUV或RGB)送到视频输出设备播放。

上述就是关于直播间搭建会用到的关于推流和拉流的过程原理,看似复杂的操作步骤,实则都是为了数据传输的稳定与完整,带给用户更加完美的体验。

以上内容为作者"云豹短视频嘉兴“ 原创,未经作者本人同意,禁止转载,否则将追究相关法律责任

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 直播间源码在开发前期必须做的工作及开发步骤

    直播间源码的火爆不言而喻,大家对直播的热情也越来越高涨,他不仅给我们的娱乐生活添加了色彩,而且逐渐的改变了我们很多的生活方式。目前市场上做直播间源码开发的有很多...

    云豹短视频嘉兴
  • 直播系统开发中音视频技术细节及消息发送流程

    直播行业火爆的今天,让很多以为程序开发行业饱和人错失良机,今天的直播系统开发已经具备了成熟的运营模式,现在如果还想要搭建一套优秀的直播系统开发,除了选择安全可靠...

    云豹短视频嘉兴
  • 一对一直播系统开发的原理只需记好这七点

    直播行业如火如荼的加速前进,一对一直播系统开发开发紧跟着脚步加速前进,你知道一对一直播系统开发开发应当具备哪些条件吗?

    云豹短视频嘉兴
  • python实现吃苹果小游戏

    本文实例为大家分享了python实现吃苹果小游戏的具体代码,供大家参考,具体内容如下

    砸漏
  • Kafka系列3-python版本pro

    py3study
  • Java 中什么是无锁编程?

    多线程环境下,为了保证数据不受到并发操作的影响,通常会采用加锁的策略保证一致性。除了加锁之外,还有一种方式就是采用无锁编程。

    水货程序员
  • Drools规则引擎Business Central Workbench版本变更

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    程序新视界
  • 哈希表的原理及实现代码

    如果说每一个数据它都对应着一个固定的位置,那我们查找特定一个数据时,就可以直接查看这个数据对应的位置是否存在数据。一个形象的例子就是学生在教室中的位置,开学的时...

    py3study
  • 原创 | 详解command设计模式,解耦操作和回滚

    今天我们介绍的设计模式叫做命令模式(command),在这个模式下,我们可以实现do和undo的解耦,让使用方不用关心内部的实现细节。

    TechFlow-承志
  • Android 二维码 生成和识别(附Demo源码)

    今天讲一下目前移动领域很常用的技术——二维码。现在大街小巷、各大网站都有二维码的踪迹,不管是IOS、Android、WP都有相关支持的软件。之前我就想了解二维码...

    战神伽罗

扫码关注云+社区

领取腾讯云代金券