CN113923502B - 直播视频播放方法及装置 - Google Patents

直播视频播放方法及装置 Download PDF

Info

Publication number
CN113923502B
CN113923502B CN202111301198.3A CN202111301198A CN113923502B CN 113923502 B CN113923502 B CN 113923502B CN 202111301198 A CN202111301198 A CN 202111301198A CN 113923502 B CN113923502 B CN 113923502B
Authority
CN
China
Prior art keywords
file
live video
player
target
slice file
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
CN202111301198.3A
Other languages
English (en)
Other versions
CN113923502A (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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202111301198.3A priority Critical patent/CN113923502B/zh
Publication of CN113923502A publication Critical patent/CN113923502A/zh
Priority to PCT/CN2022/099262 priority patent/WO2023077812A1/zh
Application granted granted Critical
Publication of CN113923502B publication Critical patent/CN113923502B/zh
Priority to US18/585,818 priority patent/US20240196024A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • 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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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
    • 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/25Management 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/262Content 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/26258Content 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 for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • 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/440218Processing 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 transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • 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/440245Processing 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 the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • 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/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • 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)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

本申请提供直播视频播放方法及装置,其中所述直播视频播放方法包括:在检测到用户触发操作的情况下,生成指定播放器;获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件,所述初始直播视频文件从内容分发服务器获取;在所述指定播放器中播放所述目标直播视频文件,所述指定播放器的播放状态为悬浮播放。实现了使用指定播放器播放直播视频,并由于指定播放器提供悬浮播放的播放状态,从而实现了直播视频的悬浮播放,提高了用户的体验性。此外还减少了格式转换的时间和步骤,同时节省了磁盘空间。

Description

