大便失禁怎么回事

首页 » 常识 » 常识 » VLC21年,重新审视低延迟直播
TUhjnbcbe - 2025/2/18 17:39:00
治疗白癜风应到北京那家治最好 https://jbk.39.net/yiyuanzaixian/bjzkbdfyy/nxbdf/
                            

编者按:作为一个历经了21个年头的播放器,VLC旺盛的生命力使其在今天仍然有着一席之地。但是21年前的定位所带来的与当今主流媒体播放器的差距依然不可小觑。LiveVideoStackCon上海站大会我们邀请到了腾讯云客户端开发工程师赵志立,为我们分享他们是如何让VLC走进低延迟的大门的以及VLC的未来是怎样的。

文/赵志立

整理/LiveVideoStack

大家好,我是来自腾讯云音视频的赵志立。本次为大家带来的分享的主要内容是我与VLC以及低延时直播之间的一些故事。

低延时直播是当下大热的话题,一提到VLC,许多人第一反应都是与低延时直播不沾边,确切的说,VLC是低延时直播的对立面。这样的观点无疑是正确的,不过今天我就来为大家介绍下VLC与VideoLan社区是如何将不沾边的VLC做到低延时“及格分数”的。

下面主要从VLC简介、全链路低延时直播以及VideoLan开源社区三个方面进行介绍。

一、VLC简介

VCL是具有悠久历史的播放器。从年起,到年以GPL协议发布,直到现在已经走过21个年头。VLC几乎支持了所有能用的系统,从广为人知的Windows到鲜为人知的OS2,时至今日仍有开发者在持续不断更新维护着。

虽然VLC通常被作为播放器使用,但历史上的VLC其实是由两个部分组成的。一个是VLC客户端,另一个是VideoLanServer(VLS),在发展的过程中两个部分逐渐合并,才有了今天的VLC。在国外VLC经常用于投屏,例如VLC支持Chromecast投屏协议。

VLC的架构建立在插件化的基础上,其核心很小,仅提供内存管理、网络基础操作、多线程封装和时钟同步等功能,其它例如输入设备、传输协议、封装格式、编码格式、渲染方式等都是通过插件实现的,是M*N*O*P的自由组合方式。

很多人误解VLC只是FFmpeg的简单封装,但事实上VLC诞生比FFmpeg早,所以这种观点不攻自破。VLC和FFmpeg关系十分紧密,FFmpeg是VLC的重要组成部分,但不是必须的,VLC的解码、解封装均有多种方式实现。

VLC和Gstreamer也有着千丝万缕的联系。VLC可以使用Gstreamer的codec进行解码,VLC和Gstreamer都具有插件化的特性,但相比之下,VLC的插件化刚刚好,Gstreamer的插件化就有一些“走火入魔”了。

这是VLC版本演进的过程。现在广泛使用的是3.0稳定版,3.0版本已经可以支持如VR、HDR和AV1等功能。并且3.0版本对移动端的硬件解码进行了全面的加速支持。

4.0开发版还未发布。对于我个人来说,最为重要的升级是重新设计了Clock时钟同步模块。另外用户较为关心的UI界面也进行了较为现代化的设计,在低延时方面也有很多的改进。

下面简单介绍一些VLC的功能。VLC可以在命令行里播放视频,用字符来显示像素;还有幻觉滤镜;还可以在播放视频时暂停,玩一个拼图游戏;VLC可以外挂多个视频同时播放。这样就可以在开发过程中进行视频的对比。下面的两张图是我们在工作时对腾讯云HDRtone-mapping效果的对比。

二、VLC与低延迟

关于VLC和低延迟直播我们主要从低延迟直播行业背景、传统播放器与在线流媒体对比、全链路低延时分析、VLC低延时优化、VLC0延迟概念验证等几个方面进行介绍。

1、低延迟直播行业背景

这是年Bitmovin做的一个调查,排在第一名的毫无疑问就是低延迟。

2、传统播放器vs在线流媒体

因为VLC诞生比较早,所以它的目标定位和现在的播放器定位略有不同。VLC支持的多样场景远超其它播放器,低延迟直播的场景仍然属于小范围内的场景。当前在线流媒体对QoS和QoE十分重视,而VLC是不考虑首帧、快进快退的速度的。VLC支持各种网络传输协议,内置就包括Samba、FTP等的支持。VLC的音视频同步时钟、缓冲设计来自早期DVB时代。又因为其属于开源驱动,在开源的前提下实现向下兼容,对于低延迟这个目标来说是十分困难的。

3、全链路低延迟分析

下面系统地介绍全链路低延迟。端到端在英文中有另一个名称——GlasstoGlass。第一个Glass指的是摄像头,第二个Glass指的是显示器。其中经过采集、编码、封装、传输到服务端,再经过传输、解封装、解码、渲染。每一个过程都有很多种技术可以选择。

我们先从两个Glass入手。CameraLatency我本人研究不太多,这里不过多赘述。播放器在进行音视频同步时,大家往往会让某一帧在到一定时间点时才渲染。但从系统拿到这一帧,再渲染输出,这里还存在一部分延迟,而这一部分延迟,往往会被人们所忽略。进行安卓系统开发的同学可以

1
查看完整版本: VLC21年,重新审视低延迟直播