前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何让短视频做到”秒播“?(上)

如何让短视频做到”秒播“?(上)

作者头像
云豹通讯员
修改于 2020-03-16 11:01:10
修改于 2020-03-16 11:01:10
2.1K0
举报
文章被收录于专栏:直播那些事儿直播那些事儿

和直播一样,短视频想要做到“秒播”,不仅仅是要在短视频小程序源码上做优化,还要在服务器上做优化。移动设备的视频播放器是通过某个视频url域名,通过DNS服务请求到IP地址,通过这个IP地址与视频服务器建立TCP链接,在连接之上建立http协议,最终请求到数据,通过播放器进行解析,用户看到画面听到声音,一个短视频的起播流程就结束了。

那么从这个起播过程入手,可以对以下环节做优化:

一、域名解析

耗时原因:DNS请求包会先发到本地DNS服务器,如果查不到,会递归到根域名服务器,这个过程是比较耗时的。如果请求过了,或者期间有其他方请求过相同的域名,那域名服务器就会有缓存,再次请求的时候就很快了;但是一般缓存的周期很短,需要有人不停地请求才能保持更新,所以具有很大的不确定性。

解决方案:1、注意请求使用的IP协议版本,不管是直播还是短视频,做播放的肯定都绕不过ffmpeg,在ffmpeg里为了兼容性,DNS请求的IP协议版本设置为AF_UNSPEC,这样在请求的时候会先请求IPv6的地址,如果没有再请求IPv4的地址,是很保险,但是在实际的项目中,没有IPv6的地址,造成一直递归到根域名服务器也查不到IPv6地址,极大的浪费了时间,可以使用AF_INET指定请求IPv4地址,节省一半以上的时间,首次请求或缓存过期后请求,耗时大概在大几十毫秒到100毫秒左右。

2、预置或预解析域名IP地址,对于实现秒内播放来说,100毫秒还是很大一笔时间,这个方案就是提前把域名解析出来,这个方案就是提前把域名解析出来,用的时候直接使用IP地址。但是这种方案有局限性,可能适合特定的音视频直播,对于短视频播放地址比较多样来说操作起来有一定难度,而且还存在CP切流和更换接入CP的情况。

二、Socket buffer

耗时原因:TCP connection在客户端的具体操作中基本都是通过socket实现的。在socket中有一个缓冲区的概念,发送端先把数据写到缓冲区,接收端数据也是先经过缓冲区,再从缓冲区读出,移动设备作为接收端,接收端缓冲区设置的太小,影响效率,接收端缓冲区设置的太大,会短时间内消耗带宽,如果带宽不够会引起网络传输问题,还会造成流量的浪费。这些都会影响首屏数据的及时送达。

解决方案:根据实际情况调整接收端缓冲区大小,通过计算和测试数据得到一个比较合理的值。可以在ffmpeg的network和tcp里进行调整,这是比较低层的修改了,为了通用性可以扩展http/tcp的选项并通过ffmpeg提供的AVDictionary机制在avformat API这一层进行透传相关设置参数。

三、Probe buffer

耗时原因:播放端一开始并不能得到要播放的视频的相关信息,比如封装格式、分辨率,音视频编码等信息,需要先读一段数据进来,再对这段数据进行探测,从而得出相应的信息。而存放这段探测数据需要一个buffer,这个buffer若设置的太小可能导致分析不出信息导致重新探测,但是若设置的太大就会增加收流的时间从而影响了首屏的播放,所以太小太大都会引起延迟。

解决方案:根据实际情况调整这个buffer,通过计算和测试数据得到一个比较合理的值。可以通过ffmpeg的AVFormatContext结构体的probesize和max_analy_duration把对buffer的限制透传下去。

以上就是让短视频做到”秒播”的一些解决方案,由于篇幅的原因,剩余的几个方面我们留到下期再说。

本文系转载,前往查看

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

本文系转载,前往查看

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