直播视频播放方法及装置
技术领域
本申请涉及计算机技术领域,特别涉及一种直播视频播放方法。本申请同时涉及一种直播视频播放装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
随着计算机技术的不断发展以及宽带网络的普及,直播作为互联网的主要内容之一,在全球范围内越来越流行,直播内容可以涵盖电视节目,还可以涵盖现场活动。直播能力已经成为一个互联网公司的必备能力之一。
现有直播,用户可以通过客户端提供的直播应用观看直播。但是,如果用户临时切换到客户端提供的其他应用,例如用户在观看直播过程中接收到其他用户发送的短信时,需要临时打开短信对应的应用进行查看,此时直播应用的直播窗口被关闭,导致直播中断,使得用户无法继续观看直播。而当用户需要继续观看直播时,需要用户重新返回直播应用,由于直播是实时模式,用户将错过离开直播应用时间段内的直播内容。因此,因此亟需一种有效的方案以解决上述问题。
发明内容
有鉴于此,本申请实施例提供了一种直播视频播放方法。本申请同时涉及一种直播视频播放装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的无法进行画中画播放的缺陷。
根据本申请实施例的第一方面,提供了一种直播视频播放方法,包括:
在检测到用户触发操作的情况下,生成指定播放器;
获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件,所述初始直播视频文件从内容分发服务器获取;
在所述指定播放器中播放所述目标直播视频文件,所述指定播放器的播放状态为悬浮播放。
根据本申请实施例的第二方面,提供了一种直播视频播放装置,包括:
生成模块,被配置为在检测到用户触发操作的情况下,生成指定播放器;
代理模块,被配置为获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件,所述初始直播视频文件从内容分发服务器获取;
指定播放器,被配置为播放所述目标直播视频文件,所述指定播放器的播放状态为悬浮播放。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述直播视频播放方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述直播视频播放方法的步骤。
本申请提供的直播视频播放方法,在检测到用户触发操作的情况下,生成指定播放器;获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件,所述初始直播视频文件从内容分发服务器获取;在所述指定播放器中播放所述目标直播视频文件,所述指定播放器的播放状态为悬浮播放。通过将初始直播视频文件转换为指定播放器支持的目标直播视频文件,在指定播放器中播放目标直播视频文件,实现了使用指定播放器播放直播视频,并由于指定播放器提供画中画播放,从而实现了直播视频的悬浮播放,提高了用户的体验性。此外通过将初始直播视频文件转换为指定播放器支持的目标直播视频文件,减少了格式转换的时间和步骤,同时节省了磁盘空间。
附图说明
图1是本申请一实施例提供的一种直播视频播放方法的流程图;
图2A示出了本申请一实施例提供的一种直播流程的示意图;
图2B示出了本申请一实施例提供的一种代理模块与指定播放器之间交互的示意图;
图2C是本申请一实施例提供的一种应用于购物直播的直播视频播放方法的处理流程图;
图3是本申请一实施例提供的一种直播视频播放装置的结构示意图;
图4是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
流媒体直播协议(HTTP-FLV,Hyper Text Transfer Protocol-Flash Video):是指将音视频数据封装成流媒体格式(FLV,Flash Video),然后通过超文本传输协议(HTTP,Hyper Text Transfer Protocol)传输给客户端的协议,即用HTTP长连接方式传输FLV文件的互联网视频流式协议。其中视频编码格式一般为高级视频编码(AVC,Advanced VideoCoding)或高效率视频编码(HEVC,High Efficiency Video Coding),音频编码格式一般为以及高级音频编码(AAC,Advanced Audio Coding)或高效率高级音频编码(HE-AAC,HighEfficiency Audio Coding)。它的优点是开播速度较快,缺点是受网络传输速度的影响较大,并且一旦网络切换导致长连接中断,播放也会因此中断。
实时消息传输协议(RTMP,RealTime Message Protocol),和HTTP-FLV配套使用的直播推流协议,主要用于直播客户端推送视频流到服务端。
基于超文本传输协议的自适应码率流媒体传输协议(HLS,HTTP LiveStreaming),是一种互联网流式播放协议。HLS是一种将视频数据切成多个小分片文件的流式传输协议,一般由一个间隔更新的纯文本文件(M3U8列表文件)和多个按顺序切分的TS或M4S数据切片文件组成,网络切换中断时,可以快速重试拉取被中断的切片,保持播放不中断。HLS支持高级视频编码(AVC,Advanced Video Coding)和高效率视频编码(HEVC,HighEfficiency Video Coding)等多种视频编码格式,以及高级音频编码(AAC,AdvancedAudio Coding)和高效率高级音频编码(HE-AAC,High Efficiency Audio Coding)等多种音频编辑格式。
AVPlayer:iOS***和macOS***内置提供的视频播放器,具有非常流畅的播放体验,但它不支持FLV直播流视频格式,只支持HLS直播流视频格式。
画中画播放:也即“桌面小窗播放”,是指将某个应用程序中播放的视频画面分离到一个独立的窗口持续播放,分离窗口和恢复窗口的过程中,播放保持持续流畅不中断。
在本申请中,提供了一种直播视频播放方法,本申请同时涉及一种直播视频播放装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例提供的一种直播视频播放方法的流程图,具体包括以下步骤:
步骤102:在检测到用户触发操作的情况下,生成指定播放器。
具体的,用户触发操作是指用户在客户端上的直播类应用程序内观看直播内容时,用户退回到客户端的桌面或者临时切换到另一个应用程序的操作;指定播放器是指具有画中画播放功能的播放器,如iOS和macOS***内置提供的视频播放器AVPlayer;画中画播放是指将某个应用程序中播放的视频画面分离到一个独立的窗口持续播放,分离窗口和恢复窗口的过程中,播放保持持续流畅不中断,也即悬浮播放。
实际应用中,用户打开客户端中某个直播类应用程序时,通过该直播类应用程序观看直播视频,当用户退回到客户端的桌面或切换到其他应用程序且并未关闭该直播类应用程序时,即生成用户触发操作,也即检测到用户触发操作,此时将客户端将生成一个具有画中画播放功能的指定播放器。
例如,用户使用手机上下载的直播应用程序打开某游戏主播的直播,当用户在手机上接收到朋友通过聊天应用程序发送的消息时,该用户在未关闭直播应用程序的情况下,打开聊天应用程序查看朋友发送的消息,此时将检测到用户触发操作,进而生成具有画中画播放功能的指定播放器。
步骤104:获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件,所述初始直播视频文件从内容分发服务器获取。
在生成指定播放器的基础上,进一步地,获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件。
具体的,所述内容分发服务器是指CDN(Content Delivery Networks)服务器,其基于IP网络而构建,基于内容访问与应用的效率要求、质量要求和内容秩序而提供内容的分发和服务。目标直播视频文件是指流媒体格式的直播视频文件,如FLV格式;初始直播视频文件是指从内容分发服务器上获取直播视频文件。
实际应用中,主播在进行直播时,主播端的客户端生成了初始直播视频文件,并将该初始直播视频文件通过实时消息传输协议传输至直播平台的流媒体服务器(RTMPServer);然后由该流媒体服务器通过实时消息传输协议或者流媒体直播协议,将初始直播视频文件转发至视频云服务器,也即内容分发服务器。在生成指定播放器之后,客户端通过代理模块向内容分发服务器请求初始直播视频文件,也即由内容分发服务器通过超文本传输协议将初始直播视频文件发送给客户端,客户端通过代理模块将所述初始直播视频文件转换成所述指定播放器支持的目标直播视频文件。
如图2A所示,图2A示出了本申请一实施例提供的一种直播流程的示意图。主播在进行直播,通过主播客户端将生成的FLV文件,也即初始直播视频文件通过RTMP消息传输协议传输至直播平台的流媒体服务器,然后流媒体服务器通过HTTP-FLV流媒体直播协议,将初始直播视频文件转发至内容分发服务器,在由内容分发服务器将初始直播视频文件发送至观众客户端的代理模块。
需要说明的是,在生成指定播放器后,指定播放器将触发一个继续播放直播视频的请求,也即直播请求,之后客户端可以根据所述指定播放器触发的直播请求,从内容分发服务器获取所述初始直播视频文件。其中,直播请求是指通过指定播放器观看某个直播时生成的请求。
此外,直播请求中可以携带有直播标识,为了提高直播的准度和效率,可以根据直播标识从内容分发服务器获取的初始直播视频文件,也即在直播请求中携带有直播标识的情况下,根据所述指定播放器触发的直播请求,从内容分发服务器获取所述初始直播视频文件的具体实现过程可以如下:
根据所述直播标识,确定所述直播标识对应的内容分发服务器;
从所述内容分发服务器获取所述初始直播视频文件。
具体的,直播标识是指用户要观看的直播对应的标识,可以是用来映射到具体某个内容分发服务器上的获取初始直播视频文件的地址,还可以用户要观看的直播的名称等。
实际应用中,在指定播放器触发的直播请求后,将根据直播向请求中的直播标识,来确定指定播放器待播放的直播视频对应的内容分发服务器,也即直播标识对应的内容分发服务器。进一步地,客户端可以通过代理模块可以从该内容分发服务器上获取到待播放的直播对应的文件,也即初始直播视频文件。
例如,直播请求携带的直播标识为地址,则将该地址指向的内容分发服务器确定为目标内容分发服务器,然后客户端通过代理服务器从该目标内容分发服务器获取初始直播视频文件。
需要说明的是,代理模块会在初始化时启动内置的一个监听本地IP地址(如127.0.0.1)和端口(例如8000)的子模块,直播应用程序可以给指定播放器设置一个播放地址,例如:http://127.0.0.1:8000/stream_name/index.m3u8,当指定播放器加载这个播放地址时,也即用户观看直播时,代理模块内置的子模块会收到来自指定播放器发送的携带有“stream_name/index.m3u8”的直播请求,其中的“stream_name”是代理模块某个内容分发服务器上的获取初始直播视频文件的地址。
在根据直播请求从内容分发服务器获取到初始直播视频文件的基础上,需要将初始直播视频文件转换成所述指定播放器支持的目标直播视频文件。也即获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件之前,需要将所述初始直播视频文件转换成所述指定播放器支持的目标直播视频文件。
具体的,可以是基于超文本传输协议的自适应码率流媒体格式,如HLS格式;目标直播视频文件是指从指定播放器可以播放的直播视频文件。
实际应用中,当获取到初始直播视频文件后,由于指定播放器仅支持播放某种格式的文件,因此需要将初始直播视频文件进行格式转换,转换为指定播放器支持的目标直播视频文件。
例如,指定播放器仅支持播放HLS格式的文件,且初始直播视频文件的格式为FLV格式,此时需要将FLV格式的初始直播视频文件转换为HLS格式的文件,即得到HLS格式的目标直播视频文件。
此外,由于直接格式转换得到的目标直播视频文件,文件过大,会使指定播放器加载时间过长,从而造成指定播放器的开播速度慢,因此,可以对初始直播视频文件进行切片以及格式转换。则将所述初始直播视频文件转换成所述指定播放器支持的目标直播视频文件,也即所述获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件之前,还包括:
将所述初始直播视频文件进行切片与格式转换处理,得到所述指定播放器支持的至少一个目标直播视频切片文件,所述至少一个目标直播视频切片文件组成所述目标直播视频文件。
具体的,切片是指将一个播放时间较长的直播视频文件分为多个播放时间较短的直播视频文件切片的过程,例如直播视频文件的播放时长为20分钟,则可以将该直播视频文件切片分为播放时长为1分钟的20个直播视频文件切片。
实际应用中,可以先将初始直播视频文件进行切片处理,得到至少一个初始直播视频切片文件,然后将各初始直播视频切片文件进行格式转换处理,得到至少一个指定播放器支持的目标直播视频切片文件;可以先将初始直播视频文件进行格式转换处理,得到指定播放器支持的目标直播视频文件,然后再将指定播放器支持的目标直播视频文件进行切片处理,得到至少一个指定播放器支持的目标直播视频切片文件;还可以对初始直播视频文件同时进行切片与格式转换处理,得到指定播放器支持的至少一个目标直播视频切片文件。
沿用上例,将FLV格式的初始直播视频文件中的视频和音频数据包,无需解码,直接进行切片处理,也即将视频和音频数据包重新组装为至少一个的播放时长不超过0.5秒的Fragment-MP4格式的m4s切片文件,也即得到至少一个HLS格式的目标直播视频切片文件。
步骤106:在所述指定播放器中播放所述目标直播视频文件,所述指定播放器的播放状态为悬浮播放。
在获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件的基础上,进一步地,在所述指定播放器中播放所述目标直播视频文件。
具体的,悬浮播放是指采用一个独立覆盖显示在客户端显示界面上的小窗继续持续播放,也即画中画播放。
实际应用中,在得到目标直播视频文件之后,需要将目标直播视频文件传给指定播放器,然后在指定播放器中以悬浮播放的播放状态开始播放直播视频,也即播放目标直播视频文件。
如图2A所示,代理模块将接收到的初始直播视频文件转换为目标直播视频文件后,通过HLS基于超文本传输协议的自适应码率流媒体传输协议,将目标直播视频文件发送给指定播放器,指定播放器以悬浮播放的播放状态播放目标直播视频文件。
在本实施例的一个或多个实施方式中,可以将初始直播视频文件进行切片与格式转换处理,得到所述指定播放器支持的至少一个目标直播视频切片文件,此时,为了进一步提高直播效率和开播速度,可以先根据各目标直播视频切片文件的属性信息生成目标播放列表文件,然后在指定播放器中根据目标播放列表文件生成切片文件获取请求,返回给指定播放器切片文件获取请求对应的目标直播视频切片文件,也即所述在所述指定播放器中播放所述目标直播视频文件之前,还包括:
获取所述目标直播视频文件中各目标直播视频切片文件的属性信息,并根据所述各目标直播视频切片文件的属性信息生成目标播放列表文件;
在所述指定播放器中,根据所述目标播放列表文件中所述各目标直播视频切片文件的属性信息生成的切片文件获取请求;
进一步地,所述在所述指定播放器中播放所述目标直播视频文件,具体实现过程可以如下:
根据所述切片文件获取请求,在所述指定播放器中播放所述至少一个目标直播视频切片文件。
具体的,属性信息是指目标直播视频切片文件的性质相关的信息,如目标直播视频切片文件的播放时长和文件名等信息;目标播放列表文件是指切片文件列表,也即是指定播放器可以直接解析并获取各目标直播视频切片文件的属性信息的列表,如m3u8列表文件;切片文件获取请求是指定播放器为了获取某个目标直播视频切片文件而生成的请求。
实际应用中,在得到了至少一个目标直播视频切片文件后,可以通过代理模块获取各目标直播视频切片文件的播放时长和文件名,然后基于各目标直播视频切片文件的播放时长和文件名保存到一个的播放列表文件中,从而得到目标播放列表文件。然后通过指定播放器对目标播放列表文件进行解析,然后得到各目标直播视频切片文件的播放时长和文件名,然后生成切片文件获取请求。根据切片文件获取请求,通过指定播放器播放至少一个目标直播视频切片文件。
例如,客户端通过代理模块得到了6个目标直播视频切片文件,然后获取到这6个目标直播视频切片文件的播放时长和文件名,如表1所示,各目标直播视频切片文件的播放时长均为0.5秒,即0.5S,且第1个目标直播视频切片文件的文件名为“h1.m4s”,第2个目标直播视频切片文件的文件名为“8.m4s”,第3个目标直播视频切片文件的文件名为“9.m4s”,第4个目标直播视频切片文件的文件名为“10.m4s”,第5个目标直播视频切片文件的文件名为“11.m4s”,第6个目标直播视频切片文件的文件名为“12.m4s”。
表1各目标直播视频切片文件的播放时长和文件名
Figure BDA0003338391530000091
然后将各目标直播视频切片文件的播放时长和文件名保存到m3u8列表文件中,得到目标m3u8列表文件,也即目标播放列表文件,如下所示:
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-START:TIME-0FFSET=0
#EXT-X-TARGETDURATION:0.5
#EXT-X-MAP:URI="h1.m4s"
#EXT-X-MEDIA-SEQUENCE:8
#EXTINF:0.5,
8.m4s
#EXTINF:0.5,
9.m4s
#EXTINF:0.5,
10.m4s
#EXTINF:0.5,
11.m4s
#EXTINF:0.5,
12.m4s
之后,客户端的代理模块将目标播放列表文件发送给指定播放器,指定播放器对目标播放列表文件进行解析,得到这6个目标直播视频切片文件的播放时长和文件名,然后生成切片文件获取请求发送至代理模块,代理模块将6个目标直播视频切片文件发送至指定播放器,以使指定播放器播放直播视频。
需要说明的是,为了提升发到有并且减少目标直播视频切片文件读写时对客户端存储的影响,这些目标直播视频切片文件都只是以内存数据块格式的虚拟文件,不会被保存到手机的实体永久存储中。
此外,为了保证直播不失真,也即直播视频画面的连贯性与正确性,在生成目标播放列表文件时,需要将各目标直播视频切片文件的属性信息按照一定顺序进行添加,生成目标播放列表文件。也即根据所述各目标直播视频切片文件的属性信息生成目标播放列表文件的具体实现过程可以为:
将所述各目标直播视频切片文件的属性信息,按照切片顺序添加至预先设置的初始播放列表文件中,得到所述目标播放列表文件。
具体的,初始播放列表文件是指未填入目标直播视频切片文件的属性信息的播放列表。
实际应用中,由于指定播放器播放直播视频时,是根据目标播放列表文件中各目标直播视频切片文件的属性信息的排列顺序进行的,为了保证直播视频的正确性,需要保证各目标直播视频切片文件的属性信息的排列顺序的正确性,因此,在生成目标播放列表文件时,需要将各目标直播视频切片文件的属性信息按照各目标直播视频切片文件的先后顺序,也即切片顺序,添加至初始播放列表中,然后得到目标播放列表文件。
沿用上例,切片顺序为第1个目标直播视频切片文件、第2个目标直播视频切片文件、第3个目标直播视频切片文件、第4个目标直播视频切片文件、第5个目标直播视频切片文件和第6个目标直播视频切片文件,则按照从第1个目标直播视频切片文件至第6个目标直播视频切片文件,将各目标直播视频切片文件的播放时长和文件名,添加至初始播放列表中,得到目标播放列表文件。
在本实施例的一个或多个实施方式中,为了提高指定播放器的开播速度,指定播放器会根据目标播放列表文件中各目标直播视频切片文件的属性信息的顺序,逐一生成针对各目标直播视频切片文件的子切片文件获取请求,然后客户端或客户端的代理模块根据接收到子切片文件获取请求,返回给指定播放器对应的目标直播视频切片文件。也即所述在所述指定播放器中,根据所述目标播放列表文件中所述各目标直播视频切片文件的属性信息生成的切片文件获取请求的具体实现过程可以如下:
在所述指定播放器中,从所述目标播放列表文件中的第一个目标直播视频切片文件开始,根据所述目标播放列表文件中当前目标直播视频切片文件的属性信息生成的当前子切片文件获取请求,所述目标直播视频切片文件与所述子切片文件获取请求一一对应;
相应地,所述根据所述切片文件获取请求,在所述指定播放器中播放所述至少一个目标直播视频切片文件,包括:
根据所述当前子切片文件获取请求,在所述指定播放器中播放所述当前目标直播视频切片文件。
实例应用中,指定播放器在接收到目标播放列表文件后,将对目标播放列表文件进行解析,确定了各目标直播视频切片文件的属性信息后,先根据第一个目标直播视频切片文件的属性信息生成第一个子切片文件获取请求,并发送至代理模块;然后第二个目标直播视频切片文件的属性信息生成第二个子切片文件获取请求,并发送至代理模块,以此类推。同时,代理模块在接收到第一个子切片文件获取请求时,将第一个目标直播视频切片文件发送至指定播放器,指定播放器播放第一个目标直播视频切片文件;在接收到第二个子切片文件获取请求时,将第二个目标直播视频切片文件发送至指定播放器,以此类推。
沿用上例,指定播放器解析目标m3u8列表中的6个目标直播视频切片文件的属性信息后,根据“#EXT-X-TARGETDURATION:0.5”和“#EXT-X-MAP:URI="h1.m4s"”生成“http://127.0.0.1:8000/stream_name/h1.m4s”,即第一个子切片文件获取请求,并发送至代理模块;根据“#EXTINF:0.5,8.m4s”生成“http://127.0.0.1:8000/stream_name/8.m4s”,即第二个子切片文件获取请求,并发送至代理模块,……;根据“#EXTINF:0.5,12.m4s”生成“http://127.0.0.1:8000/stream_name/12.m4s”,即第六个子切片文件获取请求,并发送至代理模块。同时,代理模块根据第一个子切片文件获取请求,将第一个目标直播视频切片文件发送至指定播放器,指定播放器播放第一个目标直播视频切片文件;根据第二个子切片文件获取请求,将第二个目标直播视频切片文件发送至指定播放器,指定播放器播放第二个目标直播视频切片文件;……;根据第六个子切片文件获取请求,将第六个目标直播视频切片文件发送至指定播放器,指定播放器播放第六个目标直播视频切片文件。
可选地,为了进一步提高指定播放器的开播速度,可以先将指定播放列表文件发送至指定播放器,同时代理模块根据指定播放列表文件对初始直播视频文件进行切片与格式转换处理。如此,减少了生成定播放列表文件的时间,进一步提高了直播效率,也即所述将所述初始直播视频文件进行切片与格式转换处理,得到所述指定播放器支持的至少一个目标直播视频切片文件之前,还包括:
预先生成指定播放列表文件,所述指定播放列表文件中包括至少一个指定直播视频切片文件的属性信息;
相应地,所述将所述初始直播视频文件进行切片与格式转换处理,得到所述指定播放器支持的至少一个目标直播视频切片文件,包括:
按照所述指定播放列表文件中至少一个指定直播视频切片文件的属性信息,将所述初始直播视频文件进行切片与格式转换处理,生成与所述至少一个指定直播视频切片文件的属性信息一一对应的、所述指定播放器支持的至少一个指定直播视频切片文件。
具体的,属性信息是指目标直播视频切片文件的性质相关的信息,如目标直播视频切片文件的播放时长和文件名等信息;指定播放列表文件是指切片文件列表,也即是指定播放器可以直接解析并获取各指定直播视频切片文件的属性信息的列表,如m3u8列表文件。
实际应用中,为了提高指定播放器的开播速度,可以先将指定播放列表文件发送至指定播放器,其中指定播放列表文件中各属性信息对应的指定直播视频切片文件还未生成。然后通过代理模块,基于指定播放列表文件中至少一个指定直播视频切片文件的属性信息,对的初始直播视频文件进行切片与格式转换处理,进而生成与各属性信息一一对应的的至少一个指定直播视频切片文件。
如表2所示,指定播放列表文件包括5个指定直播视频切片文件的属性信息——播放时长和文件名,其中各指定直播视频切片文件的播放时长均为0.8S,第一个指定直播视频切片文件的文件名为“h2.m4s”,第二个指定直播视频切片文件的文件名为“3.m4s”,第三个指定直播视频切片文件的文件名为“4.m4s”,第四个指定直播视频切片文件的文件名为“5.m4s”,第五个指定直播视频切片文件的文件名为“6.m4s”。则对的初始直播视频文件进行切片与格式转换处理时,得到播放时长为0.8S、文件名为h2.m4s的第一个指定直播视频切片文件,播放时长为0.8S、文件名为4.m4s的第二个指定直播视频切片文件,播放时长为0.8S、文件名为5.m4s的第三个指定直播视频切片文件,播放时长为0.8S、文件名为5.m4s的第四个指定直播视频切片文件,播放时长为0.8S、文件名为5.m4s的第五个指定直播视频切片文件。
表2各指定直播视频切片文件的播放时长和文件名
Figure BDA0003338391530000121
Figure BDA0003338391530000131
为了进一步提高直播效率和开播速度,代理模块在接收到指定播放器根据目标播放列表文件发送切片文件获取请求,返回切片文件获取请求对应的目标直播视频切片文件,也即所述在所述指定播放器中播放所述目标直播视频文件的具体实现过程可以如下:
在所述指定播放器中,根据所述指定播放列表文件中至少一个指定直播视频切片文件的属性信息生成的切片文件获取请求;
根据所述切片文件获取请求,在所述指定播放器中播放所述至少一个指定直播视频切片文件。
具体的,切片文件获取请求是指定播放器为了获取某个指定直播视频切片文件而生成的请求。
实际应用中,指定播放器在获取到指定播放列表文件后,需要对指定播放列表文件进行解析,然后得到各指定直播视频切片文件的播放时长和文件名,然后生成切片文件获取请求发送至客户端的代理模块。客户端通过代理模块根据切片文件获取请求,将至少一个指定直播视频切片文件发送至指定播放器,也即在指定播放器播放至少一个指定直播视频切片文件。
在本实施例的一个或多个实施方式中,为了提高指定播放器的开播速度,指定播放器会根据指定播放列表文件中各指定直播视频切片文件的属性信息的顺序,逐一生成针对各指定直播视频切片文件的子切片文件获取请求,然后客户端中的代理模块根据接收到子切片文件获取请求,返回对应的指定直播视频切片文件给指定播放器。也即在切片文件获取请求包括至少一个子切片文件获取请求的情况下,所述在所述指定播放器中,根据所述指定播放列表文件中至少一个指定直播视频切片文件的属性信息生成的切片文件获取请求,具体实现过程可以如下:
在所述指定播放器中,从所述指定播放列表文件中的第一个指定直播视频切片文件开始,根据所述指定播放列表文件中当前指定直播视频切片文件的属性信息生成的当前子切片文件获取请求,所述指定直播视频切片文件与所述子切片文件获取请求一一对应;
相应地,所述根据所述切片文件获取请求,在所述指定播放器中播放所述至少一个指定直播视频切片文件,包括:
根据所述当前子切片文件获取请求,在所述指定播放器中播放所述当前指定直播视频切片文件。
实例应用中,指定播放器在接收到指定播放列表文件后,将对指定播放列表文件进行解析,确定了各指定直播视频切片文件的属性信息后,先根据第一个指定直播视频切片文件的属性信息生成第一个子切片文件获取请求,并发送至代理模块;然后第二个指定直播视频切片文件的属性信息生成第二个子切片文件获取请求,并发送至代理模块,以此类推。同时,代理模块在接收到第一个子切片文件获取请求时,将第一个指定直播视频切片文件发送至指定播放器,指定播放器播放第一个指定直播视频切片文件;在接收到第二个子切片文件获取请求时,将第二个指定直播视频切片文件发送至指定播放器,指定播放器播放第二个指定直播视频切片文件,以此类推。
沿用上例,指定播放器解析指定播放列表文件中的5个指定直播视频切片文件的属性信息后,根据第一个指定直播视频切片文件的文件名“h2.m4s”和播放时长“0.8S”生成“http://127.0.0.1:8000/stream_name/h2.m4s”,即第一个子切片文件获取请求,并发送至代理模块;根据第二个指定直播视频切片文件的文件名“3.m4s”和播放时长“0.8S”生成“http://127.0.0.1:8000/stream_name/3.m4s”,即第二个子切片文件获取请求,并发送至代理模块,……;根据第五个指定直播视频切片文件的文件名“6.m4s”和播放时长“0.8S”生成“http://127.0.0.1:8000/stream_name/6.m4s”,即第五个子切片文件获取请求,并发送至代理模块。同时,代理模块根据第一个子切片文件获取请求,将第一个指定直播视频切片文件发送至指定播放器,指定播放器播放第一个指定直播视频切片文件;根据第二个子切片文件获取请求,将第二个指定直播视频切片文件发送至指定播放器,指定播放器播放第二个指定直播视频切片文件;……,根据第五个子切片文件获取请求,将第五个指定直播视频切片文件发送至指定播放器,指定播放器播放第五个指定直播视频切片文件。
如图2B所示,图2B示出了本申请一实施例提供的一种代理模块与指定播放器之间交互的示意图。当指定播放器启动播放时,也即检测到用户触发操作并生成指定播放器时,指定播放器将会向代理模块发送直播请求,该直播请求中携带有播放地址,也即直播标识,此时代理模块接收到的路径为/stream_name/index.m3u8的标准HTTP GET请求,也即直播请求,其中的“stream_name”是代理模块某个内容分发服务器上的获取的初始直播视频文件的地。然后代理模块会通过标准的HTTP response方式返回目标播放列表文件或指定播放列表文件至指定播放器。指定播放器解析到目标播放列表文件或者指定播放列表文件中的出现的各目标直播视频切片文件或指定直播视频切片文件的属性信息,会按各目标直播视频切片文件或指定直播视频切片文件出现的顺序,依次生成子切片文件获取请求,然后代理模块向代理模块发送子切片文件获取请求,并由代理模块返回目标直播视频切片文件或指定直播视频切片文件,然后在指定播放器中播放目标直播视频切片文件或指定直播视频切片文件。如此,实现了用指定播放器间接初始直播视频文件,同时由于指定播放器间的特性,可以实现画中画播放即悬浮播放。
需要说明的是,由于指定播放器为了保证直播时减少因网络抖动出现的播放不连续、卡顿,会预先请求足够多的指定直播视频切片文件,默认情况下会预先加载可播放3秒的指定直播视频切片文件后,才真正开始播放。受限于客户端与内容分发服务器的之间的网络速度,以及直播流码率的差异,预先加载3秒的指定直播视频切片文件可能会需要消耗1~3秒的时间,导致用户点开某个直播时,会看到明显的黑屏加载过程,同时因为预加载消耗的时间,导致了观看直播的延迟也增加。这种体验达不到普通播放器直接播放初始直播视频文件几乎立刻出现画面的“秒开”体验。为了提高指定播放器开播速度,可以设置指定播放器,如设置AVPlayer的preferredForwardBufferDuration=0.5,此时AVPlayer只需要加载可播放0.5秒的指定直播视频切片文件后就可以开始播放。
此外,还可以提前先准备指定播放列表文件,其中指定播放列表文件对应各指定直播视频切片文件可能还未生成,当指定播放器接收到指定播放列表文件后开始解析的同时,代理模块也正在用多线程技术从内容分发服务器上下载初始直播视频文件,并且生成出即将被指定播放器请求的、与指定播放列表文件中的各属性信息一一对应的指定直播视频切片文件。当代理模块接收到针对某个指定直播视频切片文件的子切片文件获取请求时,如果代理模块已经得到该指定直播视频切片文件,可以通过指定协议返回该指定直播视频切片文件,如通过HTTP response返回给指定播放器该指定直播视频切片文件;如果代理模块未得到该指定直播视频切片文件,就在得到该指定直播视频切片文件后异步方式返回给指定播放器。如此,由于代理模块得到的每个指定直播视频切片文件的播放时长不超过0.5秒,正常网络情况下只要小于0.5秒就可以生成第一个指定直播视频切片文件,远小于优先前的1~3秒,就可以让指定播放器快速开始播放,同时也降低了延迟,即解决指定播放器开播速度较慢、延迟较大的问题。
本申请提供的直播视频播放方法,在检测到用户触发操作的情况下,生成指定播放器;获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件,所述初始直播视频文件从内容分发服务器获取;在所述指定播放器中播放所述目标直播视频文件,所述指定播放器的播放状态为悬浮播放。通过将初始直播视频文件转换为指定播放器支持的目标直播视频文件,在指定播放器中播放目标直播视频文件,实现了使用指定播放器播放直播视频,并由于指定播放器提供画中画播放,从而实现了直播视频的悬浮播放,提高了用户的体验性。此外通过将初始直播视频文件转换为指定播放器支持的目标直播视频文件,减少了格式转换的时间和步骤,同时节省了磁盘空间。
通过本申请提供的直播视频播放方法,用户点开某个直播后,指定播放器几乎立刻出现直播视频的画面和声音,达到了“秒开”的体验。并且代理模块内部可以同时支持多个初始直播视频文件的格式转换,可以实现多个指定播放器同时播放多个不同的直播。此外,本申请所提供的直播视频播放方法过程中不需要对初始直播视频文件中的视频或音频数据进行解码和重新编码,只是针对视频和音频数据的拆分和重新组装切片,这个过程几乎不增加额外的中央处理器的开销,相比在服务器上将初始直播视频文件转换为指定播放器支持的目标直播视频文件来说,客户端本地的转换流方案也可节省相应的服务器成本,对于大型直播平台而言,节省了成本。
下述结合附图2C,以本申请提供的直播视频播放方法在购物直播的应用为例,对所述直播视频播放方法进行进一步说明。其中,图2C示出了本申请一实施例提供的一种应用于购物直播的直播视频播放方法的处理流程图,具体包括以下步骤:
步骤202:在检测到用户触发操作的情况下,生成指定播放器。
步骤204:根据指定播放器触发的直播请求中携带的直播标识,确定直播标识对应的内容分发服务器。
步骤206:从内容分发服务器获取初始直播视频文件。
步骤208:将初始直播视频文件进行切片与格式转换处理,得到指定播放器支持的至少一个目标直播视频切片文件。
其中,至少一个目标直播视频切片文件组成目标直播视频文件。
步骤210:获取目标直播视频文件中各目标直播视频切片文件的属性信息。
步骤212:根据各目标直播视频切片文件的属性信息生成目标播放列表文件。
可选地,根据各目标直播视频切片文件的属性信息生成目标播放列表文件,包括:
将各目标直播视频切片文件的属性信息,按照切片顺序添加至预先设置的初始播放列表文件中,得到目标播放列表文件。
步骤214:在指定播放器中,根据目标播放列表文件中各目标直播视频切片文件的属性信息生成的切片文件获取请求。
可选地,切片文件获取请求包括至少一个子切片文件获取请求;
在指定播放器中,根据目标播放列表文件中各目标直播视频切片文件的属性信息生成的切片文件获取请求,包括:
在指定播放器中,从目标播放列表文件中的第一个目标直播视频切片文件开始,根据目标播放列表文件中当前目标直播视频切片文件的属性信息生成的当前子切片文件获取请求,目标直播视频切片文件与子切片文件获取请求一一对应。
步骤216:预先生成指定播放列表文件,指定播放列表文件中包括至少一个指定直播视频切片文件的属性信息。
步骤218:按照指定播放列表文件中至少一个指定直播视频切片文件的属性信息,将初始直播视频文件进行切片与格式转换处理,生成与至少一个指定直播视频切片文件的属性信息一一对应的、指定播放器支持的至少一个指定直播视频切片文件。
步骤220:在指定播放器中,根据指定播放列表文件中至少一个指定直播视频切片文件的属性信息生成的切片文件获取请求。
可选地,切片文件获取请求包括至少一个子切片文件获取请求;
在指定播放器中,根据指定播放列表文件中至少一个指定直播视频切片文件的属性信息生成的切片文件获取请求,包括:
在指定播放器中,从指定播放列表文件中的第一个指定直播视频切片文件开始,根据指定播放列表文件中当前指定直播视频切片文件的属性信息生成的当前子切片文件获取请求,指定直播视频切片文件与子切片文件获取请求一一对应。
需要说明的是,步骤208至步骤214与步骤216至步骤220,为两种并列的方法,可以根据实际需求,进行选择即可。
步骤222:根据切片文件获取请求,在指定播放器中播放至少一个目标直播视频切片文件或指定直播视频切片文件,指定播放器的播放状态为悬浮播放。
根据当前子切片文件获取请求,在指定播放器中播放当前目标直播视频切片文件或者当前指定直播视频切片文件发送至指定播放器。
本申请提供的应用于购物直播的直播视频播放方法,通过将初始直播视频文件转换为指定播放器支持的目标直播视频文件,在指定播放器中播放目标直播视频文件,实现了使用指定播放器播放直播视频,并由于指定播放器提供画中画播放,从而实现了直播视频的悬浮播放,提高了用户的体验性。此外通过将初始直播视频文件转换为指定播放器支持的目标直播视频文件,减少了格式转换的时间和步骤,同时节省了磁盘空间。
与上述方法实施例相对应,本申请还提供了直播视频播放装置实施例,图3示出了本申请一实施例提供的一种直播视频播放装置的结构示意图。如图3所示,该装置包括:
生成模块302,被配置为在检测到用户触发操作的情况下,生成指定播放器;
代理模块304,被配置为获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件,所述初始直播视频文件从内容分发服务器获取;
指定播放器306,被配置为播放所述目标直播视频文件,所述指定播放器的播放状态为悬浮播放。
在本实施例的一个或多个实施方式中,所述指定播放器306,还被配置为:
将所述初始直播视频文件进行切片与格式转换处理,得到所述指定播放器支持的至少一个目标直播视频切片文件,所述至少一个目标直播视频切片文件组成所述目标直播视频文件。
在本实施例的一个或多个实施方式中,所述代理模块304,被配置为:
获取所述目标直播视频文件中各目标直播视频切片文件的属性信息,并根据所述各目标直播视频切片文件的属性信息生成目标播放列表文件;
所述指定播放器306,还被配置为:
根据所述目标播放列表文件中所述各目标直播视频切片文件的属性信息生成的切片文件获取请求;
根据所述切片文件获取请求,播放所述至少一个目标直播视频切片文件。
在本实施例的一个或多个实施方式中,所述代理模块304,还被配置为:
将所述各目标直播视频切片文件的属性信息,按照切片顺序添加至预先设置的初始播放列表文件中,得到所述目标播放列表文件。
在本实施例的一个或多个实施方式中,所述切片文件获取请求包括至少一个子切片文件获取请求;
所述指定播放器306,还被配置为:
从所述目标播放列表文件中的第一个目标直播视频切片文件开始,根据所述目标播放列表文件中当前目标直播视频切片文件的属性信息生成的当前子切片文件获取请求,所述目标直播视频切片文件与所述子切片文件获取请求一一对应;
根据所述当前子切片文件获取请求,播放所述当前目标直播视频切片文件。
在本实施例的一个或多个实施方式中,所述指定播放器306,还被配置为:
预先生成指定播放列表文件,所述指定播放列表文件中包括至少一个指定直播视频切片文件的属性信息;
所述代理模块304,还被配置为:
按照所述指定播放列表文件中至少一个指定直播视频切片文件的属性信息,将所述初始直播视频文件进行切片与格式转换处理,生成与所述至少一个指定直播视频切片文件的属性信息一一对应的、所述指定播放器支持的至少一个指定直播视频切片文件。
在本实施例的一个或多个实施方式中,所述指定播放器306,还被配置为:
根据所述指定播放列表文件中至少一个指定直播视频切片文件的属性信息生成的切片文件获取请求;
根据所述切片文件获取请求,播放所述至少一个指定直播视频切片文件。
在本实施例的一个或多个实施方式中,所述切片文件获取请求包括至少一个子切片文件获取请求;
所述指定播放器306,还被配置为:
从所述指定播放列表文件中的第一个指定直播视频切片文件开始,根据所述指定播放列表文件中当前指定直播视频切片文件的属性信息生成的当前子切片文件获取请求,所述指定直播视频切片文件与所述子切片文件获取请求一一对应;
根据所述当前子切片文件获取请求,播放所述当前指定直播视频切片文件。
在本实施例的一个或多个实施方式中,所述代理模块304,还被配置为:
根据所述指定播放器触发的直播请求,从内容分发服务器获取所述初始直播视频文件。
在本实施例的一个或多个实施方式中,所述直播请求中携带有直播标识;
所述代理模块304,还被配置为:
根据所述直播标识,确定所述直播标识对应的内容分发服务器;
从所述内容分发服务器获取所述初始直播视频文件。
本申请提供的直播视频播放装置,在检测到用户触发操作的情况下,生成指定播放器;获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件,所述初始直播视频文件从内容分发服务器获取;在所述指定播放器中播放所述目标直播视频文件,所述指定播放器的播放状态为悬浮播放。通过将初始直播视频文件转换为指定播放器支持的目标直播视频文件,在指定播放器中播放目标直播视频文件,实现了使用指定播放器播放直播视频,并由于指定播放器提供画中画播放,从而实现了直播视频的悬浮播放,提高了用户的体验性。此外通过将初始直播视频文件转换为指定播放器支持的目标直播视频文件,减少了格式转换的时间和步骤,同时节省了磁盘空间。
上述为本实施例的一种直播视频播放装置的示意性方案。需要说明的是,该直播视频播放装置的技术方案与上述的直播视频播放方法的技术方案属于同一构思,直播视频播放装置的技术方案未详细描述的细节内容,均可以参见上述直播视频播放方法的技术方案的描述。
图4示出了根据本申请一实施例提供的一种计算设备400的结构框图。该计算设备400的部件包括但不限于存储器410和处理器420。处理器420与存储器410通过总线430相连接,数据库450用于保存数据。
计算设备400还包括接入设备440,接入设备440使得计算设备400能够经由一个或多个网络460通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备440可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterface Controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Network)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Acess)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)接口,等等。
在本申请的一个实施例中,计算设备400的上述部件以及图4中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图4所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备400可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备400还可以是移动式或静止式的服务器。
其中,处理器420执行所述计算机指令时实现所述的直播视频播放方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的直播视频播放方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述直播视频播放方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述直播视频播放方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的直播视频播放方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述直播视频播放方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (11)

