CN114143562A - 延迟最小化方法、服务器及计算机可读记录介质 - Google Patents
延迟最小化方法、服务器及计算机可读记录介质 Download PDFInfo
- Publication number
- CN114143562A CN114143562A CN202111024798.XA CN202111024798A CN114143562A CN 114143562 A CN114143562 A CN 114143562A CN 202111024798 A CN202111024798 A CN 202111024798A CN 114143562 A CN114143562 A CN 114143562A
- Authority
- CN
- China
- Prior art keywords
- server
- client
- group
- audio
- processor
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000005540 biological transmission Effects 0.000 claims description 30
- 230000015654 memory Effects 0.000 claims description 26
- 230000003139 buffering effect Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/233—Processing of audio elementary streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23406—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23418—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26216—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开延迟最小化方法、服务器及计算机可读记录介质。在实时直播环境下针对从主播接收的内容,缓存至少两个图像组,针对客户端的请求,从作为由I帧开始的数据包的、将通过缓存完成的图像组开始传输至上述客户端。
Description
技术领域
本发明涉及在实时直播环境下改善用户体验的质量的技术。
背景技术
实时直播(REAL-TIME LIVE STREAMING)服务可意味着如不断持续的水流般处理所发送的各种多媒体数据的技术。
实时直播技术随着互联网的成长变得更加重要,其原因之一是大部分用户没有拥有能够立即下载大容量内容的快速连接线路。
在这种情况下,在利用流技术时,客户端播放器可以在文件全部传输之前开始显示数据。
例如,韩国公开专利公报第10-2006-0068547号(公开日:2006年06月21日)公开了考虑流服务器与客户端之间的传输率来提供实时直播服务的技术。
发明内容
本发明提供方法和系统,其能够使从选择实时直播平台上的内容的时间点到播放器的实际画面中输出为止的延迟时间最小化,延迟时间是用户在实时直播平台上能够体验的质量之一。
本发明还提供方法和系统,其在用于使延迟时间最小化的缓存(cache)过程中,分析主播(streamer)传输的影像信息,查找播放视频时需要一同播放的音频,将相应视频和音频一同保存。
本发明还提供方法和系统,其对于用户选择的内容,通过缓存使延迟时间最小化,传输可立即播放的视频和音频,其中对视频和音频进行处理使得在传输时不发生播放器同步问题。
本发明提供一种在由计算机实现的服务器中执行的方法,上述服务器包括至少一个处理器,至少一个处理器被配置为执行包含在存储器中的多个计算机可读指令,上述方法包括:缓存步骤,通过上述至少一个处理器,在实时直播环境下针对从主播接收的内容,缓存至少两个图像组;以及传输步骤,通过上述至少一个处理器,针对客户端的请求,从作为由I帧开始的数据包的、通过缓存完成的图像组开始传输至上述客户端。
根据一实施方式,可以基于与上述服务器相关的管理员的设置或上述服务器与上述客户端之间的网络状态,确定图像组的缓存大小。
根据再一实施方式,可以基于与上述服务器相关的管理员的设置或上述服务器与上述客户端之间的网络状态,确定传输对象图像组。
根据另一实施方式,在上述传输步骤中,在上述通过缓存完成的图像组为多个的情况下,可以以上述客户端的连接时间点为基准,从最新完成的图像组开始传输至上述客户端。
根据还有一实施方式,在上述传输步骤中,在上述通过缓存完成的图像组为多个的情况下,可以根据上述服务器与上述客户端之间的网络状态,从多个上述通过缓存完成的图像组中的一个图像组开始传输至上述客户端。
根据又一实施方式,上述传输步骤可以包括:根据上述客户端的图像组的接收状态,丢弃或跳过部分帧后传输剩余帧。
根据又一实施方式,上述缓存步骤可以包括:通过分析上述内容的视频流和音频流,查找与图像组相对应的音频区间,按时间线排列视频数据和音频数据。
根据又一实施方式,上述缓存步骤可以包括:按照视频的帧来分析数据类型,以将I帧分别与对应于该I帧的音频的时间戳对齐的方式对视频数据和音频数据进行分组。
根据又一实施方式,在上述传输步骤中,可以在将视频数据和音频数据按以数据包为单位的数据相交叉的方式重配置后进行传输。
根据又一实施方式,可以基于上述视频数据和上述音频数据的大小,确定数据包的交叉数量。
本发明提供一种计算机可读记录介质,其存储有用于在计算机中执行上述方法的程序。
本发明提供一种由计算机实现的服务器,上述服务器包括至少一个处理器,上述至少一个处理器被配置为执行包括在存储器中的多个计算机可读指令,上述至少一个处理器处理如下过程:在实时直播环境下针对从主播接收的内容,缓存至少两个图像组;以及针对客户端的请求,从作为由I帧开始的数据包的、通过缓存完成的图像组开始传输至上述客户端。
附图说明
图1为示出本发明一实施例的网络环境的示例的图。
图2为用于说明在本发明一实施例中的电子设备以及服务器的内部结构的框图。
图3为示出本发明一实施例的实时直播环境的示例的图。
图4为示出本发明一实施例的服务器的处理器可包括的结构要素的示例的框图。
图5为示出本发明一实施例的服务器可执行的方法的示例的流程图。
图6至图10为用于说明在本发明一实施例中通过流缓存的图像组的传输过程的示例图。
图11为用于说明在本发明一实施例中对齐视频和音频来进行保存的过程的示例图。
图12为用于说明在本发明一实施例中在将视频和音频以数据包为单位重配置后进行传输的过程的示例图。
具体实施方式
以下,参照附图,对本发明的实施例进行详细说明。
本发明的多个实施例涉及在实时直播环境下支持最佳体验质量(Quality ofExperience,QoE)和服务质量(Quality of Service,QoS)的技术。
本发明提供方法和系统,其能够使从选择实时直播平台上的内容的时间点到播放器的实际画面中输出为止的延迟时间最小化,延迟时间是用户在实时直播平台上感受的重要质量之一。
图1为示出本发明一实施例的网络环境的示例的图。图1的网络环境示出包括电子设备110、120、130、140、多个服务器150、160及网络170的示例。上述图1为用于说明本发明的一例,电子设备的数量或服务器的数量并不局限于图1所示数量。
多个电子设备110、120、130、140可以为通过计算机系统实现的固定型终端或移动终端。例如,多个电子设备110、120、130、140包括智能手机(smart phone)、手机、导航仪、计算机、笔记本电脑、数字广播终端、个人数字助理(Personal Digital Assistants,PDA)、便携式多媒体播放器(Portable Multimedia Player,PMP)、平板电脑、游戏机(gameconsole)、可穿戴设备(wearable device)、物联网(internet of things,IoT)设备、虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备等。作为一例,图1中示出智能手机的形状作为电子设备110的示例,但是在本发明的实施例中,电子设备110实质上可以为可利用无线或有线通信方式,通过网络170与其他电子设备120、130、140和/或服务器150、160进行通信的各种物理计算机系统中的一个。
通信方式并不受限,可包括使用网络170可包括的通信网(例如,移动通信网、有线互联网、无线互联网、广播网、卫星网等)的通信方式和多个设备之间的近距离无线通信。例如,网络170可包括个人区域网(personal area network,PAN)、局域网(local areanetwork,LAN)、校园网(campus area network,CAN)、城域网(metropolitan areanetwork,MAN)、广域网(wide area network,WAN)、宽带网(broadband network,BBN)、互联网等网络中的任意一种以上网络。并且,网络170可包括具有总线网络、星型网络、环型网络、网状网络、星型总线网络、树形网络或分级(hierarchical)网络等的网络拓扑中的任意一种以上,但并不局限于此。
服务器150、160各自可以为通过网络170与多个电子设备110、120、130、140进行通信来提供指令、代码、文件、内容、服务等的计算机装置或多个计算机装置。例如,服务器150可以为向通过网络170访问的多个电子设备110、120、130、140提供第一服务的系统,服务器160也可以为向通过网络170访问的多个电子设备110、120、130、140提供第二服务的系统。作为更具体的示例,服务器150可通过安装于多个电子设备110、120、130、140来驱动的作为计算机程序的应用,将该应用所需要的服务(作为一例,实时直播服务等)作为第一服务向多个电子设备110、120、130、140提供。作为另一例,服务器160可将向多个电子设备110、120、130、140分配用于安装及驱动上述应用的文件的服务作为第二服务提供。
图2为用于说明在本发明一实施例中的电子设备以及服务器的内部结构的框图。在图2中,作为电子设备的示例,说明电子设备110及服务器150的内部结构。并且,其他电子设备120、130、140或服务器160也可以具有与上述电子设备110或服务器150相同或类似的内部结构。
电子设备110和服务器150可包括存储器211、221、处理器212、222、通信模块213、223及输入输出接口214、224。存储器211、221作为计算机可读记录介质,可包括随机存取存储器(random access memory,RAM)、如只读存储器(read only memory,ROM)、硬盘驱动器、固态硬盘(solid state drive,SSD)、闪存(flash memory)等的非易失性大容量存储装置(permanent mass storage device)。其中,如只读存储器、固态硬盘、闪存、硬盘驱动器等的非易失性大容量存储装置为与存储器211、221区分的单独的永久存储装置,可包含在电子设备110或服务器150中。并且,存储器211、221可存储操作系统和至少一个程序代码(作为一例,用于安装于电子设备110来驱动的浏览器或为了提供特定服务而安装于电子设备110的应用等的代码)。上述软件结构要素可独立于与存储器211、221的计算机可读记录介质加载。上述独立的计算机可读记录介质可包括软盘驱动器、磁盘、磁带、DVD/CD-ROM驱动器、存储卡等计算机可读记录介质。在另一实施例中,软件结构要素不是通过计算机可读记录介质,而是通过通信模块213、223加载到存储器211、221。例如,至少一个程序可基于通过文件安装的计算机程序(作为一例,上述应用)加载到存储器211、221,上述文件由开发人员或用于分发应用的安装文件的文件分发系统(例如,上述服务器160)通过网络170提供。
处理器212、222可被配置为执行基本的算术、逻辑及输入输出计算,由此可以处理计算机程序的指令。指令可通过存储器211、221或通信模块213、223向处理器212、222提供。例如,处理器212、222可被配置为根据存储于如存储器211、221中的存储装置的程序代码来执行所接收的指令。
通信模块213、223可提供通过网络170来使电子设备110与服务器150相互进行通信的功能,并可提供电子设备110和/或服务器150与其他电子设备(作为一例,电子设备120)或其他服务器(作为一例,服务器160)进行通信的功能。作为一例,电子设备110的处理器212根据存储于如存储器211的存储装置中的程序代码生成的请求可根据通信模块213的控制,通过网络170向服务器150传递。相反,根据服务器150的处理器222的控制提供的控制信号或指令、内容、文件等可经过通信模块223和网络170来通过电子设备110的通信模块213向电子设备110提供。例如,通过通信模块213接收的服务器150的控制信号或指令、内容、文件等可传递至处理器212或存储器211,内容或文件等可存储于电子设备110可进一步包括的存储介质(上述永久存储装置)中。
输入输出接口214可以为用于与输入输出装置215的接合的单元。例如,输入装置可包括键盘、鼠标、麦克风、摄像头等装置,并且输出装置可包括如显示器、扬声器、触觉反馈装置(haptic feedback device)等的装置。作为另一例,输入输出接口214也可以为用于与如触摸屏的用于输入和输出的功能集成为一体的装置的接合的单元。输入输出装置215也可以与电子设备110配置为一个装置。并且,服务器150的输入输出接口224可以为用于与和服务器150相连接或者服务器150可包括的用于输入或输出的装置(未图示)的接合的单元。作为更具体的示例,电子设备110的处理器212在处理向存储器211加载的计算机程序的指令的过程中,利用服务器150或电子设备120提供的数据来构成的服务画面或内容可通过输入输出接口214显示在显示器上。
并且,在另一实施例中,电子设备110及服务器150可包括比图2的结构要素更多的结构要素。但是,无需明确示出大部分现有技术的结构要素。例如,电子设备110可包括上述输入输出装置215中的至少一部分,或者还可包括如收发器(transceiver)、全球定位系统(Global Positioning System,GPS)模块、摄像头、各种传感器、数据库等的其他结构要素。作为更具体的示例,在电子设备110为智能手机的情况下,电子设备110还可包括智能手机通常包括的加速度传感器、陀螺仪传感器、摄像头模块、各种物理按钮、利用触摸板的按钮、输入输出端口、用于振动的振动器等各种结构要素。
以下,说明在实时直播环境下能够使用户体验的延迟时间最小化的方法及系统的具体实施例。
图3为示出本发明一实施例的实时直播环境的示例的图。
图3示出作为实时直播环境的一实施例的包括客户端310、内容提供者(ContentsProvider,CP)320及服务器350的内容分发网络(Contents Delivery Network,CDN)服务环境。服务器350能够与通过图1和图2已说明的服务器150相对应,客户端310和内容提供者320能够与通过图1和图2进行说明的电子设备110、120、130、140中任意一个相对应。
内容分发网络服务作为实时直播环境的服务,以如下体系运营,即在将对应于主播(streamer)的内容提供者320所提供的内容事先存储至互联网服务提供商(InternetService Provider,ISP)的网络下端安装的多台服务器350后,当从对应于观众(viewer)的客户端310得到请求时,将该内容传输至客户端310。
客户端310侧的播放器(player)可以在从服务器350接收用户在平台上选择的内容后,通过输出设备(显示器、扬声器等)输出所接收的内容进行播放。
从选择平台上的内容的时间点开始至播放器的画面中实际播放内容会有延迟时间,延迟时间是在上述的实时直播环境下用户感受的质量之一。
本发明的多个实施例可包括可以使上述延迟时间最小化的技术,同时,可包括可以去除为了使延迟时间最小化而适用的技术的副作用的技术。
图4为示出本发明一实施例的服务器的处理器可包括的结构要素的示例的框图,图5为示出本发明一实施例的服务器可执行的方法的示例的流程图。
本实施例的服务器350起到在实时直播环境下将内容提供者320所提供的内容传输至客户端310的缓存服务器的作用。服务器350可包括由计算机实现的实时直播系统。服务器350可以通过安装在客户端310上的专用应用程序或与服务器350相关的网络/移动网站访问,以客户端310为对象提供实时直播服务。
如图4所示,服务器350的处理器222可包括用于执行图5所示的实时直播方法的结构要素,即,流接收部410、流缓存部420、音频视频分析部430及流传输部440。根据实施例,处理器222的多个结构要素可选择性地包括在处理器222中或还可从处理器222排除。并且,根据实施例,为了表现出处理器222的功能,处理器222的多个结构要素还可以分离或合并。
这种处理器222及处理器222的多个结构要素能够控制服务器350,以执行图5所示的实时直播方法所包括的多个步骤S510至S540。例如,处理器222及处理器222的多个结构要素可以执行存储器221所包含的操作系统的代码和基于至少一个程序代码的指令(instruction)。
其中,处理器222的多个结构要素可以为根据存储于服务器350中的程序代码所提供的指令,来通过处理器222执行的多个不同功能(different functions)的表现。例如,作为处理器222根据上述指令控制服务器350以使服务器350从内容提供者320接收内容流的功能性表现,可以使用流接收部410。
处理器222可从加载有与服务器350的控制相关的指令的存储器221读取所需指令。在此情况下,所读取的上述指令可包含用于控制处理器222执行如下将要说明的步骤S510至步骤S540的指令。
下面将要说明的步骤S510至步骤S540可以以与图5所示的顺序不同的顺序执行,还可以省略步骤S510至步骤S540中的一部分或添加额外的步骤。
参照图5,在步骤S510中,流接收部410通过实时直播平台,可以接收作为主播的内容提供者320提供的内容流。
在步骤S520中,流缓存部420对于在步骤S510中已接收的内容,能够以图像组为单位缓存视频流。视频包括I帧(intra frame)、P帧(predicted frame)、B帧(bidirectionalframe),为了开始播放必须需要至少一个I帧。流缓存部420响应于客户端310的请求,为传输由I帧开始的数据包,能够以图像组为单位缓存视频流。
在步骤S530中,音频视频分析部430可通过分析视频流和音频流,查找与图像组单位相对应的音频区间并与相应的视频一同保存。为了解决以客户端310为对象以由I帧开始的图像组为单位传输视频流而产生的副作用,音频视频分析部430可以查找以图像组为单位的视频与该视频相对应的音频区间,对齐视频和音频来进行排列及保存。
在步骤S540中,流传输部440可以根据客户端310的请求,将以图像组为单位的视频流和音频一同传输至客户端310的播放器。流传输部440在将已缓存的以图像组为单位的视频和与该视频相对应区间的音频传输至客户端310的播放器的过程中,能够以将视频和音频以作为数据传输的最小单位的数据包为单位交叉编辑的方式进行传输。为了解决以图像组为单位传输视频流而产生的副作用,可以将视频和音频以数据包为单位相交叉的方式重配置后传输至客户端310的播放器。
以下,通过具体实施例,描述实时直播过程。
通常,视频具有I帧、P帧、B帧按规定模式重复的形式,能够以一个图像帧组为单位,即,能够以图像组为单位进行编码。参照图6,一个图像组包括I帧、P帧、B帧,I帧与I帧之间排列B帧和P帧。换言之,将由I帧开始的连续的多个帧的集合称为图像组。根据情况可以没有B帧,只由I帧和P帧组成图像组。
I帧意味着关键帧(key frame),相当于作为图像组的基准的核心帧。所有图像组的首个帧必须始于I帧。I帧是原样保存的帧,不参考之前的其它帧。而且,P帧为前向预测的帧,以紧接在之前的I帧为基准,预测有差异的部分数据进行存储的帧。最后,B帧为双向预测的帧,位于I帧与P帧之间,同时参考两侧的帧,将两个帧之间的变化存储为预测数据的帧。
如图7所示,为了收看内容,客户端310连接服务器350的时间点大多处于客户端310连接时正在生成的图像组的中间,很有可能从该位置开始接收流。例如,当正在生成图像组1的过程中连接时,客户端310会接收从连接时间点之后的流,在之后接收新的图像组(图像组2)的视频开始数据包之前,即,在接收I帧(I_2)之前,观众通过播放器画面看不到任何内容,所以会体验到延迟。
为了使这种延迟时间最小化,在服务器350中安装以图像组为单位的缓存。在本实施例中,并非从客户端310的连接时间点之后的流开始传输,而是可以通过视频流缓存,作为由I帧开始的图像组,传输最新完成缓存的完整图像组,来使延迟时间最小化。客户端310可从作为以图像组为单位的视频流的I帧开始接收,从而在播放器上立即播放视频。
在本实施例中,可以考虑服务器管理员的设置或客户端310与服务器350之间的网络状态等,确定针对视频流的缓存大小。
在视频流缓存过程中,当更新新的图像组时,丢弃已缓存的图像组中最先完成的一个图像组。
参照图8,在缓存701的大小为1的情况下,在完成一个图像组之前有客户端310连接时,即,在图像组缓存过程中连接的情况下,在图像组完成为止,无法传输流,从而观众仍会感受到延迟。这是因为在一个I帧完成为图像组之前连接的情况下,从连接时间点开始至完成图像组再通过网络传输至客户端310为止的延迟就会暴露无遗。
为了避免这种问题,在本实施例中,可以适用大小为2以上的缓存702,以能够缓存至少两个图像组。换言之,可以指定图像组的缓存大小至少为2,并且还可以以客户端310的连接时间点为基准,设置传输哪一个图像组。
例如,可以指定图像组的缓存大小为2,并从最新完成的图像组开始访问。如图9所示,假设在缓存702中,图像组1已完成、图像组2正在缓存中,客户端310即使是在时间点进行访问,也可以从已完成的图像组(图像组1)开始接收并立即播放,因此可去除正在缓存中的图像组2完成至传输为止的延迟时间。
说明了以客户端310的连接时间点为基准传输最新完成的图像组,但根据情况,可另行确定传输对象图像组。例如,参照图10,在图像组的缓存大小为3的情况下,按时间顺序先完成图像组1和图像组2,正在缓存图像组3的状态下,当客户端310在时间点连接时,可以考虑与客户端310的网络状态,在图像组1与图像组2中确定从哪一个图像组开始传输。作为一例,可以以客户端310的连接时间点为基准,在当前网络带宽为临界值以上时,从最新完成的图像组2开始传输,在当前网络带宽低于临界值时,从图像组2之前完成的图像组1开始传输。
作为其他示例,可适用根据网络宽带传输数据的自适应比特率发布(ABP,Adaptive Bitrate Publish)技术。在实时协议(例如,实时消息传输协议(real timemessaging protocol,RTMP)等)环境下可以利用适应性数据传输技术,该技术测量网络宽带,根据测量的宽带适应性地立即变更比特率(bitrate)或每秒帧数(frame per second,fps)等。类似地,利用流缓存的实时直播环境下,基于客户端310的连接时间点,从最新完成的图像组开始传输,在客户端310的监控结果为客户端310侧的接收状况不佳而导致图像组被推迟的情况下,可以适用从图像组中丢弃(drop)部分数据包(B帧及/或P帧)的方式或与内容的传输时间对齐地跳过或跳跃部分图像组的方式等。根据针对客户端310的监控周期,需要丢弃(跳过或跳跃)的帧长度可变。例如,在客户端310为收看特定节目而连接的情况下,以连接时间点为基准,从最新完成的图像组开始传输至客户端310侧后,第一次监控结果为客户端310侧没能正常接收图像组而是被推迟,则丢弃相当于第一长度的帧。在第二次监控结果也是图像组持续被推迟的情况下,则丢弃比第一长度更大的相当于第二长度的帧。换言之,为了客户端310侧的顺畅观看,基于客户端310的接收状态,丢弃部分帧后,传输剩余帧,此时,可根据监控周期调整需要丢弃的帧的长度。
将视频流以I帧开始的图像组为单位进行缓存并传输,可使延迟时间最小化,但也有可能增加客户端310侧的播放器误操作的可能性。由于图像组只包括视频信息,因此,播放器内置的音频/视频同步机制的操作可能会发生错误。例如,在以先传输作为视频数据的一个图像组后再传输音频的方式进行的情况下,由于视频数据的大小,可能在接收过程中视为没有音频数据并开始播放。
为了避免此类问题,处理器222可以通过分析由内容提供者320传输的视频信息(视频流和音频流),不仅是图像组而且一个图像组播放时需要一同播放的音频也可以按照时间线排列保存。
参照图11,在流缓存过程中,可以按照视频的帧,分析数据类型(I帧、B帧、P帧),并将I帧(I_1、I_2、…)分别与对应于该I帧的音频(音频1、音频2、…)的时间戳对齐,对视频和音频进行分组。
并且,处理器222在通过上述分组一同缓存视频和音频并传输至播放器时,可考虑播放器的音频视频同步机制进行传输。
在将相当于视频数据的一个图像组全部传输后再传输音频,或先传输音频后再传输一个图像组的情况下,根据传输的视频或音频的数据大小,播放器的音频视频同步机制可能会出现问题。
为了解决此类问题,处理器222可以在将视频和音频按以数据包为单位相交叉编辑的方式重配置后进行传输。参照图12,处理器222可以在将相当于一个图像组(图像组1)的视频数据和音频数据(音频1)传输至客户端310的播放器时,与时间线对齐,以数据包为单位的视频V和音频A相交叉的方式重配置后进行传输。
在数据包交叉方法中,视频V和音频A的数据包可以以一对一相交叉的方式排列。作为其他示例,也可以根据视频V和音频A的数据的大小,来确定数据包交叉数量,按照一对一、一对多、多对一、多对多中任意一种方式交叉排列。
通过将视频数据和音频数据按以数据包为单位交叉编辑的方式重配置后进行传输,从而可使播放器的音频视频同步机制不会出现问题。
播放器只有接收I帧才能播放画面。由于用户连接时间点与I帧的位置相对应的可能性低,因此以连接时间点为基准,通过传输最新完成的图像组,可以保证播放器始终从I帧开始接收来尽快播放。
实时消息传输协议等实时直播协议在传输控制协议上运行。为了使传输控制协议中的传输速度足够快,必须经过慢启动(slow start)过程确保充分的宽带。在服务器350中,通过流缓存将图像组传输至播放器,可以获得快速进行慢启动过程的预热(warm-up)效果。
不仅如此,通常播放器为了稳定的播放,内部缓冲器填充规定大小以上的数据才能开始播放。在服务器350中,通过流缓存将图像组传输至播放器,可以快速填充缓冲器,不仅可以绘制根据I帧的初始画面,还可以快速处理后续实际播放视频。
如上所述,根据本发明的实施例,在实时直播环境下,可以利用以图像组为单位的缓存,向播放器传输可立即播放的视频和音频,使延迟时间最小化,提高用户体验质量。进而,根据本发明的实施例,在使延迟时间最小化的缓存过程中,分析主播传输的影像信息,查找播放视频时需要一同播放的音频并一同保存后,在传输过程中以将视频和音频以数据包为单位交叉编辑的方式进行传输,从而能够有效解决因缓存层的副作用而可能发生的播放器中的同步问题。
以上说明的装置可以由硬件结构要素、软件结构要素和/或硬件结构要素和软件结构要素的组合来实现。例如,在实施例中说明的装置及结构要素可利用如处理器、控制器、算数逻辑单元(arithmetic logic unit,ALU)、数字信号处理器(digital signalprocessor)、微型计算机、现场可编程门阵列(field programmable gate array,FPGA)、可编程逻辑单元(programmable logic unit,PLU)、微处理器或可执行并响应指令(instruction)的其他装置的一个以上的通用计算机或专用计算机实现。处理装置可以执行操作系统(OS)及在上述操作系统上执行的一个以上的软件应用。并且,处理装置响应于软件的执行来访问、存储、操作、处理及生成数据。为了方便理解,说明了仅使用一个处理装置的情况,但本发明所属技术领域的普通技术人员可以理解处理装置可包括多个处理要素(processing element)和/或各种类型的处理要素。例如,处理装置可包括多个处理器或一个处理器及一个控制器。并且,也可以是如并行处理器(parallel processor)的其他处理结构(processing configuration)。
软件可包含计算机程序(computer program)、代码(code)、指令(instruction)或它们中的一种以上组合,以按需要进行工作的方式配置处理装置或独立或结合性(collectively)地向处理装置下达指令。软件和/或数据为了通过处理装置解析或者为了向处理装置提供指令或数据而可以具体表现(embody)在任何类型的机器、结构要素(component)、物理装置、计算机记录介质或装置中。软件分布在通过网络连接的计算机系统上,从而可通过分布的方法存储或执行。软件及数据可存储于一个以上计算机可读存储介质中。
实施例的方法实现为可通过各种计算机单元执行的程序指令形式,以可以存储在计算机可读介质中。在此情况下,介质可以继续存储能够通过计算机执行的程序,或者为了执行或下载而临时存储。并且,介质可以为单一或多个硬件结合的形式的各种记录单元或存储单元,而并不局限于与一种计算机系统直接连接的介质,而可以在网络上分布存在。作为介质的例示,包括如硬盘、软盘及磁带的磁介质、如CD-ROM及DVD的光存储介质、如光磁软盘(floptical disk)的磁光介质(magneto-optical medium)及只读存储器、随机存取存储器、闪存等在内的、配置为存储程序指令的介质。并且,作为其他介质的例示,也可以为流通应用的应用商城或提供或流通其他各种软件的网站、在服务器等中管理的存储介质或记录介质。
如上所述,虽然通过限定的实施例和附图说明了多个实施例,只要是本发明所属技术领域的普通技术人员,就可以从上述记载进行各种修改及变形。例如,即使所说明的技术与所说明的方法不同的顺序执行和/或所说明的系统、结构、装置、电路等的结构要素与所说明的方法不同的形式结合或组合,或者通过其他结构要素或等同物代替或置换,也可以实现适当结果。
因此,其他实例、其他实施例及与发明要求保护范围等同的内容也属于本发明的发明要求保护范围内。
Claims (20)
1.一种在由计算机实现的服务器中执行的方法,其特征在于,
上述服务器包括至少一个处理器,上述至少一个处理器被配置为执行包括在存储器中的多个计算机可读指令,
上述方法包括:
缓存步骤,通过上述至少一个处理器,在实时直播环境下针对从主播接收的内容,缓存至少两个图像组;以及
传输步骤,通过上述至少一个处理器,针对客户端的请求,从作为由I帧开始的数据包的、通过缓存完成的图像组开始传输至上述客户端。
2.根据权利要求1所述的方法,其特征在于,基于与上述服务器相关的管理员的设置或上述服务器与上述客户端之间的网络状态,确定图像组的缓存大小。
3.根据权利要求1所述的方法,其特征在于,基于与上述服务器相关的管理员的设置或上述服务器与上述客户端之间的网络状态,确定传输对象图像组。
4.根据权利要求1所述的方法,其特征在于,在上述传输步骤中,在上述通过缓存完成的图像组为多个的情况下,以上述客户端的连接时间点为基准,从最新完成的图像组开始传输至上述客户端。
5.根据权利要求1所述的方法,其特征在于,在上述传输步骤中,在上述通过缓存完成的图像组为多个的情况下,根据上述服务器与上述客户端之间的网络状态,从多个上述通过缓存完成的图像组中的一个图像组开始传输至上述客户端。
6.根据权利要求1所述的方法,其特征在于,上述传输步骤包括:根据上述客户端的图像组的接收状态,丢弃或跳过部分帧后传输剩余帧。
7.根据权利要求1所述的方法,其特征在于,上述缓存步骤包括:通过分析上述内容的视频流和音频流,查找与图像组相对应的音频区间,按时间线排列视频数据和音频数据。
8.根据权利要求1所述的方法,其特征在于,上述缓存步骤包括:按照视频的帧来分析数据类型,以将I帧分别与对应于该I帧的音频的时间戳对齐的方式对视频数据和音频数据进行分组。
9.根据权利要求1所述的方法,其特征在于,在上述传输步骤中,在将视频数据和音频数据按以数据包为单位的数据相交叉的方式重配置后进行传输。
10.根据权利要求9所述的方法,其特征在于,基于上述视频数据和上述音频数据的大小,确定数据包的交叉数量。
11.一种计算机可读记录介质,其特征在于,存储有用于在计算机中执行权利要求1至10中任一项所述的方法的程序。
12.一种服务器,由计算机实现,其特征在于,
上述服务器包括至少一个处理器,上述至少一个处理器被配置为执行包括在存储器中的多个计算机可读指令,
上述至少一个处理器处理如下过程:
在实时直播环境下针对从主播接收的内容,缓存至少两个图像组;以及
针对客户端的请求,从作为由I帧开始的数据包的、通过缓存完成的图像组开始传输至上述客户端。
13.根据权利要求12所述的服务器,其特征在于,基于与上述服务器相关的管理员的设置或上述服务器与上述客户端之间的网络状态,确定图像组的缓存大小。
14.根据权利要求12所述的服务器,其特征在于,基于与上述服务器相关的管理员的设置或上述服务器与上述客户端之间的网络状态,确定传输对象图像组。
15.根据权利要求12所述的服务器,其特征在于,在上述通过缓存完成的图像组为多个的情况下,上述至少一个处理器以上述客户端的连接时间点为基准,从最新完成的图像组开始传输至上述客户端。
16.根据权利要求12所述的服务器,其特征在于,在上述通过缓存完成的图像组为多个的情况下,上述至少一个处理器根据上述服务器与上述客户端之间的网络状态,从多个上述通过缓存完成的图像组中的一个图像组开始传输至上述客户端。
17.根据权利要求12所述的服务器,其特征在于,上述至少一个处理器根据上述客户端的图像组的接收状态,丢弃或跳过部分帧后传输剩余帧。
18.根据权利要求12所述的服务器,其特征在于,上述至少一个处理器通过分析上述内容的视频流和音频流,查找与图像组相对应的音频区间,按时间线排列视频数据和音频数据。
19.根据权利要求12所述的服务器,其特征在于,上述至少一个处理器按视频的帧分析数据类型,以将I帧分别与对应于该I帧的音频的时间戳对齐的方式对视频数据和音频数据进行分组。
20.根据权利要求12所述的服务器,其特征在于,上述至少一个处理器在将视频数据和音频数据按以数据包为单位的数据相交叉的方式重配置后进行传输。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200112420A KR20220030736A (ko) | 2020-09-03 | 2020-09-03 | 실시간 라이브 스트리밍에서 지연을 최소화하기 위한 방법, 시스템, 및 컴퓨터 판독가능한 기록 매체 |
KR10-2020-0112420 | 2020-09-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114143562A true CN114143562A (zh) | 2022-03-04 |
Family
ID=80393909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111024798.XA Pending CN114143562A (zh) | 2020-09-03 | 2021-09-02 | 延迟最小化方法、服务器及计算机可读记录介质 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP2022042997A (zh) |
KR (1) | KR20220030736A (zh) |
CN (1) | CN114143562A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240057844A (ko) * | 2022-10-25 | 2024-05-03 | 삼성전자주식회사 | 전자 장치, 서버 장치 및 그 제어 방법 |
KR102629381B1 (ko) * | 2023-05-18 | 2024-01-25 | 주식회사 짠컴퍼니 | 커뮤니티 라이브 스트리밍 제공시스템 및 그 방법 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998034405A1 (en) * | 1997-01-30 | 1998-08-06 | Microsoft Corporation | Vcr-like functions rendering video on demand |
CN106604064A (zh) * | 2016-12-30 | 2017-04-26 | 北京奇艺世纪科技有限公司 | 一种快速开播方法及装置 |
CN106791994A (zh) * | 2016-12-30 | 2017-05-31 | 北京奇艺世纪科技有限公司 | 一种低延时快速开播方法及装置 |
CN107690073A (zh) * | 2016-08-05 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 一种视频直播方法及视频直播服务器 |
CN108471548A (zh) * | 2018-01-25 | 2018-08-31 | 湖南机友科技有限公司 | 直播视频快速播放方法及装置 |
CN108540819A (zh) * | 2018-04-12 | 2018-09-14 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、装置、计算机设备和存储介质 |
-
2020
- 2020-09-03 KR KR1020200112420A patent/KR20220030736A/ko active Search and Examination
-
2021
- 2021-09-01 JP JP2021142379A patent/JP2022042997A/ja active Pending
- 2021-09-02 CN CN202111024798.XA patent/CN114143562A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998034405A1 (en) * | 1997-01-30 | 1998-08-06 | Microsoft Corporation | Vcr-like functions rendering video on demand |
US6754715B1 (en) * | 1997-01-30 | 2004-06-22 | Microsoft Corporation | Methods and apparatus for implementing control functions in a streamed video display system |
CN107690073A (zh) * | 2016-08-05 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 一种视频直播方法及视频直播服务器 |
CN106604064A (zh) * | 2016-12-30 | 2017-04-26 | 北京奇艺世纪科技有限公司 | 一种快速开播方法及装置 |
CN106791994A (zh) * | 2016-12-30 | 2017-05-31 | 北京奇艺世纪科技有限公司 | 一种低延时快速开播方法及装置 |
CN108471548A (zh) * | 2018-01-25 | 2018-08-31 | 湖南机友科技有限公司 | 直播视频快速播放方法及装置 |
CN108540819A (zh) * | 2018-04-12 | 2018-09-14 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2022042997A (ja) | 2022-03-15 |
KR20220030736A (ko) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10326810B2 (en) | Parallel streaming | |
US8190674B2 (en) | Variable rate media delivery system | |
US9473548B1 (en) | Latency reduction in streamed content consumption | |
US20140052846A1 (en) | Adaptive video streaming over a content delivery network | |
KR102123593B1 (ko) | 실시간 라이브 영상과 이벤트의 동기화를 위한 방법과 시스템 및 비-일시적인 컴퓨터 판독 가능한 기록 매체 | |
JP2008503926A (ja) | ネットワークを介したメディアの対話型制御のための方法及びシステム | |
CN114143562A (zh) | 延迟最小化方法、服务器及计算机可读记录介质 | |
KR101899576B1 (ko) | 멀티미디어 컨텐츠의 원격 운영을 위한 시간 동기화 방법 및 그 시스템 | |
US11218746B2 (en) | Method, system, and non-transitory computer readable record medium for video quality control | |
KR102408778B1 (ko) | 인터넷 전화 기반 통화 중에 컨텐츠를 공유하는 방법, 시스템, 및 컴퓨터 프로그램 | |
KR101791208B1 (ko) | 생중계 데이터를 공유하는 방법 및 시스템 | |
KR101998303B1 (ko) | 타임머신 기능을 위한 슬라이딩 윈도우 관리 방법 및 시스템 | |
CN115623230A (zh) | 直播视频的播放方法、装置、电子设备及存储介质 | |
KR102403263B1 (ko) | 다중 라이브 송출 환경에서의 채널 간 고속 전환 모드를 구현하는 방법, 시스템, 및 컴퓨터 판독가능한 기록 매체 | |
KR102238720B1 (ko) | 인코딩과 업로딩의 병행 처리를 통해 미디어 파일의 전송 시간을 단축시킬 수 있는 방법 및 시스템 | |
KR101949494B1 (ko) | 멀티미디어 컨텐츠의 운영을 위한 원격 툴을 제공하는 방법 및 시스템 | |
KR102376295B1 (ko) | 트래픽 제어 정보를 이용하여 미디어를 재생하는 방법과 시스템 및 컴퓨터 판독가능한 기록 매체 | |
KR102531647B1 (ko) | 환경인지 기반 abp 성능 개선을 위한 방법, 컴퓨터 시스템, 및 컴퓨터 프로그램 | |
KR101865627B1 (ko) | 멀티미디어 컨텐츠의 운영을 위한 원격 툴을 제공하는 방법 및 시스템 | |
KR101859560B1 (ko) | 멀티미디어 컨텐츠의 원격 운영을 위한 시간 동기화 방법 및 그 시스템 | |
KR102341322B1 (ko) | 실시간 라이브 스트리밍에서의 abp 동작 개선을 위한 방법, 시스템, 및 컴퓨터 판독가능한 기록 매체 | |
AU2016269533A1 (en) | Parallel streaming | |
AU2014262271B2 (en) | Parallel streaming | |
KR20200002771A (ko) | 지연 생중계를 위한 방법 및 시스템 |
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 |