评论
登录后参与评论
暂无评论
推荐阅读
如何让短视频做到”秒播“?(下)
前面我们讲到,如果要让短视频做到”秒播“的话,可以从域名解析、socket buffer、Probe buffer入手,对短视频小视频源码进行优化,那么我们今天来把剩余的几个方面介绍完。
云豹通讯员
2020/03/18
2K0
如何让短视频做到”秒播“?(下)
直播半天打不开,你的秒开该优化了
所谓的拉流秒开意思,就是当我们在播放器点击播放到看到画面出来这个延时时长,最近有很多客户在对接云直播的时候咨询了如何优化秒开,今天把问题原因和优化方案总结一下,希望对大家后面的接入有一定帮助。
陈超 - Danny
2020/11/10
1.3K0
直播半天打不开,你的秒开该优化了
播放器秒开优化丨音视频工业实战
视频播放时的画面打开速度是播放体验中一个非常重要的指标,如果视频画面打开速度太慢,用户失去耐心可能就直接划走不看了。如果视频速度打开够快,甚至可以带来业务上的收益,字节跳动就曾给出过一份数据:对一部分型号的 Android 手机,播放首帧时长从平均 170ms 优化到 100ms,带来了 0.6% 左右的用户播放时长提升。
关键帧
2023/02/14
3.6K0
播放器秒开优化丨音视频工业实战
美国能让中国从网络上消失?
在上网冲浪时,我们在浏览器输入的都是网站的域名,而不是 Web 服务器的 IP 地址。
小林coding
2022/02/11
2.3K0
美国能让中国从网络上消失?
《拉钩课程 — 计算机网络通关》学习笔记
1、程序员基础知识大致可以分为七种基本科学:计算机组成原理、操作系统、计算机网络、算法和数据结构、图形学、编译原理、编辑技巧。
JMCui
2022/03/10
4330
《拉钩课程 — 计算机网络通关》学习笔记
听说DNS根服务器只有13台,科学吗?
当我们执行dig www.baidu.com时,操作系统会发出dns请求,去询问www.baidu.com域名对应的IP是多少。
小白debug
2023/02/17
1.2K0
听说DNS根服务器只有13台,科学吗?
网络协议
HTTP 通常跑在 TCP/IP 协议栈之上,依靠 IP 协议实现寻址和路由、TCP 协议实现可靠数据传输、DNS 协议实现域名查找、SSL/TLS 协议实现安全通信。此外,还有一些协议依赖于 HTTP,例如 WebSocket、HTTPDNS 等。这些协议相互交织,构成了一个协议网,而 HTTP 则处于中心地位。
Michel_Rolle
2023/11/20
2.9K0
vivo 短视频用户访问体验优化实践
本文介绍了vivo短视频用户访问体验优化的实践思路,并简单讲解了实践背后的几点原理。
2020labs小助手
2023/03/17
1.1K0
【前端词典】从输入 URL 到展现涉及哪些缓存环节
但我们输入一个常用的网址时,经常会有这样的情况,我们只是输入了几个字母,浏览器就自动补全了该网址。如下图:我只输入 j,就自动给我补全了 juejin.im:
小生方勤
2019/06/01
1.3K0
IP 基础知识“全家桶”,45 张图一套带走
前段时间,有读者希望我写一篇关于 IP 分类地址、子网划分等的文章,他反馈常常混淆,摸不着头脑。
lucifer210
2020/05/18
1.1K0
IP 基础知识“全家桶”,45 张图一套带走
40张图揭秘,「键入网址发生了什么」
从上图可知,URL 中可以包含服务器的域名,文件的路径,收件人邮件地址,用户名,密码等信息。总之URL想表达的是:
我是程序员小贱
2020/08/18
6690
40张图揭秘,「键入网址发生了什么」
直播半天打不开,你的秒开该优化了
所谓的拉流秒开意思,就是当我们在播放器点击播放到看到画面出来这个延时时长,最近有很多客户在对接云直播的时候咨询了如何优化秒开,今天把问题原因和优化方案总结一下,希望对大家后面的接入有一定帮助。
腾讯云音视频
2020/12/25
1.6K0
直播半天打不开,你的秒开该优化了
【Linux网络#15】:DNS 协议 & ICMP 协议
TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序,但是 IP 地址不方便记忆,于是人们发明了一种叫主机名的东西, 是一个字符串, 并且使用 hosts 文件来描述主机 名和 IP 地址的关系.
IsLand1314
2025/03/04
2680
【Linux网络#15】:DNS 协议 & ICMP 协议
用 Node.js 手写一个 DNS 服务器
DNS 是实现域名到 IP 转换的网络协议,当访问网页的时候,浏览器首先会通过 DNS 协议把域名转换为 IP,然后再向这个 IP 发送 HTTP 请求。
神说要有光zxg
2022/11/11
1.1K0
用 Node.js 手写一个 DNS 服务器
【JavaEE】网络原理详解
“1234|180E40N”或者“1234,180E40N”等都可以为自定义格式,我们在这字符串里面用什么样的分隔符都是可以灵活进行选择的,只要确保客户端和服务器, 使用同一套规则进行通信即可。 自定义格式的可维护性比较差,当属性多了的时候,放眼看上去一片混乱
E绵绵
2025/04/04
840
【JavaEE】网络原理详解
应用层
文章目录 1、应用层概述 2、网络应用模型 2.1 C/S模型 2.2 P2P模型 3、DNS系统 3.1 域名 3.2 域名服务器 3.3 域名解析过程 4、文件传输协议FTP 4.1 FTP工作原理 5、电子邮件 5.1 电子邮件系统的组成结构 5.2 SMTP协议 5.3 POP3协议、IMAP协议 6、万维网和HTTP协议 6.1 万维网概述 6.2 超文本传输协议HTTP
20岁爱吃必胜客
2022/11/12
1.5K0
应用层
2019秋招:460道Java后端面试高频题答案版【模块五:计算机网络】
计算机网络、计算机操作系统这两个“兄弟”是所有开发岗位都需要“结拜”的,不管你是 Java、C++还是测试。对于后端开发的童鞋来说,计算机网络的重要性不亚于语言基础,毕竟平时开发经常会和网络打交道,比如:抓个包等等。所以对这一块知识点的准备还是要抱着敬畏之心,不要放过任何一个漏网之题。下面分享下我的学习过程:
乔戈里
2019/09/25
8930
2019秋招:460道Java后端面试高频题答案版【模块五:计算机网络】
【计网不挂科】计算机网络第六章<应用层 >习题库(含答案)
A、PUT B、DELETE C、TRACE D、CONNECT 答案: A
YY的秘密代码小屋
2024/11/15
1940
面试官都震惊,你这网络基础可以啊![通俗易懂]
例如:一个学校之间的网络就可以成为局域网,而一个国家,多个国家之间可以称为广域网,覆盖的区域不同
全栈程序员站长
2022/08/03
4610
面试官都震惊,你这网络基础可以啊![通俗易懂]
IP 协议相关技术
我们在上网的时候,通常使用的方式是域名,而不是 IP 地址,因为域名方便人类记忆。
名字是乱打的
2021/12/24
2K0
IP 协议相关技术
推荐阅读
相关推荐
如何让短视频做到”秒播“?(下)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档