1.一种直播视频播放方法,其特征在于,应用于客户端,包括:
在检测到用户触发操作的情况下,生成指定播放器,其中,所述用户触发操作是指用户退回到客户端的桌面或者切换到其他应用程序、且并未关闭直播类应用程序的操作,所述指定播放器是指具有画中画播放功能的播放器;
获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件,所述初始直播视频文件从内容分发服务器获取;
通过代理模块,获取所述目标直播视频文件中各目标直播视频切片文件的属性信息,并根据所述各目标直播视频切片文件的属性信息生成目标播放列表文件;
通过所述指定播放器,对所述目标播放列表文件进行解析,得到所述各目标直播视频切片文件的属性信息,生成切片文件获取请求,将所述切片文件获取请求发送至所述代理模块;
通过所述代理模块,根据所述切片文件获取请求,将至少一个目标直播视频切片文件发送至所述指定播放器中播放,所述指定播放器的播放状态为悬浮播放。
2.根据权利要求1所述的方法,其特征在于,所述获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件之前,还包括:
将所述初始直播视频文件进行切片与格式转换处理,得到所述指定播放器支持的所述至少一个目标直播视频切片文件,所述至少一个目标直播视频切片文件组成所述目标直播视频文件。
3.根据权利要求1所述的方法,其特征在于,所述根据所述各目标直播视频切片文件的属性信息生成目标播放列表文件,包括:
将所述各目标直播视频切片文件的属性信息,按照切片顺序添加至预先设置的初始播放列表文件中,得到所述目标播放列表文件。
4.根据权利要求1或3所述的方法,其特征在于,所述切片文件获取请求包括至少一个子切片文件获取请求;
所述生成切片文件获取请求,包括:
在所述指定播放器中,从所述目标播放列表文件中的第一个目标直播视频切片文件开始,根据所述目标播放列表文件中当前目标直播视频切片文件的属性信息生成的当前子切片文件获取请求,所述目标直播视频切片文件与所述子切片文件获取请求一一对应;
所述根据所述切片文件获取请求,将至少一个目标直播视频切片文件发送至所述指定播放器中播放,包括:
根据所述当前子切片文件获取请求,在所述指定播放器中播放所述当前目标直播视频切片文件。
5.根据权利要求2所述的方法,其特征在于,所述将所述初始直播视频文件进行切片与格式转换处理,得到所述指定播放器支持的至少一个目标直播视频切片文件之前,还包括:
预先生成指定播放列表文件,所述指定播放列表文件中包括至少一个指定直播视频切片文件的属性信息;
所述将所述初始直播视频文件进行切片与格式转换处理,得到所述指定播放器支持的至少一个目标直播视频切片文件,包括:
按照所述指定播放列表文件中至少一个指定直播视频切片文件的属性信息,将所述初始直播视频文件进行切片与格式转换处理,生成与所述至少一个指定直播视频切片文件的属性信息一一对应的、所述指定播放器支持的至少一个指定直播视频切片文件。
6.根据权利要求5所述的方法,其特征在于,所述切片文件获取请求包括至少一个子切片文件获取请求;
所述生成切片文件获取请求,包括:
在所述指定播放器中,从所述指定播放列表文件中的第一个指定直播视频切片文件开始,根据所述指定播放列表文件中当前指定直播视频切片文件的属性信息生成的当前子切片文件获取请求,所述指定直播视频切片文件与所述子切片文件获取请求一一对应;
所述根据所述切片文件获取请求,将至少一个目标直播视频切片文件发送至所述指定播放器中播放,包括:
根据所述当前子切片文件获取请求,在所述指定播放器中播放所述当前指定直播视频切片文件。
7.根据权利要求1所述的方法,其特征在于,所述获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件之前,还包括:
根据所述指定播放器触发的直播请求,从内容分发服务器获取所述初始直播视频文件。
8.根据权利要求7所述的方法,其特征在于,所述直播请求中携带有直播标识;
所述根据所述指定播放器触发的直播请求,从内容分发服务器获取所述初始直播视频文件,包括:
根据所述直播标识,确定所述直播标识对应的内容分发服务器;
从所述内容分发服务器获取所述初始直播视频文件。
9.一种直播视频播放装置,其特征在于,应用于客户端,包括:
生成模块,被配置为在检测到用户触发操作的情况下,生成指定播放器,其中,所述用户触发操作是指用户退回到客户端的桌面或者切换到其他应用程序、且并未关闭直播类应用程序的操作,所述指定播放器是指具有画中画播放功能的播放器;
代理模块,被配置为获取对初始直播视频文件进行格式转换得到的所述指定播放器支持的目标直播视频文件,所述初始直播视频文件从内容分发服务器获取,获取所述目标直播视频文件中各目标直播视频切片文件的属性信息,并根据所述各目标直播视频切片文件的属性信息生成目标播放列表文件,根据所述切片文件获取请求,将至少一个目标直播视频切片文件发送至所述指定播放器中播放,所述指定播放器的播放状态为悬浮播放;
指定播放器,被配置为对所述目标播放列表文件进行解析,得到所述各目标直播视频切片文件的属性信息,生成切片文件获取请求,将所述切片文件获取请求发送至所述代理模块。
10.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述计算机指令时实现权利要求1-8任意一项所述方法的步骤。
11.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-8任意一项所述方法的步骤。
CN202111301198.3A 2021-11-04 2021-11-04 直播视频播放方法及装置 Active CN113923502B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202111301198.3A CN113923502B (zh) 2021-11-04 2021-11-04 直播视频播放方法及装置
PCT/CN2022/099262 WO2023077812A1 (zh) 2021-11-04 2022-06-16 直播视频播放方法及装置
US18/585,818 US20240196024A1 (en) 2021-11-04 2024-02-23 Live Video Playback

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111301198.3A CN113923502B (zh) 2021-11-04 2021-11-04 直播视频播放方法及装置

Publications (2)

Publication Number Publication Date
CN113923502A CN113923502A (zh) 2022-01-11
CN113923502B true CN113923502B (zh) 2023-03-21

Family

ID=79245259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111301198.3A Active CN113923502B (zh) 2021-11-04 2021-11-04 直播视频播放方法及装置

Country Status (3)

Country Link
US (1) US20240196024A1 (zh)
CN (1) CN113923502B (zh)
WO (1) WO2023077812A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923502B (zh) * 2021-11-04 2023-03-21 上海哔哩哔哩科技有限公司 直播视频播放方法及装置
CN114827755A (zh) * 2022-04-15 2022-07-29 咪咕文化科技有限公司 视频播放方法、***、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108494792A (zh) * 2018-04-09 2018-09-04 四川百视通科技有限公司 一种flash播放器播放hls视频流的转换***及其工作方法
CN109246466A (zh) * 2018-10-30 2019-01-18 北京达佳互联信息技术有限公司 视频播放方法、装置及电子设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6152877A (en) * 1998-12-16 2000-11-28 Scimed Life Systems, Inc. Multimode video controller for ultrasound and X-ray video exchange system
CN103607657A (zh) * 2013-11-20 2014-02-26 乐视网信息技术(北京)股份有限公司 一种实现画中画播放的方法及画中画播放装置
CN105049931B (zh) * 2015-08-10 2019-03-12 优酷网络技术(北京)有限公司 对移动终端中非支持格式的视频进行转换的方法及***
US9583140B1 (en) * 2015-10-06 2017-02-28 Bruce Rady Real-time playback of an edited sequence of remote media and three-dimensional assets
CN105872572A (zh) * 2015-12-14 2016-08-17 乐视云计算有限公司 直播视频的处理方法及装置
NL2016051B1 (en) * 2015-12-30 2017-07-12 Rollin Video Tech B V Live-stream video advertisement system
CN105812833A (zh) * 2016-04-07 2016-07-27 网宿科技股份有限公司 文件处理方法和装置
CN109936768A (zh) * 2017-12-19 2019-06-25 中国电信股份有限公司 实现利用终端观看iptv直播节目的方法和***
CN110324693A (zh) * 2018-03-30 2019-10-11 武汉斗鱼网络科技有限公司 用于实现多小窗播放视频的直播间处理方法及装置
CN112954396B (zh) * 2021-02-05 2023-02-28 建信金融科技有限责任公司 视频的播放方法、装置、电子设备及计算机可读存储介质
CN113126839B (zh) * 2021-03-16 2023-06-23 北京达佳互联信息技术有限公司 一种对象播放方法、装置、电子设备及存储介质
CN113923502B (zh) * 2021-11-04 2023-03-21 上海哔哩哔哩科技有限公司 直播视频播放方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108494792A (zh) * 2018-04-09 2018-09-04 四川百视通科技有限公司 一种flash播放器播放hls视频流的转换***及其工作方法
CN109246466A (zh) * 2018-10-30 2019-01-18 北京达佳互联信息技术有限公司 视频播放方法、装置及电子设备

Also Published As

Publication number Publication date
CN113923502A (zh) 2022-01-11
WO2023077812A1 (zh) 2023-05-11
US20240196024A1 (en) 2024-06-13

Similar Documents

Publication Publication Date Title
US20210314657A1 (en) Receiving device, transmitting device, and data processing method
US8973032B1 (en) Advertisement insertion into media content for streaming
US9609340B2 (en) Just-in-time (JIT) encoding for streaming media content
CN102215116B (zh) 在数字广播***中提供时间偏移服务的方法、设备及***
US20140297881A1 (en) Downloading and adaptive streaming of multimedia content to a device with cache assist
CN113923502B (zh) 直播视频播放方法及装置
CN109587514B (zh) 一种视频播放方法、介质和相关装置
CN105828096B (zh) 媒体流文件的处理方法和装置
KR102499231B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
Durak et al. Evaluating the performance of Apple’s low-latency HLS
CN113141522B (zh) 资源传输方法、装置、计算机设备及存储介质
WO2019014574A1 (en) PROCESSING MULTIMEDIA DATA USING FILE TRACKS FOR WEB CONTENT
KR102085192B1 (ko) 렌더링 시간 제어
WO2017185601A1 (zh) 一种提供、下载视频的方法及设备
CN105228001A (zh) 一种flv格式视频在线播放的方法及***
CN106789976A (zh) 媒体文件的播放方法、服务端、客户端及***
US20130160063A1 (en) Network delivery of broadcast media content streams
CN113727199A (zh) 一种hls切片快速起播方法
CN106331763B (zh) 无缝播放分片媒体文件的方法及实现该方法的装置
WO2015035934A1 (en) Methods and systems for facilitating video preview sessions
US20220394328A1 (en) Consolidated Watch Parties
WO2016110324A1 (en) An improved method and apparatus for trick-play in abr streaming
KR102533674B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
KR20120139514A (ko) Dash 규격의 미디어 데이터와 mmt 전송 시스템과의 연동 방법 및 그 장치
JP5787981B2 (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