CN104967872B - 基于动态自适应码率传输协议hls流媒体的直播方法和服务器 - Google Patents
基于动态自适应码率传输协议hls流媒体的直播方法和服务器 Download PDFInfo
- Publication number
- CN104967872B CN104967872B CN201510309733.8A CN201510309733A CN104967872B CN 104967872 B CN104967872 B CN 104967872B CN 201510309733 A CN201510309733 A CN 201510309733A CN 104967872 B CN104967872 B CN 104967872B
- Authority
- CN
- China
- Prior art keywords
- streaming media
- client
- code rate
- initial
- server
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000005540 biological transmission Effects 0.000 claims description 74
- 238000010586 diagram Methods 0.000 description 14
- 230000003044 adaptive effect Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000002045 lasting effect Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- 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/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234363—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- 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/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/23805—Controlling the feeding rate to the network, e.g. by controlling the video pump
-
- 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/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
- H04N21/25825—Management of client data involving client display capabilities, e.g. screen resolution of a mobile phone
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Graphics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例提供了一种基于动态自适应码率传输协议HLS流媒体的直播方法和服务器,所述方法包括:服务器根据网络属性信息确定初始切片时长和初始编码速率;所述服务器接收客户端的直播服务请求;所述服务器依据所述直播服务请求采用初始切片时长对流媒体进行切片,生成切片文件;所述服务器按照所述初始编码速率将所述切片文件发送给所述客户端;所述客户端用于依据所述切片文件进行直播。本发明实施例通过确定流媒体的初始切片时长和初始编码速率,可以在网络环境较好时,提供尽量短较短的直播延时和尽量高的视频清晰度,并且可以在网络环境较差时,尽量保证流媒体直播的连贯性,以提供一个尽可能好的用户体验。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种基于动态自适应码率传输协议HLS流媒体的直播方法和一种服务器。
背景技术
近年来,流媒体传输领域出现了一种发展趋势,流媒体传输由传统的RTSP(realtime streaming protocol、实时流传输协议)、MMS(Multimedia Messaging Service,多媒体信息服务)、RTMP(Real Time Messaging Protocol,实时消息传送协议)等媒体传输协议在线服务向纯粹的HTTP(Hyper Text Transport Protocol,超文本传输协议)转变。现在已经有许多视频网站采用HTTP传输方案进行媒体内容的传输,形成这种转变主要有以下几个理由:
1、CDN(Content Distribution Network,内容分发网络)以及服务器主机提供的网页下载服务比传统的媒体流服务要便宜;传统的媒体传输协议通常很难穿过防火墙或是路由器,因为它们主要是基于UDP(User Datagram Protocol,用户数据报协议)不定端口来进行传输,而HTTP协议则不存在这个问题,原因在于HTTP基于80固定端口,网络设备对80端口默认支持。
2、采用HTTP协议进行流媒体传输不需要特别进行缓存或代理。
3、采用HTTP协议封装流媒体并传输到客户端,与其他协议相比更加方便和便宜。
目前,互联网上流媒体传输主要有传统流媒体、渐序性下载和流媒体自适应传输这三种类型:
1、传统流媒体。以RTSP协议为例,RTSP协议是一个典型的流媒体传输协议,也是一个有状态的协议。有状态是指从客户端连接上流媒体服务器的那一刻起,一直到客户端断掉与流媒体服务器端的连接,流媒体服务器一直保持着与客户端的连接状态。客户端通过开始play、停止pause、卸载teardown等命令来与流媒体服务器进行通信。
2、渐序性下载。它本质上和从网页服务器上下载一个文件类似。大多数的客户端和媒体传输平台支持渐序性下载,渐序性来自于大多数客户端允许流媒体回看,并且后台可以同时下载节目。支持HTTP 1.1的客户端能够定位到未下载完整的流媒体位置。由于不像传统流媒体的服务器,很少能在一个时间段内够发送超过10秒媒体数据给客户端,HTTP网页服务器能够保证持续的节目数据传输直到整个流媒体下载完成。即使客户端在回看时暂停节目播放,节目数据依然会持续下载到浏览器的缓存中,保证用户能有良好的收看体验。
3、HTTP协议为基础的流媒体自适应传输。这是一种混合型的传输类型,它的传输动作类似流媒体,但是实际上是基于HTTP协议渐序性下载。HTTP协议为基础的流媒体自适应传输的好处在于,使用了已有的HTTP协议而不需要开发一个新的传输协议。微软提出的平滑流Smooth Streaming和移动网络流媒体自适应传输,都是以HTTP协议为基础的流媒体自适应传输的应用实例,该技术能够实现持续的小流媒体文件的下载,而不是一个大流媒体文件的连续下载。在典型的HTTP协议为基础的流媒体自适应传输方案中,音视频节目被编码成许多小的数据片,这些小的数据片组成一个数据块,一个数据块的长度通常为2~4秒长。
流媒体自适应传输技术有几个共同的技术特点:(1)它从同一个节目源产生多个不同码率的流媒体以适应不同的带宽和不同的设备类型。(2)自适应分发文件以及码流传输的变化都是适应有效网络吞吐量和可用的CPU(Central Processing Unit,中央处理器)资源。(3)所有的操作对用户都是透明的,节目源的切换都在后台进行,用户很难注意到节目源的变化。然而,自适应技术方案只限制在客户端,这种动态方法可能限制某些专业用户希望能够自己对特殊内容传输进行微调和控制,降低了系统的灵活性。且由于流媒体的切片长度通常为10秒每片,切片一个片段,缓冲一个片段,延时可能在20秒以上,总体所需时间较长,导致用户体验较差。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于动态自适应码率传输协议HLS流媒体的直播方法和相应的一种服务器。
为了解决上述问题,本发明实施例公开了一种基于动态自适应码率传输协议HLS流媒体的直播方法,包括:
服务器根据网络属性信息确定初始切片时长和初始编码速率;
所述服务器接收客户端的直播服务请求;
所述服务器依据所述直播服务请求采用初始切片时长对流媒体进行切片,生成切片文件;
所述服务器按照所述初始编码速率将所述切片文件发送给所述客户端;所述客户端用于依据所述切片文件进行直播。
优选地,所述流媒体具有对应的流媒体分辨率,所述服务器根据网络属性信息确定初始切片时长和初始编码速率的步骤包括:
服务器获取网络的性能数据和/或客户端的屏幕信息;
所述服务器获取所述流媒体的传输速率;
所述服务器采用所述流媒体分辨率,和/或网络的性能数据,和/或客户端的屏幕信息,和/或传输速率确定所述流媒体的初始切片时长。
优选地,所述流媒体具有对应的分辨率,所述服务器根据网络属性信息确定初始切片时长和初始编码速率的步骤包括:
服务器获取网络的性能数据和/或客户端的屏幕信息;
所述服务器获取所述流媒体的传输速率;
所述服务器采用所述流媒体分辨率,和/或网络的性能数据,和/或客户端的屏幕信息,和/或传输速率确定所述流媒体的初始编码速率。
优选地,所述方法还包括:
所述服务器在所述客户端进行直播的过程中,统计所述切片文件的发送时间,以及在所述客户端的播放时间;
所述服务器采用所述发送时间和所述播放时间调整所述流媒体的初始切片时长,和/或初始编码速率,和/或流媒体分辨率。
优选地,所述服务器采用发送时间和所述播放时间调整所述流媒体的初始切片时长,和/或初始编码速率,和/或流媒体分辨率的步骤包括:
所述服务器判断所述发送时间是否高于所述播放时间;
若所述发送时间高于或等于所述播放时间;则所述服务器提高所述流媒体的初始切片时长;和/或,降低所述流媒体的初始编码速率;和/或,降低所述流媒体的流媒体分辨率;
若所述发送时间低于所述直播时间;则所述服务器降低所述流媒体的初始切片时长;和/或,提高所述流媒体的初始编码速率;和/或,提高所述流媒体的流媒体分辨率。
本发明实施例还公开了一种服务器,包括:
确定模块,用于根据网络属性信息确定初始切片时长和初始编码速率;
接收模块,用于接收客户端的直播服务请求;
切片模块,用于依据所述直播服务请求采用初始切片时长对流媒体进行切片,生成切片文件;
直播模块,用于按照所述初始编码速率将所述切片文件发送给所述客户端;所述客户端用于依据所述切片文件进行直播。
优选地,所述流媒体具有对应的流媒体分辨率,所述确定模块包括:
第一获取子模块,用于获取网络的性能数据和/或客户端的屏幕信息;
第二获取子模块,用于获取所述流媒体的传输速率;
切片时长确定子模块,用于采用所述流媒体分辨率,和/或网络的性能数据,和/或客户端的屏幕信息,和/或传输速率确定所述流媒体的初始切片时长。
优选地,所述流媒体具有对应的流媒体分辨率,所述确定模块包括:
第三获取子模块,用于获取网络的性能数据和/或客户端的屏幕信息;
第四获取子模块,用于获取所述流媒体的传输速率;
初始编码速率确定子模块,用于采用所述流媒体分辨率,和/或网络的性能数据,和/或客户端的屏幕信息,和/或传输速率确定所述流媒体的初始编码速率。
优选地,所述装置还包括:
统计模块,用于在所述客户端进行直播的过程中,统计所述切片文件的发送时间,以及在所述客户端的播放时间;
调整模块,用于采用所述发送时间和所述播放时间调整所述流媒体的初始切片时长,和/或初始编码速率,和/或流媒体分辨率。
优选地,所述调整模块包括:
判断子模块,用于判断所述发送时间是否高于所述播放时间;若所述发送时间高于或等于所述播放时间,则调用第一调整子模块;若所述发送时间低于所述播放时间,则调用第二调整子模块;
第一调整子模块,用于提高所述流媒体的初始切片时长;和/或,降低所述流媒体的初始编码速率;和/或,降低所述流媒体的流媒体分辨率;
第二调整子模块,用于降低所述流媒体的初始切片时长;和/或,提高所述流媒体的初始编码速率;和/或,提高所述流媒体的流媒体分辨率。
本发明实施例包括以下优点:
本发明实施例中根据以确定的初始切片时长和初始编码速率,在接收到客户端的直播服务请求后,按照初始切片时长对流媒体进行切片,并将生成切片文件发送给客户端,以供客户端进行直播。通过确定流媒体的初始切片时长和初始编码速率,可以在网络环境较好时,提供尽量短较短的直播延时和尽量高的视频清晰度,并且可以在网络环境较差时,尽量保证流媒体直播的连贯性,以提供一个尽可能好的用户体验。
本发明实施例在客户端流媒体直播的过程中,可以根据切片文件的发送时间,以及在客户端的播放时间,对于流媒体的初始切片时长,和/或初始编码速率,和/或流媒体分辨率进行相应的调整,通过在网络环境的变化情况进行实时调整,可以进一步保护流媒体直播的连贯性。
附图说明
图1是本发明的一种基于动态自适应码率传输协议HLS流媒体的直播方法实施例一的步骤流程图;
图2是本发明的一种初始切片时长的综合测算示意图;
图3是本发明的一种初始编码速率的综合测算示意图;
图4是本发明的一种流媒体切片缓存以及直播的示意图;
图5是本发明的一种基于动态自适应码率传输协议HLS流媒体的直播方法实施例二的步骤流程图;
图6是本发明的一种服务器实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
以下对于HLS(Http Live Streaming,动态自适应码率传输技术)关键技术点进行介绍:
HLS主要基于TS(Transport Stream,传输流)格式的视频流或文件进行封装传输,HLS类似一个容器封装MPEG TS(Moving Picture Experts Group,运动图象专家组)传输格式。TS格式是广播电视行业中采用的节目传输格式。HLS编码解码采用MPEG-4或H.264/AVC(Advanced Video Coding,高阶视讯编码),音频采用AAC(Advanced Audio Coding,高级音频编码)。这样技术路线使得企业可以使用成熟工业标准,将其应用在互联网电视技术方案上几乎不需要改动,对现有标准兼容的越好,HLS便可以更快进入到产业链中。
其中,HLS方案主要技术特点包括:
1、节目源采用H.264/TS编码格式,可变码率;使用流媒体切片技术将一个完整的节目切成若干小片,通常是10秒每片,同时使用m3u或m3u8格式生成切片配置文件,以指导播放器如何播放切片文件。
2、通过HTTP Server(HTTP服务器)分发节目,同时提供合适的缓存。HLS技术另外一个优势是能够实现动态自适应码率传输。相对于移动流媒体RTP传输技术,HLS能够根据终端用户带宽的可用性在终端而不是在前端视频服务上,实现对码率的切换。这种实现方式可以为用户在无保障的网络上提供较好的用户体验。
3、切片配置文件说明了在同一个频道或文件中不同码率的节目流的对应性。
4、终端根据接收切变文件的时间长度来选择最合适的码率。
5、每个切片文件最长10秒,所以接收设备可以自动适应码率变化。
HLS方案主要不足之处:自适应技术方案只限制在客户端,这种动态方法可能限制某些专业用户希望能够自己对特殊流媒体的传输进行微调和控制,降低了系统的灵活性。一般切片长度为10秒每片,切片一个片段,缓冲一个片段,延时可能在20秒以上(切片是指用户在请求直播时,服务器一侧开始录制一个片段需要10s(假设切片长度为10s),那么客户端获取并缓冲需要10s,这样算出来延时20s),总体所需时间较长,导致用户体验较差。
鉴于现有技术的不足,本发明实施例的核心构思之一在于,提供一种基于HLS的直播优化方案,提供尽可能好的用户体验。如果网络环境较好,则提供较短的直播延时和尽量高的流媒体的视频清晰度,如果网络环境较差,尽量保证直播连贯。
参照图1,示出了本发明的一种基于动态自适应码率传输协议HLS流媒体的直播方法实施例一的步骤流程图,具体可以包括如下步骤:
步骤101,服务器根据网络属性信息确定初始切片时长和初始编码速率;
在本发明的一种优选实施例中,所述流媒体可以具有对应的流媒体分辨率,所述步骤101可以包括如下子步骤:
子步骤S11,服务器获取网络的性能数据和/或客户端的屏幕信息;
子步骤S12,所述服务器获取所述流媒体的传输速率;
子步骤S13,所述服务器采用所述流媒体分辨率,和/或网络的性能数据,和/或客户端的屏幕信息,和/或传输速率确定所述流媒体的初始切片时长。
在本发明实施例中,可以根据网络的性能数据,以及当前客户端连接服务器的传输速率,客户端的屏幕信息中任意的一个或多个的网络属性信息,来确定一个流媒体的初始切片时长,以尽可能短的时间进行切片,以尽可能减少直播延时。
在具体实现中,网络的性能数据可以包括网络的传输速率,在服务初始化时可以通过随机发送几个预置的数据包到客户端,统计数据包发送到客户端的时间,从而可以根据该数据包和时间来预测当前网络的传输速率。一般而言,网络的传输速率是wifi(wireless fidelity,无线传输)路由器内部的传输速率,由于所有数据都是在局域网内部进行,故可不涉及外网速率,因此此时网络的传输速率即可以指代wifi路由器的传输速率。
客户端的屏幕信息可以包括客户端的屏幕分辨率,以及,可使用的显示区域等等。在本发明实施例中可以根据客户端(User Agent,UA)确定客户端的屏幕分辨率,如果是客户端是未知设备,则可以使用默认屏幕分辨率,该默认屏幕分辨率可以设置为640X480。
在本发明实施例中的流媒体的传输速率,可以包括各种分辨率的节目源,即流媒体所对应的流媒体的传输速率。具体来说,流媒体的传输速率可以包括各种分辨率的流媒体的每秒最大的传输速率,最小的传输速率,以及平均的传输速率等等。
参照图2所示的本发明的一种初始切片时长的综合测算示意图,在本发明实施例中,可以结合获得的网络的性能数据,客户端的屏幕信息,流媒体的传输速率综合测算出流媒体的初始切片时长。在实际的流媒体的传输中,应当尽可能清晰和分辨率高的流媒体,因此在确定初始切片时长时,如果网络性能的数据优良,流媒体的传输速率稳定,则可以采用较短的切片时长,否则采用较长的切片时长,一般而言,切片时长范围为1~10秒,在保证流媒体质量以及传输连贯的前提下,采用尽可能短的切片时长,以减小直播时延。
需要说明的是,在本发明实施例中,进行初始切片时长的测算时,可以根据网络的性能数据,客户端的屏幕信息,流媒体的传输速率的其中一个,或者两两结合,或者三者综合测算出初始切片时长,本发明实施例对此不加以限制,此外,为了能够更好地结合实际情况来进行切片时长的测算,还可以结合帧速、节目源和编码方式等相关数据对于初始切片时长进行测算,本发明实施例同样对此不加以限制。
在本发明的一种优选实施例中,所述流媒体可以具有对应的分辨率,所述步骤101可以包括如下子步骤:
子步骤S21,服务器获取网络的性能数据和/或客户端的屏幕信息;
子步骤S22,所述服务器获取所述流媒体的传输速率;
子步骤S23,所述服务器采用所述流媒体分辨率,和/或网络的性能数据,和/或客户端的屏幕信息,和/或传输速率确定所述流媒体的初始编码速率。
在本发明实施例中,对于初始编码速率,其与初始切片时长的测算方式类似,具体可以参考初始切片时长的相关描述,则不在此进行赘述了。
需要说明的是,为保证流媒体传输的稳定性,编码速率应该小于等于wifi的传输速率。而为了提高节目源的播放清晰度,编码速率需要尽可能接近wifi的传输速率,还需要根据wifi路由器的传输速率的稳定性,尽可能保证能传输完成。编码速率在实际中还可以动态地进行变化,应该取一个统计中间值或者稍大一点的值作为编码速率。当然,在具体实现中还可以根据其他情况酌情调整编码速率,本发明实施例对此不加以限制。
参照图3所示的本发明的一种初始编码速率的综合测算示意图,在本发明实施例中,可以结合获得的网络的性能数据,客户端的屏幕信息,流媒体的传输速率综合测算出流媒体的初始编码速率。在实际的流媒体的传输中,应当尽可能清晰和分辨率高的流媒体,因此在确定初始编码速率时,如果网络性能的数据优良,流媒体的传输速率稳定,则可以采用较高的编码速率,否则采用较低的编码速率,在保证流媒体质量以及传输连贯的前提下,采用尽可能高的编码速率,以减小直播时延。
步骤102,所述服务器接收客户端的直播服务请求;
步骤103,所述服务器依据所述直播服务请求采用初始切片时长对流媒体进行切片,生成切片文件;
步骤104,所述服务器按照所述初始编码速率将所述切片文件发送给所述客户端;所述客户端用于依据所述切片文件进行直播。
本发明实施例中在流媒体(即音视频流)的切片过程中,使用预定义机制,提前生成切片配置文件,在切片过程中再根据切片配置文件生成切片文件,切片过程中,采用缓冲机制,边切片边发送切片文件,以尽可能减少直播延时。参照图4所示的本发明的一种流媒体切片缓存以及直播的示意图,具体的步骤可以包括:
A、客户端发送直播服务请求给服务器;
B、服务器接收到直播服务请求,开始直播服务,预生成切片配置文件,该切片配置文件的格式可以为.m3u8,其中包括有初始切片时长等数据;
C、服务器开始获取用于直播的音视频流;
D、服务器对音视频流按照初始切片时长进行编码切片,生成音视频段;
E、服务器对各个音视频段进行缓冲处理,其中各个音视频段的存储格式可以为TS格式;
F、客户端开始进行直播服务;
G、客户端从服务器中获取切片配置文件;
H、客户端按照初始编码速率循环从服务器中接收到缓冲后的音视频段;
I、客户端直播所获取的各个缓冲后的音视频段。
在本发明实施例的一种优选示例中,现有技术中服务器能提供多套节目源,而本发明实施例是可以基于搭建在电视或者机顶盒上的服务器(该服务器与智能终端通过HLS协议进行流媒体的传输)这样由于硬件的限制,可以只提供一套节目源,需要说明的是,HLS协议流媒体自适应传输是指客户端从服务器提供的多套节目源中选取一个,而与现有技术中HLS协议本身能自适应切换码率有区别,本发明实施例则是可以根据网络的性能数据、节目源的分辨率,客户端的屏幕分辨率等任意一个或多个数据确定初始编码速率,以提供尽可能高的分辨率,从而给带来用户较好的体验。
参照图5,示出了本发明的一种基于动态自适应码率传输协议HLS流媒体的直播方法实施例二的步骤流程图,具体可以包括如下步骤:
步骤201,服务器根据网络性能数据确定初始切片时长和初始编码速率;
步骤202,所述服务器接收客户端的直播服务请求;
步骤203,所述服务器依据所述直播服务请求采用初始切片时长对流媒体进行切片,生成切片文件;
步骤204,所述服务器按照所述初始编码速率将所述切片文件发送给所述客户端;所述客户端用于依据所述切片文件进行直播;
步骤205,所述服务器在所述客户端进行直播的过程中,统计所述切片文件的发送时间,以及在所述客户端的播放时间;
步骤206,采用所述发送时间和所述播放时间调整所述流媒体的初始切片时长,和/或初始编码速率,和/或流媒体分辨率。
在本发明实施例中,考虑到现有技术中切片时长和编码速率常是固定的,不论网络环境是好是差,因此在本发明的一种优选的实施例方案是,在确定了初始切片时间长度后,在后续的流媒体的直播过程中,如果网络环境发生变化,仍然可以根据网络环境以及其他相关数据,再次设定流媒体的切片时长和编码速率等等。
在本发明的一种优选实施例中,所述步骤206可以包括如下子步骤:
子步骤S31,所述服务器判断所述发送时间是否高于所述播放时间;若所述发送时间高于或等于所述播放时间;则执行子步骤S32,若所述发送时间低于所述播放时间;则执行子步骤S33;
子步骤S32,所述服务器提高所述流媒体的初始切片时长;和/或,降低所述流媒体的初始编码速率;和/或,降低所述流媒体的流媒体分辨率;
子步骤S33,所述服务器降低所述流媒体的初始切片时长;和/或,提高所述流媒体的初始编码速率;和/或,提高所述流媒体的流媒体分辨率。
在本发明实施例中,在直播过程中统计每个切片文件的发送时间,在保证连贯的前提下,尽可能使用较短的切片时长,较高的编码速率,和/或较高的流媒体分辨率,以提供最好的用户体验。
具体来说,当流媒体的发送时间持续高于流媒体的播放时间,说明编码速率过高,切片时长过短,和/或流媒体分辨率较高,说明网络环境较差,切片文件的直播卡顿,这时可以选择提高切片时长,降低编码速率,和/或降低流媒体分辨率;当流媒体的发送时间持续远低于流媒体的播放时间,说明网络环境较好,降低切片时长,提高编码速率,和/或提高流媒体分辨率。
需要说明的是,在具体实现中可以根据网络环境对于编码速率,切片时长,流媒体分辨率中其中的一个或多个数据进行修改,本发明实施例对此不加以限制。
本发明实施例在客户端进行流媒体直播的过程中,可以根据切片文件的发送时间,以及在客户端的播放时间,对于流媒体的切片时长,和/或编码速率,和/或流媒体分辨率进行相应的调整,通过在网络环境的变化情况进行实时调整,可以进一步保护流媒体直播的连贯性,用户体验效果极佳。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图6,示出了本发明的一种服务器实施例的结构框图,具体可以包括如下模块:
确定模块301,用于根据网络属性信息确定初始切片时长和初始编码速率;
在本发明的一种优选实施例中,所述流媒体可以具有对应的流媒体分辨率,所述确定模块301可以包括如下子模块:
第一获取子模块,用于获取网络的性能数据和/或客户端的屏幕信息;
第二获取子模块,用于获取所述流媒体的传输速率;
切片时长确定子模块,用于采用所述流媒体分辨率,和/或网络的性能数据,和/或客户端的屏幕信息,和/或传输速率确定所述流媒体的初始切片时长。
在本发明的一种优选实施例中,所述确定模块301可以包括如下子模块:
第三获取子模块,用于获取网络的性能数据和/或客户端的屏幕信息;
第四获取子模块,用于获取所述流媒体的传输速率;
初始编码速率确定子模块,用于采用所述流媒体分辨率,和/或网络的性能数据,和/或客户端的屏幕信息,和/或传输速率确定所述流媒体的初始编码速率。
接收模块302,用于接收客户端的直播服务请求;
切片模块303,用于依据所述直播服务请求采用初始切片时长对流媒体进行切片,生成切片文件;
直播模块304,用于按照所述初始编码速率将所述切片文件发送给所述客户端;所述客户端用于依据所述切片文件进行直播。
在本发明的一种优选实施例中,所述的服务器还可以包括如下模块:
统计模块,用于在所述客户端进行直播的过程中,统计所述切片文件的发送时间,以及在所述客户端的播放时间;
调整模块,用于采用所述发送时间和所述播放时间调整所述流媒体的初始切片时长,和/或初始编码速率,和/或流媒体分辨率。
在本发明的一种优选实施例中,所述调整模块可以包括如下子模块:
判断子模块,用于判断所述发送时间是否高于所述播放时间;若所述发送时间高于或等于所述播放时间,则调用第一调整子模块;若所述发送时间低于所述播放时间,则调用第二调整子模块;
第一调整子模块,用于提高所述流媒体的初始切片时长;和/或,降低所述流媒体的初始编码速率;和/或,降低所述流媒体的流媒体分辨率;
第二调整子模块,用于降低所述流媒体的初始切片时长;和/或,提高所述流媒体的初始编码速率;和/或,提高所述流媒体的流媒体分辨率。
对于服务器实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种基于动态自适应码率传输协议HLS流媒体的直播方法和相应的一种服务器,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种基于动态自适应码率传输协议HLS流媒体的直播方法,其特征在于,所述流媒体具有对应的流媒体分辨率,所述方法包括:
服务器获取网络的性能数据和/或客户端的屏幕信息;
所述服务器获取所述流媒体的传输速率;
所述服务器采用所述流媒体分辨率,和/或网络的性能数据,和/或客户端的屏幕信息,和/或传输速率确定所述流媒体的初始切片时长和初始编码速率;其中,所述客户端的屏幕信息包括,客户端的屏幕分辨率,以及可使用的显示区域;
所述服务器接收客户端的直播服务请求;
所述服务器依据所述直播服务请求采用初始切片时长对流媒体进行切片,生成切片文件;
所述服务器按照所述初始编码速率将所述切片文件发送给所述客户端;所述客户端用于依据所述切片文件进行直播。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述服务器在所述客户端进行直播的过程中,统计所述切片文件的发送时间,以及在所述客户端的播放时间;
所述服务器采用所述发送时间和所述播放时间调整所述流媒体的初始切片时长,和/或初始编码速率,和/或流媒体分辨率。
3.根据权利要求2所述的方法,其特征在于,所述服务器采用发送时间和所述播放时间调整所述流媒体的初始切片时长,和/或初始编码速率,和/或流媒体分辨率的步骤包括:
所述服务器判断所述发送时间是否高于所述播放时间;
若所述发送时间高于或等于所述播放时间;则所述服务器提高所述流媒体的初始切片时长;和/或,降低所述流媒体的初始编码速率;和/或,降低所述流媒体的流媒体分辨率;
若所述发送时间低于所述播放时间;则所述服务器降低所述流媒体的初始切片时长;和/或,提高所述流媒体的初始编码速率;和/或,提高所述流媒体的流媒体分辨率。
4.一种服务器,其特征在于,包括:
确定模块,用于根据网络属性信息确定初始切片时长和初始编码速率;
接收模块,用于接收客户端的直播服务请求;
切片模块,用于依据所述直播服务请求采用初始切片时长对流媒体进行切片,生成切片文件;
直播模块,用于按照所述初始编码速率将所述切片文件发送给所述客户端;所述客户端用于依据所述切片文件进行直播;
其中,所述确定模块包括:
第一获取子模块,用于获取网络的性能数据和/或客户端的屏幕信息;其中,所述客户端的屏幕信息包括,客户端的屏幕分辨率,以及可使用的显示区域;
第二获取子模块,用于获取所述流媒体的传输速率;
切片时长确定子模块,用于采用所述流媒体分辨率,和/或网络的性能数据,和/或客户端的屏幕信息,和/或传输速率确定所述流媒体的初始切片时长;
第三获取子模块,用于获取网络的性能数据和/或客户端的屏幕信息;
第四获取子模块,用于获取所述流媒体的传输速率;
初始编码速率确定子模块,用于采用所述流媒体分辨率,和/或网络的性能数据,和/或客户端的屏幕信息,和/或传输速率确定所述流媒体的初始编码速率。
5.根据权利要求4所述的服务器,其特征在于,还包括:
统计模块,用于在所述客户端进行直播的过程中,统计所述切片文件的发送时间,以及在所述客户端的播放时间;
调整模块,用于采用所述发送时间和所述播放时间调整所述流媒体的初始切片时长,和/或初始编码速率,和/或流媒体分辨率。
6.根据权利要求5所述的服务器,其特征在于,所述调整模块包括:
判断子模块,用于判断所述发送时间是否高于所述播放时间;若所述发送时间高于或等于所述播放时间,则调用第一调整子模块;若所述发送时间低于所述播放时间,则调用第二调整子模块;
第一调整子模块,用于提高所述流媒体的初始切片时长;和/或,降低所述流媒体的初始编码速率;和/或,降低所述流媒体的流媒体分辨率;
第二调整子模块,用于降低所述流媒体的初始切片时长;和/或,提高所述流媒体的初始编码速率;和/或,提高所述流媒体的流媒体分辨率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510309733.8A CN104967872B (zh) | 2015-06-08 | 2015-06-08 | 基于动态自适应码率传输协议hls流媒体的直播方法和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510309733.8A CN104967872B (zh) | 2015-06-08 | 2015-06-08 | 基于动态自适应码率传输协议hls流媒体的直播方法和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104967872A CN104967872A (zh) | 2015-10-07 |
CN104967872B true CN104967872B (zh) | 2019-03-12 |
Family
ID=54221795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510309733.8A Active CN104967872B (zh) | 2015-06-08 | 2015-06-08 | 基于动态自适应码率传输协议hls流媒体的直播方法和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104967872B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357591B (zh) * | 2015-11-16 | 2018-10-12 | 北京理工大学 | 一种自适应码率视频直播的QoE监控和优化方法 |
CN105933282A (zh) * | 2016-03-30 | 2016-09-07 | 深圳市宽宏科技有限公司 | 一种基于ott业务的视音屏码流自适应的方法 |
CN106454417B (zh) * | 2016-11-11 | 2019-08-09 | 青岛海信宽带多媒体技术有限公司 | 流媒体倍速播放方法及装置 |
CN107135216B (zh) * | 2017-05-03 | 2020-12-04 | 深圳市小溪流科技有限公司 | 一种加强弱网环境流媒体传输方法 |
CN107170460B (zh) * | 2017-06-30 | 2020-12-08 | 深圳Tcl新技术有限公司 | 音质调整方法、系统、主机端、及存储介质 |
CN108235064A (zh) * | 2017-12-05 | 2018-06-29 | 广州高清视信数码科技股份有限公司 | Hls流媒体直播方法及系统 |
CN110881018B (zh) * | 2018-09-05 | 2020-11-03 | 北京开广信息技术有限公司 | 媒体流的实时接收方法及客户端 |
CN111182366A (zh) * | 2018-11-12 | 2020-05-19 | 玲珑视界科技(北京)有限公司 | 一种支持多屏时移和回看融合生产的系统及方法 |
CN110087142B (zh) * | 2019-04-16 | 2022-01-25 | 咪咕文化科技有限公司 | 一种视频切片方法、装置、终端及存储介质 |
CN112911315B (zh) * | 2019-11-19 | 2024-07-19 | 南京中兴新软件有限责任公司 | 一种流媒体直播录制方法、网络设备及存储介质 |
CN113162895B (zh) * | 2020-12-22 | 2023-04-07 | 咪咕文化科技有限公司 | 动态编码方法、流媒体质量确定方法及电子设备 |
CN113473228B (zh) * | 2021-06-11 | 2022-12-27 | 深圳锐取信息技术股份有限公司 | 8k录播视频的传输控制方法、装置、存储介质及设备 |
CN114173145A (zh) * | 2021-12-08 | 2022-03-11 | 四川启睿克科技有限公司 | 一种基于hls协议动态码率低延迟直播方法 |
CN117596442A (zh) * | 2024-01-16 | 2024-02-23 | 深圳星网信通科技股份有限公司 | 融合通信方法及平台 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101778104A (zh) * | 2009-12-29 | 2010-07-14 | 常州中流电子科技有限公司 | 一种实现自适应带宽播放流媒体的系统及其方法 |
CN102149005A (zh) * | 2011-04-29 | 2011-08-10 | 四川长虹电器股份有限公司 | 自适应带宽控制网络视频质量的方法 |
CN102651825A (zh) * | 2011-12-09 | 2012-08-29 | 中兴通讯股份有限公司 | 一种基于云计算的视频点播方法及系统 |
CN103002272A (zh) * | 2011-09-15 | 2013-03-27 | 上海聚力传媒技术有限公司 | 一种切换音视频信息的码率的方法、装置和设备 |
-
2015
- 2015-06-08 CN CN201510309733.8A patent/CN104967872B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101778104A (zh) * | 2009-12-29 | 2010-07-14 | 常州中流电子科技有限公司 | 一种实现自适应带宽播放流媒体的系统及其方法 |
CN102149005A (zh) * | 2011-04-29 | 2011-08-10 | 四川长虹电器股份有限公司 | 自适应带宽控制网络视频质量的方法 |
CN103002272A (zh) * | 2011-09-15 | 2013-03-27 | 上海聚力传媒技术有限公司 | 一种切换音视频信息的码率的方法、装置和设备 |
CN102651825A (zh) * | 2011-12-09 | 2012-08-29 | 中兴通讯股份有限公司 | 一种基于云计算的视频点播方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104967872A (zh) | 2015-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104967872B (zh) | 基于动态自适应码率传输协议hls流媒体的直播方法和服务器 | |
US11677799B2 (en) | Client feedback enhanced methods and devices for efficient adaptive bitrate streaming | |
US8910229B2 (en) | Methods and devices for efficient adaptive bitrate streaming | |
JP6337350B2 (ja) | ビデオ品質向上 | |
Lederer et al. | Dynamic adaptive streaming over HTTP dataset | |
CN104956631B (zh) | 用于执行链路感知自适应流传输的设备和方法 | |
JP5642779B2 (ja) | クライアント制御セッションレス適応を促進する方法および装置 | |
US9338209B1 (en) | Use of metadata for aiding adaptive streaming clients | |
CN107071529A (zh) | 一种hls视频播放方法、终端及服务器 | |
US20150256600A1 (en) | Systems and methods for media format substitution | |
JP6425649B2 (ja) | Http疑似ストリーミング用の一体型コントローラベースのペーシング | |
US20170238040A1 (en) | Method, computer program product and server for streaming media content from a server to a client | |
CN105357591A (zh) | 一种自适应码率视频直播的QoE监控和优化方法 | |
US20210289013A1 (en) | Chunk-based prediction adaptation logic | |
Bae et al. | Why is http adaptive streaming so hard? | |
US20120303833A1 (en) | Methods for transmitting and receiving a digital signal, transmitter and receiver | |
CN106453270B (zh) | 基于pi控制流媒体的自适应传输算法 | |
CN106791860A (zh) | 一种自适应视频编码控制系统及方法 | |
WO2014110670A1 (en) | Media server | |
Bacega et al. | Study about the applicability of low latency in HAS transmission systems | |
Evensen et al. | Adaptive media streaming to mobile devices: challenges, enhancements, and recommendations | |
Kesavan et al. | Rate adaptation performance and quality analysis of adaptive HTTP streaming methods | |
Kesavan et al. | Network performance analysis of cloud based multimedia streaming service | |
Talan et al. | Mobile Multimedia Traffic Analysis: Clients Can Waste Network Bandwidth | |
Rubio Romero | A dynamic adaptive HTTP streaming video service for Google Android |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Shandong City, Qingdao Province, Jiangxi City Road No. 11 Patentee after: Qingdao Hisense Mobile Communication Technology Co.,Ltd. Country or region after: China Address before: Shandong City, Qingdao Province, Jiangxi City Road No. 11 Patentee before: HISENSE MOBILE COMMUNICATIONS TECHNOLOGY Co.,Ltd. Country or region before: China |