CN115150632B - 一种基于命名数据网络的低延时视频直播方法及系统 - Google Patents

一种基于命名数据网络的低延时视频直播方法及系统 Download PDF

Info

Publication number
CN115150632B
CN115150632B CN202210758649.4A CN202210758649A CN115150632B CN 115150632 B CN115150632 B CN 115150632B CN 202210758649 A CN202210758649 A CN 202210758649A CN 115150632 B CN115150632 B CN 115150632B
Authority
CN
China
Prior art keywords
delay
low
ndn
hls
video stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210758649.4A
Other languages
English (en)
Other versions
CN115150632A (zh
Inventor
张宇
张阳
梁腾
张伟哲
方滨兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology
Peng Cheng Laboratory
Original Assignee
Harbin Institute of Technology
Peng Cheng Laboratory
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology, Peng Cheng Laboratory filed Critical Harbin Institute of Technology
Priority to CN202210758649.4A priority Critical patent/CN115150632B/zh
Publication of CN115150632A publication Critical patent/CN115150632A/zh
Application granted granted Critical
Publication of CN115150632B publication Critical patent/CN115150632B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4782Web browsing, e.g. WebTV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种基于命名数据网络的低延时视频直播方法及系统,涉及视频直播技术领域,用以解决现有的基于命名数据网络的视频直播延时较高的问题。本发明的技术要点包括:将低延时HLS协议应用到命名数据网络中,在命名数据网络中实现低延时视频直播;gpac流处理软件将封装好的视频数据主动推到NDN报文封装模块中,通过这种方式避免从gpac生成数据到NDN报文封装模块获取数据之间的延迟;通过直接使用内存保存数据,避免与数据库交互、数据库查询和维护数据过程中与磁盘交互的用时;当NDN生产者接收到interest报文且未在缓存中查找到interest指向的数据时将其添加到待处理interest报文列表中,支持低延时HLS中的预加载,进一步降低了延迟。本发明可应用于基于命名数据网络的视频直播中。

Description

一种基于命名数据网络的低延时视频直播方法及系统
技术领域
本发明涉及视频直播技术领域,具体涉及一种基于命名数据网络的低延时视频直播方法 及系统。
背景技术
当今互联网的沙漏架构以通用网络层(即IP)为中心,它实现了全球互连所需的最小功 能。这种细腰通过允许下层和上层技术独立创新,实现了互联网的爆炸式增长。但是,IP旨 在创建一个通信网络,其中数据包仅命名为通信端点。电子商务、数字媒体、社交网络和智 能手机应用程序的持续增长导致互联网作为分销网络占据主导地位。分发网络比通信网络更 通用,通过点对点通信协议解决分发问题既复杂又容易出错。
命名数据网络(NDN)项目提出了IP架构的演变,该架构概括了这种细腰的作用,这样 数据包可以命名通信端点以外的对象,见图1所示。更具体地说,NDN将网络服务的语义从 将数据包传递到给定目标地址变为获取由给定名称标识的数据。NDN数据包中的名称可以命 名任何东西-端点、电影或书籍中的数据块、打开某些灯的命令等。这个概念上简单的更改允 许NDN网络使用几乎所有经过良好测试的Internet工程属性以解决更广泛的问题,不仅包括端到端通信,还包括内容分发和控制问题。基于对当前互联网架构的优势和局限性的30年 经验,该设计还构建了安全原语(通过所有命名数据的签名)和网络流量的自我调节(通过 兴趣包和数据包之间的流量平衡)。该架构包括旨在随着网络发展而有利于用户选择和竞争的 功能,例如多路径转发和网络内存储。
现有的基于HLS协议的命名数据网络自适应视频点播或直播系统均没有考虑直播的实时 性问题,其视频直播的延时较高,从而导致用户观看直播的体验感较差。
发明内容
鉴于以上问题,本发明提出一种基于命名数据网络的低延时视频直播方法及系统,用以 解决现有的基于命名数据网络的视频直播延时较高的问题。
根据本发明的一方面,提供一种基于命名数据网络的低延时视频直播方法,该方法包括 以下步骤:
直播方将录制并编码好的视频流通过RTMP视频传输协议发送至RTMP转低延时HLS任务方;
所述RTMP转低延时HLS任务方接收视频流并将其封装为低延时HLS格式,并将低延时HLS格式的视频流二次封装为NDN格式的数据报文,在命名数据网络中发布视频流前缀,以提供低延时HLS-NDN服务;
当用户通过HLS-NDN服务发布的视频流前缀访问该视频流时,视频播放器发送Interest 报文到所述RTMP转低延时HLS任务方,所述RTMP转低延时HLS任务方将对应的低延时 HLS视频流数据发送给视频播放器,视频播放器获取到视频流数据并在浏览器中播放;
所述直播方和所述RTMP转低延时HLS任务方之间、所述RTMP转低延时HLS任务方和所述用户之间均通过命名数据网络实现通信。
进一步地,所述RTMP转低延时HLS任务方提供低延时HLS-NDN服务的具体步骤包括:
将接收的视频流进行转码,并将视频流以低延时HLS格式推送至NDN报文封装模块; 所述NDN报文封装模块用于对低延时HLS格式的视频流进行分片和打包,封装为NDN格式的数据报文,并将NDN格式的数据报文保存到同一进程的内存缓存中。
进一步地,所述RTMP转低延时HLS任务方提供低延时HLS-NDN服务的具体步骤还包括:
接收到视频播放器通过NDN传来的Interest报文之后,通过内存缓存查找是否存在目标 数据,如果存在则直接从缓存中取出数据发送到NDN网络中;如果缓存中不存在目标数据 的话,则将Interest报文添加到内存缓存中的待处理interest报文列表中。
根据本发明的另一方面,提供一种基于命名数据网络的低延时视频直播系统,该系统包 括直播端、用户端和服务器端;所述直播端和所述服务器端之间、所述服务器端和所述用户 端之间均通过命名数据网络实现通信;
所述直播端用于录制和编码视频,将编码好的视频流通过RTMP视频传输协议发送到所 述服务器端;
所述服务器端用于接收视频流并将其封装为低延时HLS格式,将低延时HLS格式的视 频流二次封装为NDN格式的数据报文,在命名数据网络中发布视频流前缀,以提供低延时 HLS-NDN服务;
所述用户端用于发送视频流观看请求和接收并播放所述服务器端响应观看请求所返回的 低延时HLS视频流数据。
进一步地,所述服务器端包括视频流处理模块、NDN报文封装模块和数据存储模块;
所述视频流处理模块用于将接收的视频流进行转码,并将视频流以低延时HLS格式推送 至NDN报文封装模块;
所述NDN报文封装模块用于对低延时HLS格式的视频流进行分片和打包,封装为NDN 格式的数据报文,并输出至数据存储模块;
所述数据存储模块用于将NDN格式的数据报文保存到同一进程的内存缓存中。
进一步地,所述数据存储模块还包括预加载子模块,所述预加载子模块用于生成待处理 interest报文列表,以当接收到用户端的视频流观看请求时,将其存放到待处理interest报文列 表中。
进一步地,所述系统还包括管理员端,所述管理员端用于发送创建/删除任务的请求,查 看某一人物的详细信息以获取任务运行状态、低延时HLS的视频流播放地址。
进一步地,所述用户端包括网页端播放器、播放器插件、请求输入模块、视频流接收模 块;所述网页端播放器用于播放视频;所述播放器插件用于支持所述网页端播放器与所述服 务器端的NDN网络通信;所述请求输入模块用于在网页浏览器中输入视频流的NDN名称; 所述视频流接收模块用于接收所述服务器端返回的低延时HLS视频流数据。
根据本发明的又一方面,还提供一种计算机设备,包括存储器、处理器和存储在所述存 储器内并能由所述处理器运行的计算机程序,其中,所述处理器执行所述计算机程序时实现 上述基于命名数据网络的低延时视频直播方法。
根据本发明的又一方面,还提供一种计算机程序产品,包括计算机可读代码,当所述计 算机可读代码由计算机设备执行时,导致所述计算机设备执行上述基于命名数据网络的低延 时视频直播方法。
本发明的有益技术效果是:
本发明提出一种基于命名数据网络的低延时视频直播方法及系统,首先,将低延时HLS 协议应用到命名数据网络中,在命名数据网络中实现了低延时视频直播;第二,gpac流处理软件将封装好的视频数据主动推到NDN报文封装模块中,通过这种方式,NDN报文封装模块 可以实时感知新的视频数据生成,相较于现有的周期性文件扫描的方式,避免了从gpac生成 数据到NDN报文封装模块获取到数据之间可能的延迟;第三,通过直接使用内存保存数据, 避免了与数据库交互、数据库查询和维护数据过程中可能的与磁盘交互的用时;第四,当NDN 生产者接收到interest报文且未在缓存中查找到interest指向的数据时将其添加到待处理 interest报文列表中;通过待处理Interest内存缓存以及NDN生产者和NDN报文封装模块 之间的交互设计,支持低延时HLS中的预加载技术,进一步降低了延迟。
附图说明
本发明可以通过参考下文中结合附图所给出的描述而得到更好的理解,所述附图连同下 面的详细说明一起包含在本说明书中并且形成本说明书的一部分,而且用来进一步举例说明 本发明的优选实施例和解释本发明的原理和优点。
图1是NDN网络中interest报文和Data报文结构示意图;
图2是本发明实施例一种基于命名数据网络的低延时视频直播系统的结构示意图;
图3是本发明实施例中RTMP转低延时HLS任务的流程示意图;
图4是本发明实施例中不支持预加载与支持预加载功能请求过程对比图;
图5是本发明实施例中NDN视频播放服务的数据请求示意图;
图6是本发明实施例中实验测试环境示意图;
图7是本发明实施例中HLS和低延时HLS延时对比箱型图;
图8是本发明实施例中低延时HLS和HLS延时CDF对比图;
图9是本发明实施例中低延时HLS和HLS延时的延时抖动对比图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,在下文中将结合附图对本发明的示范 性实施方式或实施例进行描述。显然,所描述的实施方式或实施例仅仅是本发明一部分的实 施方式或实施例,而不是全部的。基于本发明中的实施方式或实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式或实施例,都应当属于本发明保护 的范围。
NDN网络中的节点被分为生产者和消费者两种角色,生产者提供内容,消费者通过NDN 网络获取。生产者和消费者不再建立点对点的链接,NDN网络中的主体不再是主机而是内容, 通过名字唯一标识并获取内容。其次,NDN网络中的节点可以缓存内容,这使内容分发与连 接复用更加方便的同时也降低了消费者获取数据的延时。NDN网络的实体可以有消费者、生 产者和NDN转发器三种角色。消费者向NDN网络中发送interest类型的报文请求相应内容, interest报文在经NDN转发器转发后到达生产者;在转发的过程中,如果中间节点缓存有相应内容则直接构造data类型的报文返回数据,如果没有相应数据则记下接收到interest报 文的端口以便data报文到达时按照原来的路径返回;interest报文到达生产者后,生产者向NDN网络中发送data报文,报文随即原路返回给生产者。interest报文和data报文的结 构如图1所示;其中interest报文中包含请求的内容名称,data报文包含内容的名称、元 数据、内容和签名。
本发明实施例提供一种基于命名数据网络的低延时视频直播方法,该方法包括以下步骤:
直播方将录制并编码好的视频流通过RTMP视频传输协议发送至RTMP转低延时HLS任务方;
所述RTMP转低延时HLS任务方接收视频流并将其封装为低延时HLS格式,并将低延时HLS格式的视频流二次封装为NDN格式的数据报文,在命名数据网络中发布视频流前缀,以提供低延时HLS-NDN服务;
当用户通过HLS-NDN服务发布的视频流前缀访问该视频流时,视频播放器发送Interest 报文到所述RTMP转低延时HLS任务方,所述RTMP转低延时HLS任务方将对应的低延时 HLS视频流数据发送给视频播放器,视频播放器获取到视频流数据并在浏览器中播放;
所述直播方和所述RTMP转低延时HLS任务方之间、所述RTMP转低延时HLS任务方和所述用户之间均通过命名数据网络实现通信。
本实施例中,优选地,所述RTMP转低延时HLS任务方提供低延时HLS-NDN服务的具体步骤包括:
将接收的视频流进行转码,并将视频流以低延时HLS格式推送至NDN报文封装模块; 所述NDN报文封装模块用于对低延时HLS格式的视频流进行分片和打包,封装为NDN格式的数据报文,并将NDN格式的数据报文保存到同一进程的内存缓存中。
接收到视频播放器通过NDN传来的Interest报文之后,通过内存缓存查找是否存在目标 数据,如果存在则直接从缓存中取出数据发送到NDN网络中;如果缓存中不存在目标数据 的话,则将Interest报文添加到内存缓存中的待处理interest报文列表中。
本发明实施例还提供一种基于命名数据网络的低延时视频直播系统,该系统包括直播端、 用户端和服务器端;所述直播端和所述服务器端之间、所述服务器端和所述用户端之间均通 过命名数据网络实现通信;
所述直播端用于录制和编码视频,将编码好的视频流通过RTMP视频传输协议发送到所 述服务器端;
所述服务器端用于接收视频流并将其封装为低延时HLS格式,将低延时HLS格式的视 频流二次封装为NDN格式的数据报文,在命名数据网络中发布视频流前缀,以提供低延时 HLS-NDN服务;
所述用户端用于发送视频流观看请求和接收并播放所述服务器端响应观看请求所返回的 低延时HLS视频流数据。
本实施例中,优选地,所述服务器端包括视频流处理模块、NDN报文封装模块和数据存 储模块;
所述视频流处理模块用于将接收的视频流进行转码,并将视频流以低延时HLS格式推送 至NDN报文封装模块;
所述NDN报文封装模块用于对低延时HLS格式的视频流进行分片和打包,封装为NDN 格式的数据报文,并输出至数据存储模块;
所述数据存储模块用于将NDN格式的数据报文保存到同一进程的内存缓存中;所述数 据存储模块还包括预加载子模块,所述预加载子模块用于生成待处理interest报文列表,以当 接收到用户端的视频流观看请求时,将其存放到待处理interest报文列表中。
本实施例中,优选地,所述系统还包括管理员端,所述管理员端用于发送创建/删除任务 的请求,查看某一人物的详细信息以获取任务运行状态、低延时HLS的视频流播放地址。
本实施例中,优选地,所述用户端包括网页端播放器、播放器插件、请求输入模块、视 频流接收模块;所述网页端播放器用于播放视频;所述播放器插件用于支持所述网页端播放 器与所述服务器端的NDN网络通信;所述请求输入模块用于在网页浏览器中输入视频流的 NDN名称;所述视频流接收模块用于接收所述服务器端返回的低延时HLS视频流数据。
本发明另一实施例提供一种基于命名数据网络的低延时视频直播系统,系统的总体设计 如图2所示。系统将用户分类为三种角色,其中直播方通过该系统发布直播视频流,系统管 理员管理系统内部的RTMP转低延时HLS任务,观看方通过浏览器访问NDN视频播放服务网站, 获取网页端播放器shaka player和播放器插件shaka-NDN,之后通过在WEB浏览器输入流的 NDN名称接收直播方发布在NDN网络上的低延时HLS流。其中,shaka-ndn插件可以将播放器 shaka player发送的请求包装为interest报文发送到NDN网络,同时从NDN网络中接收data报文,并将解包后的报文返回给shaka player。低延时HLS协议是HLS协议的改进版本,主 要降低了视频播放的延时,视频播放延时是指一帧图像从直播方生成到观看方播放所用的时 间。低延时HLS协议在兼容HLS协议的同时,通过增加部分段生成、播放列表增量更新、阻止播放列表重新加载、预加载提示等机制降低了视频播放的延时。
一次视频流创建和传输过程为:管理员首先创建相应流的RTMP转低延时HLS任务,接着 直播方通过obs直播软件(视频录制软件,可以通过摄像头、视频文件等产生RTMP形式的流) 录制和编码视频,将编码好的视频通过RTMP视频传输协议发送到NDN视频服务系统中的特定 任务上;通过RTMP协议接收视频流并将其封装为低延时HLS格式,接着将封装好的视频再次 切片封装为NDN格式的data报文,最终在NDN网络中发布视频流前缀,提供低延时HLS-NDN 服务。
低延时HLS-NDN服务在NDN网络上提供和传输低延时HLS流数据,当用户通过HLS-NDN 服务声明的前缀访问该视频流时,shaka-ndn发送interest报文到HLS-NDN服务,HLS-NDN 服务将对应的视频数据发送给shaka-ndn,shaka player获取到视频数据并在浏览器中播放。
管理员可以通过客户端向管理模块发送创建/删除任务的请求,同时可以查看某一人物的 详细信息以获取任务运行状态、低延时HLS的播放URL等信息。
下面对提供低延时HLS-NDN服务部分进行具体说明。图3示出了RTMP转低延时HLS任务 的流程。直播方首先通过obs软件将视频流通过RTMP协议推送到系统的gpac流处理软件上; gpac是一个处理视频流的开源软件,可以将RTMP形式的视频流转码成低延时HLS、低延时 DASH形式的流;gpac监听RTMP协议端口,对输入的流进行转码操作并将其以低延时HLS的 格式输出。
gpac可以将以低延时HLS格式封装的视频流按照以下三种形式输出:将低延时HLS输出 为文件;自身作为HTTP服务器提供低延时HLS服务;将低延迟流推送到第三方HTTP服务器, 由其提供低延时HLS服务。通过gpac的第三种输出形式,可以将HLS流推送到NDN报文封装 模块,避免了NDN报文封装模块拉取HLS流所造成的可能的延迟。由于低延时HLS是较新的 视频直播协议,目前只有gpac开源且支持低延时HLS流生成操作。而低延时HLS协议为HLS 的改进版,兼容HLS协议,因此在不支持低延迟协议的播放器上仍可正常播放。
当gpac将封装成低延时HLS的视频流通过HTTP协议推到NDN报文封装模块之后,NDN 报文封装模块会立即启动后台任务对低延时HLS视频流文件进行分片和打包的工作;在 python上,这些通过协程的异步调用实现。NDN报文封装模块的两个主要功能是接收和打包 HLS文件。最后,这些打包好的data报文会提前保存到同一进程的内存缓存中。另一方面, NDN生产者在接收到通过NDN传来的Interest报文之后,首先通过内存缓存查找是否存在目 标数据,如果存在则直接从缓存中取出数据发送到NDN网络中;如果缓存中不存在目标数据 的话,则将interest添加到内存缓存中的待处理interest报文列表中。图4示出了不支持 预加载与支持预加载功能请求过程对比。
待处理interest报文列表的设计是为了支持低延时HLS的预加载功能。当低延时HLS客 户端通过流清单文件中的预加载提示获取到正在生成的块文件URL时,客户端会立刻发送请 求获取该文件;当服务端接收到请求时会将其存放到待处理interest列表中等待文件生成完 毕;当文件生成完毕之后,客户端会立即发送块文件的内容。为了避免interest可能的超时, 块文件大小被设计为0.8秒。
由于直播视频流的实时性,越早的视频段越不可能被获取,而在HLS协议的实现中,服 务器会将超过一定时间范围的视频块文件在清单文件中剔除,因此缓存被设计成了先进先出 的。在长时间的视频播放过程中,如果通过启发式的方法清除缓存中的数据,则会出现缓存 频繁清理的现象,且占用NDN生产者处理interest的时间。因此在每一个RTMP转低延时HLS 任务中,都有一个后台协程在定时的清除缓存。
NDN网络中的转发节点都带有缓存和分发的功能,当interest报文被转发到一个NFD节 点上时,NFD首先会检索自身缓存,在缓存未命中之后再将interest转发到下一跳。因此需 要设计HLS文件在NFD上的缓存时间。对于视频段和视频块文件,其设计了较长的缓存时间以减少服务器压力,但是对于频繁更新的流清单文件和可能更新的主清单文件,缓存时间被 设计的很小。对于流清单文件,如果HLS流的块大小为1秒,端大小为4秒,则流清单文件 至少在1秒内更新一次,且对流清单文件设置较大的缓存时间会导致视频播放因无法获取到 最新数据而不稳定,因此当前系统上的HLS清单文件缓存超时时间被设置为10毫秒以减少对视频播放的影响。
下面对提供NDN视频播放服务部分进行具体说明。图5示出了NDN视频播放服务的数据 请求过程。NDN视频播放服务以网站的形式为用户提供以NDN网络通信为基础的视频播放。 NDN视频播放服务通过扩展shaka player播放器使其能够支持NDN网络通信。普通的视频播 放器只能通过IP网络获取要播放的视频流,而得益于shaka player自身较好的扩展性,使 得通过为其实现扩展以支持NDN网络通信成为了可能。shaka-ndn正是为shakaplayer扩展 的NDN网络通信支持插件。首先通过URI的协议部分声明NDN网络通信的协议前缀为ndn, 之后将shak-ndn注册为支持ndn协议前缀通信的插件,当shaka player的播放源URI被设 置为以ndn为开头时shaka player便会通过shaka-ndn发送请求,获取数据。shaka-ndn通 过websocket协议与NDN网络转发节点建立连接,之后将shaka player发送的请求封装为 interest报文,在收到Data报文时再将其解封装为视频流数据。与基于命名数据网络的视 频直播技术不同的是,shaka-ndn通过回调的方式向shaka player提供视频数据。
基于HLS协议的良好的设计,协议中的资源:清单文件和段文件等都以URI的形式表示, 因此shaka player将会以相对位置解析的方式从主清单文件中解析得到流清单文件和块文件 的URI地址。用户在网页播放器端输入的是指向低延时HLS流清单文件的URI。如前文所述, 该URI以ndn为协议头,HLS文件所在NDN网络中的名称作为URI的协议体。定义了NDN网 络资源的表示格式以便于shaka player识别。其中/test/live为NDN视频服务系统锁声明 的公共前缀,stream1为流名称,playlist.m3u8为该流的HLS主清单文件。
在低延时HLS中,通过初始的mp4文件指定了流的元数据而不需要在后续获取视频流的 过程中重复加载。在低延时HLS的流清单文件中,增加了服务端推荐的客户端最小播放延迟, 即客户端正在播放的视频帧与服务端正在生成的视频帧的时间差。支持低延时HLS的播放器 可以根据服务端推荐的值对正在播放的流进行调整以降低延时。
开源网页端播放器shaka player支持低延时HLS视频流的自适应码率播放,其首先估计 带宽,之后根据估计的带宽大小选择适合流进行播放;根据HLS协议规定,每一个流所需的 带宽大小被标识在主文件中该流的标签中。shaka player的最新版本支持低延时HLS流的播 放,同时支持低延时HLS的自适应流选择。
本发明具有以下优点:首先,将低延时HLS协议或低延时DASH协议应用到实现命名数据 网络中:将IP网络中成熟的低延时视频直播协议-低延时HLS和低延时DASH成功应用到命名 数据网络中,在命名数据网络中实现了低延时视频直播系统,其中,低延迟DASH(LL-DASH) 于2017年通过互操作性配置文件和规范扩展首次引入,它可以按照与MPEG-DASH相同的方法对其进行支持,可以在大多数常见浏览器和平台上以“自带”媒体播放器方法实现支持。 低延迟DASH与低延时HLS类似,但是清单文件的格式不同,清单文件可以指示段何时在服 务器上可用;通过观察分段何时可用,客户端可以在分段可用时快速准确地请求分段,从而 减少延迟。为此,MPEG-DASH支持配置时间服务器。第二,基于HTTP协议的推式HLS数据传 输设计:不同于现有的基于命名数据网络的视频直播系统,gpac将封装好的视频数据主动推到NDN报文封装模块中,通过这种方式,NDN报文封装模块可以实时感知新的视频数据生成, 相较于现有的命名数据网络的视频直播系统周期性文件扫描的方式,避免了从gpac生成数据 到NDN报文封装模块获取到数据之间可能的延迟。第三,提出基于内存的数据保存方法:较 早的低延时HLS视频数据文件由于被从清单文件中踢出,在之后的视频播放中无法被直接获 取,因此数据存在一定的时效性,较早的数据可以直接丢弃,使用数据库保存这些数据会带来模块和数据库之间的交互开销以及数据库维护和查询数据的开销,这些开销都是不必要的, 并且增加了视频数据交付过程的用时;通过直接使用内存保存数据,避免了与数据库交互、 数据库查询和维护数据过程中可能的与磁盘交互的用时,而内存的高速访问特性也降低了数 据维护和查询的用时;同时通过增加后台任务清除过期视频数据的方式,使得数据维持在较小的规模,因而减少了数据查询和数据维护的开销。第四,视频数据预加载模块的设计:当 NDN生产者接收到interest报文且未在缓存中查找到interest指向的数据时将其添加到待 处理interest报文列表中;NDN报文封装模块在收到数据时立刻通知NDN生产者处理该 interest。通过待处理Interest内存缓存以及NDN生产者和NDN报文封装模块之间的交互设 计,支持低延时HLS中的预加载技术,通过该功能的设计进一步降低了延迟。
进一步通过实验验证本发明的技术效果。
测试环境如图6所示。直播端通过obs将媒体流推送到转发节点A,转发节点A同时提 供低延时HLS服务。转发节点A上基于低延时HLS的NDN网络视频直播系统与转发节点A连接,通过转发节点A发布生产者前缀/test。转发节点A与转发节点B直接连接,播放端通过websocket与转发节点B连接。播放端发送的Interest通过NDN转发节点B被转发到转发节点A,之后被转发节点A转发到NDN生产者上,因此直播方的Interest会经过两跳NDN转发 节点后被转发到NDN生产者上。
视频流参数方面,实验使用obs产生1280x720、码率为1000kps的流。SRS实时服务器 和gpac不会对视频流进行任何编解码操作,而是将其直接打包成低延时HLS和HLS的流。除 此之外,obs还采用了前文所述的低延时设置。
实验首先进行端到端延时测试,端到端延时是指动作从被摄像头捕捉到在远程屏幕上显 示出来的延时。为了便于测试端到端延时,直播端和播放端在一台主机上。在直播/播放端主 机上,通过obs捕获时钟窗口,播放视频时通过截屏时钟和播放窗口记录某一时刻的延时, 后续通过统计和计算求出数值,这也是通用的端到端延时测量方法。
端到端延时测试时时钟的精度对测试结果有着较大的影响。粒度较粗的时钟对比效果不 够明显,在数据精度上存在问题;而较细粒度的时钟由于视频的帧率一定,在数据测量的过 程中也是不必要的。实验中视频帧率采用30fps,因此低于$0.03$秒的时钟精度是不必要的, 且时钟输出的频率越高,其CPU占用率也就越高,会对同一主机上运行的obs和浏览器播放 端造成影响。因此实验用时钟每0.01秒输出毫秒时间戳,在保证精度足够的同时不会过度输出。为了更好地衡量视频播放系统在端到端延时方面的表现,分别测量了客户端在开始播放 时的端到端延时和播放过程中延时的变化情况,并分别称为初始延时和延时抖动。
然后进行初始延时测试,初始延时是指播放端在开始播放媒体流时与直播端存在的端到 端延时。测试时首先通过obs推流到视频直播系统,之后不断地打开和关闭浏览器播放页面, 待播放稳定后记录端到端延时。每组实验重复并记录结果50次。
统计本发明基于低延时HLS的NDN网络视频播放系统的初始端到端延时,并将其与基于 HLS的NDN网络视频播放系统的初始端到端延时进行了比较,结果如图7和图8所示。其中, 图7显示出低延时HLS的端到端延时最小值为3.01秒,最大值为5.17秒,中位数为3.56秒, 相比于HLS,分别降低了55.47%、50.8%和58.89%。从图8中可以看到,80%的低延时HLS延 时在4s以内,90%的低延时HLS延时在4.5s以内,相较于HLS分别降低了57.89%和55%,具有较好的效果。
最后进行延时抖动测试,客户端在播放媒体的过程中,由于失速和卡顿等原因会导致端 到端延时动态变化。低延时系统不仅在启动时能够与服务端保持较低的端到端延时,可也以 在播放过程中动态监控延时变化,并在延时过大时跳过某些媒体内容以降低延时。低延时HLS 中服务端与客户端间存在延时控制机制,服务端向客户端提供推荐延时、最小延时和最大延 时信息,客户端通过计算当前播放的帧与媒体播放列表中最新的段或部分段文件的时差估计延时。而HLS协议中不存在同种机制,因此HLS协议在播放时延时抖动范围较大,因而延时 变化比较明显。事实上,播放过程中延时的改变也是影响用户体验的重要因素。
为了测量直播过程中延时变化情况,实验从在时长2小时的播放过程中,每隔2分钟截 图并统计端到端延时,从而得到基于低延时HLS的NDN网络视频直播系统与基于HLS的NDN 网络视频直播系统在播放过程中延时变化对比图,如图9所示。图9的结果显示,直播过程 中低延时HLS的端到端延时除在开始时稍有抖动外一直处于稳定状态;而HLS的端到端延时 在直播的过程中则一直处于变化状态。在直播的过程中,HLS的延时最大值达到了14.84秒, 最小值则达到了9.48秒,变化范围在5.35秒内。定义延时的抖动L如下所示:
L=Q3-Q1
其中,Q3为上四分位数,Q1为下四分位数,可以算得低延时HLS的抖动为0.02秒,HLS 抖动为1.77秒,因此低延时HLS在直播过程中的端到端延时较HLS在直播过程中的端到端延 时稳定。
本发明另一实施例还提供了一种计算设备,该计算设备包括存储器、处理器和存储在所 述存储器内并能由所述处理器运行的计算机程序,该计算机程序存储于存储器中的用于程序 代码的空间,该计算机程序在由处理器执行时实现用于执行任一项根据本发明的方法步骤。
本申请另一实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括用于 程序代码的存储单元,该存储单元设置有用于执行根据本发明的方法步骤的程序,该程序被 处理器执行。
本申请另一实施例还提供了一种包含指令的计算机程序产品,包括计算机可读代码,当 所述计算机可读代码由计算设备执行时,导致所述计算设备执行如上所述的方法。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技 术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。对于本发明的范围,对 本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (5)

1.一种基于命名数据网络的低延时视频直播方法,其特征在于,包括以下步骤:
直播方将录制并编码好的视频流通过RTMP视频传输协议发送至RTMP转低延时HLS任务方;
所述RTMP转低延时HLS任务方接收视频流并将其封装为低延时HLS格式,并将低延时HLS格式的视频流二次封装为NDN格式的数据报文,在命名数据网络中发布视频流前缀,以提供低延时HLS-NDN服务;具体步骤包括:
将接收的视频流进行转码,并将视频流以低延时HLS格式推送至NDN报文封装模块;所述NDN报文封装模块用于对低延时HLS格式的视频流进行分片和打包,封装为NDN格式的数据报文,并将NDN格式的数据报文保存到同一进程的内存缓存中;
NDN生产者接收到视频播放器通过NDN传来的Interest报文之后,通过内存缓存查找是否存在目标数据,如果存在则直接从缓存中取出数据发送到NDN网络中;如果缓存中不存在目标数据的话,则将Interest报文添加到内存缓存中的待处理Interest报文列表中;NDN报文封装模块在收到数据时立刻通知NDN生产者处理该Interest报文;
当用户通过HLS-NDN服务发布的视频流前缀访问该视频流时,视频播放器发送Interest报文到所述RTMP转低延时HLS任务方,所述RTMP转低延时HLS任务方将对应的低延时HLS视频流数据发送给视频播放器,视频播放器获取到视频流数据并在浏览器中播放;
所述直播方和所述RTMP转低延时HLS任务方之间、所述RTMP转低延时HLS任务方和所述用户之间均通过命名数据网络实现通信。
2.一种基于命名数据网络的低延时视频直播系统,其特征在于,包括直播端、用户端和服务器端;所述直播端和所述服务器端之间、所述服务器端和所述用户端之间均通过命名数据网络实现通信;
所述直播端用于录制和编码视频,将编码好的视频流通过RTMP视频传输协议发送到所述服务器端;
所述服务器端用于接收视频流并将其封装为低延时HLS格式,将低延时HLS格式的视频流二次封装为NDN格式的数据报文,在命名数据网络中发布视频流前缀,以提供低延时HLS-NDN服务;所述服务器端包括视频流处理模块、NDN报文封装模块和数据存储模块;
所述视频流处理模块用于将接收的视频流进行转码,并将视频流以低延时HLS格式推送至NDN报文封装模块;所述NDN报文封装模块用于对低延时HLS格式的视频流进行分片和打包,封装为NDN格式的数据报文,并输出至数据存储模块,并在收到待处理Interest报文时立刻通知NDN生产者处理该Interest报文;
所述数据存储模块用于将NDN格式的数据报文保存到同一进程的内存缓存中;所述数据存储模块还包括预加载子模块,所述预加载子模块用于生成待处理Interest报文列表,以当接收到用户端的视频流观看请求时,将其存放到待处理Interest报文列表中;
所述用户端用于发送视频流观看请求和接收并播放所述服务器端响应观看请求所返回的低延时HLS视频流数据。
3.根据权利要求2所述的一种基于命名数据网络的低延时视频直播系统,其特征在于,所述系统还包括管理员端,所述管理员端用于发送创建/删除任务的请求,查看某一人物的详细信息以获取任务运行状态、低延时HLS的视频流播放地址。
4.根据权利要求2或3所述的一种基于命名数据网络的低延时视频直播系统,其特征在于,所述用户端包括网页端播放器、播放器插件、请求输入模块、视频流接收模块;所述网页端播放器用于播放视频;所述播放器插件用于支持所述网页端播放器与所述服务器端的NDN网络通信;所述请求输入模块用于在网页浏览器中输入视频流的NDN名称;所述视频流接收模块用于接收所述服务器端返回的低延时HLS视频流数据。
5.一种计算机设备,其特征在于:包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,其中,所述处理器执行所述计算机程序时实现权利要求1所述的基于命名数据网络的低延时视频直播方法。
CN202210758649.4A 2022-06-30 2022-06-30 一种基于命名数据网络的低延时视频直播方法及系统 Active CN115150632B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210758649.4A CN115150632B (zh) 2022-06-30 2022-06-30 一种基于命名数据网络的低延时视频直播方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210758649.4A CN115150632B (zh) 2022-06-30 2022-06-30 一种基于命名数据网络的低延时视频直播方法及系统

Publications (2)

Publication Number Publication Date
CN115150632A CN115150632A (zh) 2022-10-04
CN115150632B true CN115150632B (zh) 2023-12-05

Family

ID=83409891

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210758649.4A Active CN115150632B (zh) 2022-06-30 2022-06-30 一种基于命名数据网络的低延时视频直播方法及系统

Country Status (1)

Country Link
CN (1) CN115150632B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103929681A (zh) * 2014-04-09 2014-07-16 安徽超远信息技术有限公司 一种提升低速网络中rtp视频流处理效率的方法
CN111372099A (zh) * 2020-03-20 2020-07-03 山东云缦智能科技有限公司 一种低延迟hls直播的实现方法
CN113905258A (zh) * 2021-09-08 2022-01-07 鹏城实验室 视频播放方法、网络设备以及存储介质
CN114501068A (zh) * 2022-04-07 2022-05-13 鹏城实验室 视频直播方法、架构、系统及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10148721B2 (en) * 2016-12-06 2018-12-04 Futurewei Technologies, Inc. Video stream network coding in information centric networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103929681A (zh) * 2014-04-09 2014-07-16 安徽超远信息技术有限公司 一种提升低速网络中rtp视频流处理效率的方法
CN111372099A (zh) * 2020-03-20 2020-07-03 山东云缦智能科技有限公司 一种低延迟hls直播的实现方法
CN113905258A (zh) * 2021-09-08 2022-01-07 鹏城实验室 视频播放方法、网络设备以及存储介质
CN114501068A (zh) * 2022-04-07 2022-05-13 鹏城实验室 视频直播方法、架构、系统及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NDNlive:命名数据网络下的视频直播系统;王丽婧;MOISEENKO Ilya;何文博;汪东升;;计算机科学与探索(第07期);全文 *

Also Published As

Publication number Publication date
CN115150632A (zh) 2022-10-04

Similar Documents

Publication Publication Date Title
US20210211482A1 (en) Hypermedia Apparatus and Method
US10264093B2 (en) Systems and methods for partial video caching
KR101616152B1 (ko) 컴퓨터 구현 방법 및 컴퓨터 시스템
KR101904244B1 (ko) 개량된 스트리밍 미디어 재생
US8621044B2 (en) Smooth, stateless client media streaming
JP6014870B2 (ja) ストリーミング・メディア・コンテンツのリアルタイム・トランスマックス変換の方法およびシステム
US8489760B2 (en) Media file storage format and adaptive delivery system
US6708213B1 (en) Method for streaming multimedia information over public networks
US8046432B2 (en) Network caching for multiple contemporaneous requests
US10397289B2 (en) HTTP live streaming (HLS) video client synchronization
US9832492B2 (en) Distribution of adaptive bit rate video streaming via hyper-text transfer protocol
US9479607B2 (en) Content caching and delivering system with traffic of repetitively requested content reduced
EP3941070A1 (en) Resource transmission method and computer device
EP3101871A1 (en) Updating method and device for cache state based on http, and processor therefor
CN107920072B (zh) 一种基于数据特征的多媒体共享方法及系统
JP2020072461A (ja) 送信装置、サーバ装置、送信方法およびプログラム
CN114501052B (zh) 直播数据处理方法、云平台、计算机设备和存储介质
US20240155019A1 (en) Synchronizing independent media and data streams using media stream synchronization points
CN115150632B (zh) 一种基于命名数据网络的低延时视频直播方法及系统
US20230008021A1 (en) Synchronizing independent media and data streams using media stream synchronization points
WO2023014783A1 (en) Synchronizing independent media and data streams using media stream synchronization points
JP2023112033A (ja) 送信装置、サーバ装置、送信方法およびプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant