CN104602105A - 视频文件的播放方法及用户设备 - Google Patents

视频文件的播放方法及用户设备 Download PDF

Info

Publication number
CN104602105A
CN104602105A CN201410857015.XA CN201410857015A CN104602105A CN 104602105 A CN104602105 A CN 104602105A CN 201410857015 A CN201410857015 A CN 201410857015A CN 104602105 A CN104602105 A CN 104602105A
Authority
CN
China
Prior art keywords
video file
audio
descriptor
video data
subscriber equipment
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.)
Granted
Application number
CN201410857015.XA
Other languages
English (en)
Other versions
CN104602105B (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.)
Tencent Technology Beijing Co Ltd
Original Assignee
Tencent Technology Beijing 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 Tencent Technology Beijing Co Ltd filed Critical Tencent Technology Beijing Co Ltd
Priority to CN201410857015.XA priority Critical patent/CN104602105B/zh
Publication of CN104602105A publication Critical patent/CN104602105A/zh
Application granted granted Critical
Publication of CN104602105B publication Critical patent/CN104602105B/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/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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • 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/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/84Generation or processing of descriptive data, e.g. content descriptors

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种视频文件的播放方法及用户设备。其中,该方法包括:用户设备获取待播放视频文件的第一描述信息和音视频数据;用户设备根据第一描述信息中的第一播放参数生成第二描述信息,其中,第二描述信息包括用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数;用户设备将第二描述信息设置为具有第二播放格式的目标视频文件的描述信息,并按照音视频数据在待播放视频文件中的存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中;用户设备在系统播放器中按照第二描述信息中的第二播放参数播放目标视频文件中的音视频数据。本发明解决了由于现有的全能视频文件播放器存在解码效率较低的技术问题。

Description

视频文件的播放方法及用户设备
技术领域
本发明涉及视频播放技术领域,具体而言,涉及一种视频文件的播放方法及用户设备。
背景技术
近年来,以Android和IOS为代表的智能手机已经成为主流,随之改变的是,人们生活、工作及娱乐方式由从前的个人电脑逐渐延伸、过渡和迁移到了用户设备中。以娱乐方式中最重要的视频播放需求为例,个人电脑的使用时间正在逐年下降,而用户设备使用时间相应显著快速上升。然而基于商业利益竞争及版权规避等因素,在Android和IOS两大主流智能手机平台上,其自带的系统播放器(系统播放器,是指可以直接访问和运营用户设备硬件解码能力的应用)对视频文件格式的支持非常有限,这显然无法满足用户对观看各种渠道来源的不同格式的视频片源的需求。
为了解决上述矛盾,办法之一是等待市场逐步淘汰其他视频格式,而聚拢到智能手机支持的文件格式,但这显然是一个漫长的过程而且对于已有视频文件无能为力。于是,应用市场上出现了较多的全能视频文件播放器产品(也称第三方播放器,第三方播放器只能自己实施格式解码,无法调用用户设备的硬件解码能力),不再完全依赖系统API(ApplicationProgramming Interface,应用程序编程接口),而自行实现对视频文件的格式解析。
然而,理论上全能视频文件播放器产品能够支持所有视频文件格式,但是,对于智能手机而言,不仅受限于CPU、内存能力和电池容量,而且视频文件播放计算复杂度极高,所以上述不依赖系统API、纯粹软件实现的全能视频文件播放产品存在解码效率较低、容易出现播放卡顿的问题,大大影响了用户播放体验。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种视频文件的播放方法及用户设备,以至少解决由于现有的全能视频文件播放器存在解码效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种视频文件的播放方法,包括:用户设备获取待播放视频文件的第一描述信息和音视频数据,所述第一描述信息包括所述待播放视频文件的第一播放格式所对应的第一播放参数;所述用户设备根据所述第一描述信息中的所述第一播放参数生成第二描述信息,其中,所述第二描述信息包括所述用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数;所述用户设备将所述第二描述信息设置为具有所述第二播放格式的目标视频文件的描述信息,并按照所述音视频数据在所述待播放视频文件中的存放顺序将所述音视频数据写入所述目标视频文件中用于存放音视频数据的结构字段中;所述用户设备在所述系统播放器中按照所述第二描述信息中的所述第二播放参数播放所述目标视频文件中的所述音视频数据。
根据本发明实施例的另一方面,还提供了一种用户设备,包括:获取单元,用于获取待播放视频文件的第一描述信息和音视频数据,所述第一描述信息包括所述待播放视频文件的第一播放格式所对应的第一播放参数;生成单元,用于根据所述第一描述信息中的所述第一播放参数生成第二描述信息,其中,所述第二描述信息包括所述用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数;处理单元,用于将所述第二描述信息设置为具有所述第二播放格式的目标视频文件的描述信息,并按照所述音视频数据在所述待播放视频文件中的存放顺序将所述音视频数据写入所述目标视频文件中用于存放音视频数据的结构字段中;播放单元,用于在所述系统播放器中按照所述第二描述信息中的所述第二播放参数播放所述目标视频文件中的所述音视频数据。
在本发明实施例中,从待播放视频文件中获取到音视频数据,并按照音视频数据在所述待播放视频文件中的存放顺序直接将所述音视频数据写入到用户设备上所支持播放的目标视频文件中用于存放音视频数据的结构字段中,而不经视频解码器或者音频解码器处理,从而解决了由于现有的全能视频文件播放器存在解码效率较低的技术问题。进一步,用户设备通过调用系统自带的系统播放器的API或服务接口来实现目标视频文件的传输,从而避免了由第三方软件实现视频转换播放方案所带来的解码效率低和播放卡顿的问题,进一步提高了解码效率,使得播放较为顺畅。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的视频文件的播放方法的硬件结构图;
图2是根据本发明实施例的一种可选的视频文件的播放方法的流程示意图;
图3是根据本发明实施例的一种可选的FLV视频文件结构示意图;
图4是根据本发明实施例的一种可选的MP4视频文件结构示意图;
图5是根据本发明实施例的另一种可选的MP4视频文件结构示意图;
图6是根据本发明实施例的一种可选的用户设备的结构示意图;
图7是根据本发明实施例的一种可选的用户设备的播放单元的结构示意图;
图8是根据本发明实施例的一种可选的用户设备的传输模块的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种视频文件的播放方法。在本实施例中,上述视频文件的播放方法可以应用于如图1所示的用户设备102的硬件环境中。如图1所示,用户设备102可以但不限于包括以下之一:手机、平板电脑。用户设备102设置有系统播放器,该系统播放器可以是用户设备102的系统平台自带的播放器,系统播放器在播放支持其格式的视频文件时,可以调用用户设备102的硬件进行视频处理,该硬件是指,用户设备中的专属用作视频处理的芯片。用户设备102可以将用户设备102自带的系统播放器不支持的视频文件的格式转换为系统播放器所支持的播放格式,以使系统播放器进行播放,由于系统播放器在播放的过程中,可以调用用户设备102的硬件进行视频处理,因此,可以提高视频播放的解码效率。
根据本发明实施例,提供了一种视频文件的播放方法,如图2所示,该方法包括:
S202:用户设备获取待播放视频文件的第一描述信息和音视频数据,第一描述信息包括待播放视频文件的第一播放格式所对应的第一播放参数;
S204:用户设备根据第一描述信息中的第一播放参数生成第二描述信息,其中,第二描述信息包括用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数;
S206:用户设备将第二描述信息设置为具有第二播放格式的目标视频文件的描述信息,并按照音视频数据在待播放视频文件中的存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中;
S208:用户设备在系统播放器中按照第二描述信息中的第二播放参数播放目标视频文件中的音视频数据。
需要说明的是,本发明实施例的待播放文件可以是存储于用户设备本地的视频文件(也称离线视频文件),也可以是存储于服务器中的视频文件(也称在线视频文件),本发明实施例对此不做限制。
在上述环境下,根据本发明实施例提供的视频文件的播放方法,在步骤S202中,用户设备获取待播放视频文件的第一描述信息和音视频数据,第一描述信息包括待播放视频文件的第一播放格式所对应的第一播放参数。
本发明实施例中,待播放视频文件可以是任意一种常见格式的视频文件,例如:FLV(Flash Video,视讯编码格式)、WMV(Windows Media Video,微软媒体视频格式)、MKV(Multimedia Container,多媒体容器格式)、RM(Real Media,Real公司开发的网络流媒体文件格式)/AVI(Audio VideoInterleaved,音频视频交错格式)等。用户设备可以对该待播放文件进行格式解析,以获取该待播放视频的第一描述信息和音视频数据。
其中,第一描述信息包括待播放视频文件的第一播放格式所对应的第一播放参数,具体地,该第一播放参数可以包括以下信息:
1)视频数据压缩格式、图像分辨率、视频数据码率、色彩空间格式、视频数据时长、视频数据在待播放文件中的起始字节偏移位置、视频数据关键帧间隔、所有关键帧在待播放文件中的字节偏移位置;
2)音频数据压缩格式、采样率、比特精度、压缩码率、原始声音格式、音频数据时长、音频数据在待播放文件中的起始字节偏移位置。
需要说明的是,不同格式的视频文件中的播放参数有所不同,本发明实施例对此不做限定。
下面,如图3所示,以待播放视频文件的格式为FLV为例:
FLV视频文件主要由Header(数据头)和Body(数据主体)组成,可表示为|FLV_Header(9)|FLV_Body(n)|,括号里是长度,以byte(字节)为单位。
FLV视频文件中,Header的内容长度是固定的,格式可表示为:|F(8)|L(8)|V(8)|Version(8)|TypeFlagsReserved(5)|TypeFlagsAudio(1)|TypeFlagsReserved(1)|TypeFlagsVideo(1)|DataOffset(32)|,括号里是长度,以bit(位)为单位。
具体地,Header的长度为9bytes;前三个字节为FLV,用十六进制表示为F:0x46,L:0x4C,V:0x56;Version为FLV视频文件的版本号,一般为0x01;TypeFlagsReserved为保留位,均为0;TypeFlagsAudio为FLV视频文件中是否包括音频数据,1表示有,0表示没有;TypeFlagsVideo为FLV视频文件中是否包括视频数据,1表示有,0表示没有;DataOffset为Header的长度,为固定值0x00000009。
FLV视频文件中,Body的内容主要可以由多个Tag(标签)组成,每个Tag的下面有一块4bytes的空间,用来记录这个Tag的长度,格式可为:|PreviousTagSize0(32)|Tag1(PreviousTagSize1)|PreviousTagSize1(32)|Tag2|……|PreviousTagSizeN-1(32)|TagN(previousTagSizeN)|previousTagSizeN(32)|。
具体地,PreviousTagSize0为0x00000000;Tag为每一个内容,目前包括音频、视频、脚本;PreviousTagSize为前一个Tag的长度。
进一步地,Tag是Body的内容,每个Tag同样是由Tag Header和TagData组成其中,Tag Header的格式可以表示为:|TagType(8)|DataSize(24)|Timestamp(24)|TimestampExtended(8)|StreamID(24)|Data(DataSize)|。
具体地,TagType为Tag的类型,常见的类型包括:音频为0x08;视频为0x09;脚本数据为0x12;DataSize为Data的长度;Timestamp为相对第一个Tag的时间戳,因此第一个Tag的时间戳为0。也可以将所有Tag的时间戳全配置为0,解码器会自动处理;StreamID为默认的全为0。Data为具体的数据内容,如果TagType=0x08,为AudioData;如果TagType=0x09,为VideoData;如果TagType=0x12,为ScriptDataObject,但该项因为内容不固定,所以在FLV视频文件中可以没有该Tag内容。本发明实施例不做赘述。
由以上描述可知,本领域技术人员可以实现的,用户设备可以对该FLV视频文件进行格式解析,获得该FLV视频文件的第一描述信息和音视频数据,其中,第一描述信息可以由FLV视频文件的Header解析出,音视频数据可以由FLV视频文件的Body解析出。
可选地,在视频转码装置获取待播放视频文件的第一描述信息和音视频数据之前,还包括:
视频转码装置接收来自系统播放器的视频播放请求,视频播放请求携带待播放视频的标识,视频播放请求为系统播放器响应于用户的播放操作生成的。标识为URL(Uniform Resource Locator,本地统一资源定位符),URL包括视频转码装置的IP(Internet Protocol,网络之间互联的协议)地址,视频转码装置的IP地址为127.0.0.1。
在上述环境下,根据本发明实施例提供的视频文件的播放方法,在步骤S204中,用户设备根据第一描述信息中的第一播放参数生成第二描述信息,其中,第二描述信息包括用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数。
基于商业利益竞争和知识产权规避等因素,目前在主流智能手机平台上,通过系统API(Application Programming Interface,应用程序编程接口)及服务接口可以直接播放的视频文件(也称协议格式)非常有限。众所周知,Apple IOS和Google Android都支持的视频文件格式仅有基于ISO/IEC14496-12的MP4文件格式;进一步地,考虑目前互联网流量最大来源的在线视频服务,仅有基于HTTP的MP4流媒体格式和基于HLS协议的TS(Transport Stream,传送流)流媒体格式为两大平台所通用。除此之外,基于开源协议、被广泛使用的MKV文件格式,仅在Android平台上支持;而典型如Windows开发的WMV、Adobe开发的FLV格式,由于牵涉到商业利益,是不被Google/Apple官方支持的。
因此,为了使用户设备自带的系统播放器能够播放上述待播放视频文件(例如格式为FLV的视频文件),用户设备可以根据第一描述信息中的第一播放参数生成第二描述信息,其中,第二描述信息包括用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数。
下面,如图4所示,以系统播放器所支持的第二播放格式为MP4格式(即目标视频文件的格式为MP4格式)为例进行介绍:
MP4(MPEG-4Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC 14496-14”标准文件中定义的,属于MPEG-4的一部分,是“ISO/IEC 14496-12(MPEG-4Part 12ISO base media file format)”标准中所定义的媒体格式的一种实现,后者定义了一种通用的媒体文件结构标准。MP4是一种描述较为全面的容器格式,被认为可以在其中嵌入任何形式的数据,各种编码的视频、音频等都不在话下,不过我们常见的大部分的MP4文件存放的AVC(H.264)或MPEG-4(Part 2)编码的视频和AAC编码的音频。MP4格式的官方文件后缀名是“.mp4”,还有其他的以mp4为基础进行的扩展或者是缩水版本的格式,包括:M4V,3GP,F4V等。
MP4是由一个个“box(盒)”组成的,大box中存放小box,一级嵌套一级来存放媒体信息。如图5所示,为box的基本结构,其中,size指明了整个box所占用的大小,包括Header部分。如果box很大(例如存放具体视频数据的mdat box),超过了uint32的最大数值,size就被设置为1,并用接下来的8位uint64来存放大小。
一个mp4文件有可能包含非常多的box,一般来说,视频文件的描述信息一般包括宽高、时长、码率、编码格式、帧列表、关键帧列表,以及所对应的时戳和在文件中的位置,在mp4中,是以特定的算法分开存放在stbl box下属的几个box中的,如表1所示,是对于以上几个重要的box存放信息的说明:
表1
由表1可知,Ftyp、Moov、Mvhd、Trak、Tkhd、Mdia、Mdhd、Hdlr、Minf、Stbl、Stsd、Stts、Stsc、Stsz、Stz2、Stss、Stco、Co64为MP4格式的目标视频文件的第二描述信息,mdat为MP4格式的目标视频文件的音视频数据。
本发明实施例的用户设备根据第一描述信息中的第一播放参数生成第二描述信息,其中,第二描述信息包括用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数,即用户设备根据从FLV格式的待播放文件的Header中解析出的第一描述信息中的第一播放参数,可以生成MP4格式的目标视频文件的第二描述信息中的第二播放参数。可选地,可以通过以下过程来实现生成第二播放参数的方案:
1)解析FLV Header,此结构为固定长度9字节。
2)解析固定4字节长度的PreviousTagSize。
3)解析FLV Tag,如果TagType字段为0x12,则转4);如果TagType字段为0x08,则通过解析Timestamp、DataSize字段获取并记录下该音频帧的时间戳和大小;如果TagType字段为0x09,则通过解析Timestamp、DataSize字段获取并记录下该视频帧的时间戳和大小。解析完FLV TagHeader后,根据所获DataSize值,跳转到该FLV Tag的末尾。如果此时已经到文件末尾,则结束文件解析过程,转5);否则,转2)。
4)解析完FLV Tag Header后继续解析Tag Data部分,在metadata arraydata部分,可以获取如下信息并进行转换:
视频编码器类型、图像分辨率等,可用于转换成MP4视频Trak结构、Stsd结构;音频编码器类型、采样率、采样宽度等,可用于转换成MP4音频Trak结构、Stsd结构;解析完成后转2)。
5)得到所有音视频帧的大小、时间戳信息后,可用于如下转换:
将所得音/视频时间戳中的最大值作为音/视频码流的时长信息,转换成MP4对应的Mvdh、Tkhd、Edts、Mdhd结构;将所得音/视频帧的大小,转换成MP4对应的Ctts、Stss、Stsc、Stsz、Stco结构。
需要说明的是,本实施例不仅限于上述过程,还可以采用其他方案(例如,现有的实现方案)来生成第二播放参数。
在上述环境下,根据本发明实施例提供的视频文件的播放方法,在步骤S206中,用户设备将第二描述信息设置为具有第二播放格式的目标视频文件的描述信息,并按照音视频数据在待播放视频文件中的存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中。
可选地,按照音视频数据在待播放视频文件中的存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中包括:以帧为单位按照存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中。
本发明实施例中,用户设备在根据第一描述信息中的第一播放参数生成第二描述信息之后,可以将第二描述信息设置为具有第二播放格式的目标视频文件的描述信息,并按照音视频数据在待播放视频文件中的存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中,即,用户设备将从FLV格式的视频文件的Body中解析出的音视频数据,以帧(Frame)为单元,不经视频解码器或者音频解码器处理,直接以输入的数据顺序(即上述的存放顺序)为最终排列顺序写入MP4格式的目标视频文件的mdat结构字段中。特别地,考虑不同格式的待播放视频文件,对音视频数据都会按照一定规则进行封装,转换时本发明实施例仅提取类似的封装中的音视频数据,而无需对封装的数据进行转换。
在本实施例中,由于用户设备自带的系统播放器可以播放格式为MP4的目标视频文件,并且由于系统播放器的自身特性——调用用户设备专属用于视频处理的芯片,因此,系统播放器就可以播放该目标视频文件。系统播放器可以调用专属用于视频处理的硬件芯片进行目标视频文件的解析以及数据提取,硬件芯片视频处理速度快、效率高,进一步实现了播放视频时解码效率较高、不易出现播放卡顿的技术效果,解决了由于现有的全能视频文件播放器存在解码效率较低的技术问题。
在另一种可能的实现方式中,系统播放器所支持的第二播放格式也可以为TS格式(即目标视频文件的格式为TS格式),TS流是指将一个节目的多个组成部分按照它们之间的互相关系进行组织并加入各组成部分关系描述和节目组成信息,并进一步封装成传输包后的码流。TS流是将视频、音频、PSI(Program Specific Information,节目特定信息)等数据打包成传输包进行传送,主要用于节目传输。TS的传输包长度固定,一般为188字节。所有的TS包都分为包头和净荷两部分。TS包中可以填入很多东西(填入的东西都是填入到净荷部分),有:视频、音频、数据(包括PSI或其它任何形式的数据)。TS包的包头提供关于传输方面的信息:同步、有无差错、有无加扰、PCR(Program Clock Reference,节目参考时钟)等标志。TS包的包头长度不固定,前32比特(4个字节)固定,后面可能跟有自适应字段(适配域)。32个比特(4个字节)是最小包头。TS包中净荷所传输的信息包括两种类型:视频、音频的PES(Packetized ElementaryStreams)包以及辅助数据;节目特定信息PSI。
本发明实施例的用户设备根据第一描述信息中的第一播放参数生成第二描述信息,其中,第二描述信息包括用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数,即用户设备根据从TS格式的待播放文件的包头中解析出的第一描述信息中的第一播放参数,可以生成MP4格式的目标视频文件的第二描述信息中的第二播放参数。
可选地,用户设备在根据第一描述信息中的第一播放参数生成第二描述信息之后,可以将第二描述信息设置为具有第二播放格式的目标视频文件的描述信息,并按照音视频数据在待播放视频文件中的存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中,即,用户设备将从TS格式的视频文件的净荷中解析出的音视频数据,以帧(Frame)为单元,不经视频解码器或者音频解码器处理,直接以输入的数据顺序(即上述的存放顺序)为最终排列顺序写入MP4格式的目标视频文件的mdat结构字段中。特别地,考虑不同格式的待播放视频文件,对音视频数据都会按照一定规则进行封装,转换时本发明实施例仅提取类似封装中的音视频数据,而无需对帧封装数据进行转换或写入MP4格式的目标视频文件的mdat结构字段中。
在上述环境下,根据本发明实施例提供的视频文件的播放方法,在步骤S208中,用户设备在系统播放器中按照第二描述信息中的第二播放参数播放目标视频文件中的音视频数据。
可选地,用户设备在系统播放器中按照第二描述信息中的第二播放参数播放目标视频文件中的音视频数据包括:用户设备调用系统播放器的应用程序编程接口API或服务接口将目标视频文件传输给系统播放器;用户设备的系统播放器按照第二描述信息中的第二播放参数播放目标视频文件中的音视频数据。
可选地,用户设备调用系统播放器的应用程序编程接口API或服务接口将目标视频文件传输给系统播放器包括:用户设备在本地建立IP地址为第一预设IP地址的本地代理服务器;用户设备的系统播放器调用系统播放器的应用程序编程接口API或服务接口从第一预设IP地址上接收目标视频文件。
在本发明实施例中,从待播放视频文件中获取到音视频数据,并按照音视频数据在所述待播放视频文件中的存放顺序直接将所述音视频数据写入到用户设备上所支持播放的目标视频文件中用于存放音视频数据的结构字段中,而不经视频解码器或者音频解码器处理,从而解决了由于现有的全能视频文件播放器存在解码效率较低的技术问题。进一步,用户设备通过调用系统自带的系统播放器的API或服务接口来实现目标视频文件的传输,从而避免了由第三方软件实现视频转换播放方案所带来的解码效率低和播放卡顿的问题,进一步提高了解码效率,使得播放较为顺畅。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例2
根据本发明实施例,提供了一种用户终端。在本实施例中,上述用户终端可以应用于如图1所示的用户设备102的硬件环境中。如图1所示,用户设备102可以但不限于包括以下之一:手机、平板电脑。用户设备102设置有系统播放器,该系统播放器可以是用户设备102的系统平台自带的播放器,系统播放器在播放支持其格式的视频文件时,可以调用用户设备102的硬件进行视频处理,该硬件是指,用户设备中的专属用作视频处理的芯片。用户设备102可以将用户设备102自带的系统播放器不支持的视频文件的格式转换为系统播放器所支持的播放格式,以使系统播放器进行播放,由于系统播放器在播放的过程中,可以调用用户设备102的硬件进行视频处理,因此,可以提高视频播放的解码效率。
根据本发明实施例,还提供了一种用于实施上述视频文件的播放方法的用户设备,如图6所示,该用户设备包括:
获取单元602,用于获取待播放视频文件的第一描述信息和音视频数据,第一描述信息包括待播放视频文件的第一播放格式所对应的第一播放参数;
生成单元604,用于根据第一描述信息中的第一播放参数生成第二描述信息,其中,第二描述信息包括用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数;
处理单元606,用于将第二描述信息设置为具有第二播放格式的目标视频文件的描述信息,并按照音视频数据在待播放视频文件中的存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中;
播放单元608,用于在系统播放器中按照第二描述信息中的第二播放参数播放目标视频文件中的音视频数据。
优选地,处理单元606用于执行以下步骤以按照音视频数据在待播放视频文件中的存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中:以帧为单位按照存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中。
本发明实施例中,待播放视频文件可以是任意一种常见格式的视频文件,例如:FLV(Flash Video,视讯编码格式)、WMV(Windows Media Video,微软媒体视频格式)、MKV(Multimedia Container,多媒体容器格式)、RM(Real Media,Real公司开发的网络流媒体文件格式)/AVI(Audio VideoInterleaved,音频视频交错格式)等。用户设备可以对该待播放文件进行格式解析,以获取该待播放视频的第一描述信息和音视频数据。
其中,第一描述信息包括待播放视频文件的第一播放格式所对应的第一播放参数,具体地,该第一播放参数可以包括以下信息:
1)视频数据压缩格式、图像分辨率、视频数据码率、色彩空间格式、视频数据时长、视频数据在待播放文件中的起始字节偏移位置、视频数据关键帧间隔、所有关键帧在待播放文件中的字节偏移位置;
2)音频数据压缩格式、采样率、比特精度、压缩码率、原始声音格式、音频数据时长、音频数据在待播放文件中的起始字节偏移位置。
需要说明的是,不同格式的视频文件中的播放参数有所不同,本发明实施例对此不做限定。
下面,如图3所示,以待播放视频文件的格式为FLV为例:
FLV视频文件主要由Header(数据头)和Body(数据主体)组成,可表示为|FLV_Header(9)|FLV_Body(n)|,括号里是长度,以byte(字节)为单位。
FLV视频文件中,Header的内容长度是固定的,格式可表示为:|F(8)|L(8)|V(8)|Version(8)|TypeFlagsReserved(5)|TypeFlagsAudio(1)|TypeFlagsReserved(1)|TypeFlagsVideo(1)|DataOffset(32)|,括号里是长度,以bit(位)为单位。
具体地,Header的长度为9bytes;前三个字节为FLV,用十六进制表示为F:0x46,L:0x4C,V:0x56;Version为FLV视频文件的版本号,一般为0x01;TypeFlagsReserved为保留位,均为0;TypeFlagsAudio为FLV视频文件中是否包括音频数据,1表示有,0表示没有;TypeFlagsVideo为FLV视频文件中是否包括视频数据,1表示有,0表示没有;DataOffset为Header的长度,为固定值0x00000009。
FLV视频文件中,Body的内容主要可以由多个Tag(标签)组成,每个Tag的下面有一块4bytes的空间,用来记录这个Tag的长度,格式可为:|PreviousTagSize0(32)|Tag1(PreviousTagSize1)|PreviousTagSize1(32)|Tag2|……|PreviousTagSizeN-1(32)|TagN(previousTagSizeN)|previousTagSizeN(32)|。
具体地,PreviousTagSize0为0x00000000;Tag为每一个内容,目前包括音频、视频、脚本;previousTagSize为前一个Tag的长度。
进一步地,Tag是Body的内容,每个Tag同样是由Tag Header和TagData组成其中,Tag Header的格式可以表示为:|TagType(8)|DataSize(24)|Timestamp(24)|TimestampExtended(8)|StreamID(24)|Data(DataSize)|。
具体地,TagType为Tag的类型,常见的类型包括:音频为0x08;视频为0x09;脚本数据为0x12;DataSize为Data的长度;Timestamp为相对第一个Tag的时间戳,因此第一个Tag的时间戳为0。也可以将所有Tag的时间戳全配置为0,解码器会自动处理;StreamID为默认的全为0。Data为具体的数据内容,如果TagType=0x08,为AudioData;如果TagType=0x09,为VideoData;如果TagType=0x12,为ScriptDataObject,但该项因为内容不固定,所以在FLV视频文件中可以没有该Tag内容。本发明实施例不做赘述。
由以上描述可知,本领域技术人员可以实现的,用户设备可以对该FLV视频文件进行格式解析,获得该FLV视频文件的第一描述信息和音视频数据,其中,第一描述信息可以由FLV视频文件的Header解析出,音视频数据可以由FLV视频文件的Body解析出。
可选地,在视频转码装置获取待播放视频文件的第一描述信息和音视频数据之前,还包括:
视频转码装置接收来自系统播放器的视频播放请求,视频播放请求携带待播放视频的标识,视频播放请求为系统播放器响应于用户的播放操作生成的。标识为URL(Uniform Resource Locator,本地统一资源定位符),URL包括视频转码装置的网络之间互联的协议IP地址,视频转码装置的IP地址为127.0.0.1。
基于商业利益竞争和知识产权规避等因素,目前在主流智能手机平台上,通过系统API(Application Programming Interface,应用程序编程接口)及服务接口可以直接播放的视频文件(也称协议格式)非常有限。众所周知,Apple IOS和Google Android都支持的视频文件格式仅有基于ISO/IEC14496-12的MP4文件格式;进一步地,考虑目前互联网流量最大来源的在线视频服务,仅有基于HTTP的MP4流媒体格式和基于HLS协议的TS(Transport Stream,传送流)流媒体格式为两大平台所通用。除此之外,基于开源协议、被广泛使用的MKV文件格式,仅在Android平台上支持;而典型如Windows开发的WMV、Adobe开发的FLV格式,由于牵涉到商业利益,是不被Google/Apple官方支持的。
因此,为了使用户设备自带的系统播放器能够播放上述待播放视频文件(例如格式为FLV的视频文件),用户设备可以根据第一描述信息中的第一播放参数生成第二描述信息,其中,第二描述信息包括用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数。
下面,如图4所示,以系统播放器所支持的第二播放格式为MP4格式(即目标视频文件的格式为MP4格式)为例进行介绍:
MP4(MPEG-4Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC 14496-14”标准文件中定义的,属于MPEG-4的一部分,是“ISO/IEC 14496-12(MPEG-4Part 12ISO base media file format)”标准中所定义的媒体格式的一种实现,后者定义了一种通用的媒体文件结构标准。MP4是一种描述较为全面的容器格式,被认为可以在其中嵌入任何形式的数据,各种编码的视频、音频等都不在话下,不过我们常见的大部分的MP4文件存放的AVC(H.264)或MPEG-4(Part 2)编码的视频和AAC编码的音频。MP4格式的官方文件后缀名是“.mp4”,还有其他的以mp4为基础进行的扩展或者是缩水版本的格式,包括:M4V,3GP,F4V等。
MP4是由一个个“box”组成的,大box中存放小box,一级嵌套一级来存放媒体信息。如图5所示,为box的基本结构,其中,size指明了整个box所占用的大小,包括Header部分。如果box很大(例如存放具体视频数据的mdat box),超过了uint32的最大数值,size就被设置为1,并用接下来的8位uint64来存放大小。
一个mp4文件有可能包含非常多的box,一般来说,视频文件的描述信息一般包括宽高、时长、码率、编码格式、帧列表、关键帧列表,以及所对应的时戳和在文件中的位置,在mp4中,是以特定的算法分开存放在stbl box下属的几个box中的,如表2所示,是对于以上几个重要的box存放信息的说明:
表2
由表2可知,Ftyp、Moov、Mvhd、Trak、Tkhd、Mdia、Mdhd、Hdlr、Minf、Stbl、Stsd、Stts、Stsc、Stsz、Stz2、Stss、Stco、Co64为MP4格式的目标视频文件的第二描述信息,mdat为MP4格式的目标视频文件的音视频数据。
本发明实施例的用户设备根据第一描述信息中的第一播放参数生成第二描述信息,其中,第二描述信息包括用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数,即用户设备根据从FLV格式的待播放文件的Header中解析出的第一描述信息中的第一播放参数,可以生成MP4格式的目标视频文件的第二描述信息中的第二播放参数。可选地,可以通过以下过程来实现生成第二播放参数的方案:
1)解析FLV Header,此结构为固定长度9字节。
2)解析固定4字节长度的PreviousTagSize。
3)解析FLV Tag,如果TagType字段为0x12,则转4);如果TagType字段为0x08,则通过解析Timestamp、DataSize字段获取并记录下该音频帧的时间戳和大小;如果TagType字段为0x09,则通过解析Timestamp、DataSize字段获取并记录下该视频帧的时间戳和大小。解析完FLV TagHeader后,根据所获DataSize值,跳转到该FLV Tag的末尾。如果此时已经到文件末尾,则结束文件解析过程,转5);否则,转2)。
4)解析完FLV Tag Header后继续解析Tag Data部分,在metadata arraydata部分,可以获取如下信息并进行转换:
视频编码器类型、图像分辨率等,可用于转换成MP4视频Trak结构、Stsd结构;音频编码器类型、采样率、采样宽度等,可用于转换成MP4音频Trak结构、Stsd结构;解析完成后转2)。
5)得到所有音视频帧的大小、时间戳信息后,可用于如下转换:
将所得音/视频时间戳中的最大值作为音/视频码流的时长信息,转换成MP4对应的Mvdh、Tkhd、Edts、Mdhd结构;将所得音/视频帧的大小,转换成MP4对应的Ctts、Stss、Stsc、Stsz、Stco结构。
需要说明的是,本实施例不仅限于上述过程,还可以采用其他方案(例如,现有的实现方案)来生成第二播放参数。
可选地,按照音视频数据在待播放视频文件中的存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中包括:以帧为单位按照存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中。
本发明实施例中,用户设备在根据第一描述信息中的第一播放参数生成第二描述信息之后,可以将第二描述信息设置为具有第二播放格式的目标视频文件的描述信息,并按照音视频数据在待播放视频文件中的存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中,即,用户设备将从FLV格式的视频文件的Body中解析出的音视频数据,以帧(Frame)为单元,不经视频解码器或者音频解码器处理,直接以输入的数据顺序(即上述的存放顺序)为最终排列顺序写入MP4格式的目标视频文件的mdat结构字段中。特别地,考虑不同格式的待播放视频文件,对音视频数据都会按照一定规则进行封装,转换时本发明实施例仅提取类似的封装中的音视频数据,而无需对封装的数据进行转换。
在本实施例中,由于用户设备自带的系统播放器可以播放格式为MP4的目标视频文件,并且由于系统播放器的自身特性——调用用户设备专属用于视频处理的芯片,因此,系统播放器就可以播放该目标视频文件。系统播放器可以调用专属用于视频处理的硬件芯片进行目标视频文件的解析以及数据提取,硬件芯片视频处理速度快、效率高,进一步实现了播放视频时解码效率较高、不易出现播放卡顿的技术效果,解决了由于现有的全能视频文件播放器存在解码效率较低的技术问题。
在另一种可能的实现方式中,系统播放器所支持的第二播放格式也可以为TS格式(即目标视频文件的格式为TS格式),TS流是指将一个节目的多个组成部分按照它们之间的互相关系进行组织并加入各组成部分关系描述和节目组成信息,并进一步封装成传输包后的码流。TS流是将视频、音频、PSI(Program Specific Information,节目特定信息)等数据打包成传输包进行传送,主要用于节目传输。TS的传输包长度固定,一般为188字节。所有的TS包都分为包头和净荷两部分。TS包中可以填入很多东西(填入的东西都是填入到净荷部分),有:视频、音频、数据(包括PSI或其它任何形式的数据)。TS包的包头提供关于传输方面的信息:同步、有无差错、有无加扰、PCR(Program Clock Reference,节目参考时钟)等标志。TS包的包头长度不固定,前32比特(4个字节)固定,后面可能跟有自适应字段(适配域)。32个比特(4个字节)是最小包头。TS包中净荷所传输的信息包括两种类型:视频、音频的PES(Packetized ElementaryStreams)包以及辅助数据;节目特定信息PSI。
本发明实施例的用户设备根据第一描述信息中的第一播放参数生成第二描述信息,其中,第二描述信息包括用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数,即用户设备根据从TS格式的待播放文件的包头中解析出的第一描述信息中的第一播放参数,可以生成MP4格式的目标视频文件的第二描述信息中的第二播放参数。
可选地,用户设备在根据第一描述信息中的第一播放参数生成第二描述信息之后,可以将第二描述信息设置为具有第二播放格式的目标视频文件的描述信息,并按照音视频数据在待播放视频文件中的存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中,即,用户设备将从TS格式的视频文件的净荷中解析出的音视频数据,以帧(Frame)为单元,不经视频解码器或者音频解码器处理,直接以输入的数据顺序(即上述的存放顺序)为最终排列顺序写入MP4格式的目标视频文件的mdat结构字段中。特别地,考虑不同格式的待播放视频文件,对音视频数据都会按照一定规则进行封装,转换时本发明实施例仅提取类似封装中的音视频数据,而无需对帧封装数据进行转换或写入MP4格式的目标视频文件的mdat结构字段中。
可选地,用户设备在系统播放器中按照第二描述信息中的第二播放参数播放目标视频文件中的音视频数据包括:用户设备调用系统播放器的应用程序编程接口API或服务接口将目标视频文件传输给系统播放器;用户设备的系统播放器按照第二描述信息中的第二播放参数播放目标视频文件中的音视频数据。
可选地,用户设备调用系统播放器的应用程序编程接口API或服务接口将目标视频文件传输给系统播放器包括:用户设备在本地建立IP地址为第一预设IP地址的本地代理服务器;用户设备的系统播放器调用系统播放器的应用程序编程接口API或服务接口从第一预设IP地址上接收目标视频文件。
优选地,如图7所示,播放单元608,包括:
传输模块702,用于调用系统播放器的应用程序编程接口API或服务接口将目标视频文件传输给系统播放器;
系统播放器704,用于按照第二描述信息中的第二播放参数播放目标视频文件中的音视频数据。
优选地,如图8所示,传输模块702包括:
建立模块802,用于在本地建立IP地址为第一预设IP地址的本地代理服务器;
系统播放器704,用于调用系统播放器的应用程序编程接口API或服务接口从第一预设IP地址上接收目标视频文件。
优选地,第二播放格式为MP4格式或传送流TS格式。
在本发明实施例中,从待播放视频文件中获取到音视频数据,并按照音视频数据在所述待播放视频文件中的存放顺序直接将所述音视频数据写入到用户设备上所支持播放的目标视频文件中用于存放音视频数据的结构字段中,而不经视频解码器或者音频解码器处理,从而解决了由于现有的全能视频文件播放器存在解码效率较低的技术问题。进一步,用户设备通过调用系统自带的系统播放器的API或服务接口来实现目标视频文件的传输,从而避免了由第三方软件实现视频转换播放方案所带来的解码效率低和播放卡顿的问题,进一步提高了解码效率,使得播放较为顺畅。
实施例3
根据本发明实施例,还提供了一种用于实施上述视频文件的播放方法的终端,上述终端可以应用于如图1所示的硬件环境中。
如图1所示,用户设备102可以但不限于包括以下之一:手机、平板电脑。用户设备102设置有系统播放器,该系统播放器可以是用户设备102的系统平台自带的播放器,系统播放器在播放支持其格式的视频文件时,可以调用用户设备102的硬件进行视频处理,该硬件是指,用户设备中的专属用作视频处理的芯片。用户设备102可以将用户设备102自带的系统播放器不支持的视频文件的格式转换为系统播放器所支持的播放格式,以使系统播放器进行播放,由于系统播放器在播放的过程中,可以调用用户设备102的硬件进行视频处理,因此,可以提高视频播放的解码效率。
可选地,在本实施例中,上述终端包括:
1)存储器,被设置为存储第一描述信息、第二描述信息、音视频数据。
2)处理器,被设置为获取待播放视频文件的第一描述信息和音视频数据,第一描述信息包括待播放视频文件的第一播放格式所对应的第一播放参数;用户设备根据第一描述信息中的第一播放参数生成第二描述信息,其中,第二描述信息包括用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数;用户设备将第二描述信息设置为具有第二播放格式的目标视频文件的描述信息,并按照音视频数据在待播放视频文件中的存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中;用户设备在系统播放器中按照第二描述信息中的第二播放参数播放目标视频文件中的音视频数据。
需要说明的是,本发明实施例的待播放文件可以是存储于用户设备本地的视频文件(也称离线视频文件),也可以是存储于服务器中的视频文件(也称在线视频文件),本发明实施例对此不做限制。
可选地,在本实施例中,上述存储器还可以用于存储上述实施例1中的确定过程中所存储的其他数据。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
在本发明实施例中,从待播放视频文件中获取到音视频数据,并按照音视频数据在所述待播放视频文件中的存放顺序直接将所述音视频数据写入到用户设备上所支持播放的目标视频文件中用于存放音视频数据的结构字段中,而不经视频解码器或者音频解码器处理,从而解决了由于现有的全能视频文件播放器存在解码效率较低的技术问题。进一步,用户设备通过调用系统自带的系统播放器的API或服务接口来实现目标视频文件的传输,从而避免了由第三方软件实现视频转换播放方案所带来的解码效率低和播放卡顿的问题,进一步提高了解码效率,使得播放较为顺畅。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
实施例4
本发明的实施例还提供了一种存储介质,上述存储介质可以应用于如图1所示的硬件环境中。
如图1所示,用户设备102可以但不限于包括以下之一:手机、平板电脑。用户设备102设置有系统播放器,该系统播放器可以是用户设备102的系统平台自带的播放器,系统播放器在播放支持其格式的视频文件时,可以调用用户设备102的硬件进行视频处理,该硬件是指,用户设备中的专属用作视频处理的芯片。用户设备102可以将用户设备102自带的系统播放器不支持的视频文件的格式转换为系统播放器所支持的播放格式,以使系统播放器进行播放,由于系统播放器在播放的过程中,可以调用用户设备102的硬件进行视频处理,因此,可以提高视频播放的解码效率。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取待播放视频文件的第一描述信息和音视频数据,第一描述信息包括待播放视频文件的第一播放格式所对应的第一播放参数;
S2,根据第一描述信息中的第一播放参数生成第二描述信息,其中,第二描述信息包括用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数;
S3,将第二描述信息设置为具有第二播放格式的目标视频文件的描述信息,并按照音视频数据在待播放视频文件中的存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中;
S4,在系统播放器中按照第二描述信息中的第二播放参数播放目标视频文件中的音视频数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,以帧为单位按照存放顺序将音视频数据写入目标视频文件中用于存放音视频数据的结构字段中。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,调用系统播放器的应用程序编程接口API或服务接口将目标视频文件传输给系统播放器;
S2,系统播放器按照第二描述信息中的第二播放参数播放目标视频文件中的音视频数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,在本地建立IP地址为第一预设IP地址的本地代理服务器;
S2,系统播放器调用系统播放器的应用程序编程接口API或服务接口从第一预设IP地址上接收目标视频文件。
在本发明实施例中,从待播放视频文件中获取到音视频数据,并按照音视频数据在所述待播放视频文件中的存放顺序直接将所述音视频数据写入到用户设备上所支持播放的目标视频文件中用于存放音视频数据的结构字段中,而不经视频解码器或者音频解码器处理,从而解决了由于现有的全能视频文件播放器存在解码效率较低的技术问题。进一步,用户设备通过调用系统自带的系统播放器的API或服务接口来实现目标视频文件的传输,从而避免了由第三方软件实现视频转换播放方案所带来的解码效率低和播放卡顿的问题,进一步提高了解码效率,使得播放较为顺畅。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种视频文件的播放方法,其特征在于,包括:
用户设备获取待播放视频文件的第一描述信息和音视频数据,所述第一描述信息包括所述待播放视频文件的第一播放格式所对应的第一播放参数;
所述用户设备根据所述第一描述信息中的所述第一播放参数生成第二描述信息,其中,所述第二描述信息包括所述用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数;
所述用户设备将所述第二描述信息设置为具有所述第二播放格式的目标视频文件的描述信息,并按照所述音视频数据在所述待播放视频文件中的存放顺序将所述音视频数据写入所述目标视频文件中用于存放音视频数据的结构字段中;
所述用户设备在所述系统播放器中按照所述第二描述信息中的所述第二播放参数播放所述目标视频文件中的所述音视频数据。
2.根据权利要求1所述的方法,其特征在于,按照所述音视频数据在所述待播放视频文件中的存放顺序将所述音视频数据写入所述目标视频文件中用于存放音视频数据的结构字段中包括:
以帧为单位按照所述存放顺序将所述音视频数据写入所述目标视频文件中用于存放音视频数据的结构字段中。
3.根据权利要求1所述的方法,其特征在于,所述用户设备在所述系统播放器中按照所述第二描述信息中的所述第二播放参数播放所述目标视频文件中的所述音视频数据包括:
所述用户设备调用所述系统播放器的应用程序编程接口API或服务接口将所述目标视频文件传输给所述系统播放器;
所述用户设备的所述系统播放器按照所述第二描述信息中的所述第二播放参数播放所述目标视频文件中的所述音视频数据。
4.根据权利要求3所述的方法,其特征在于,所述用户设备调用所述系统播放器的应用程序编程接口API或服务接口将所述目标视频文件传输给所述系统播放器包括:
所述用户设备在本地建立网络之间互连的协议IP地址为第一预设IP地址的本地代理服务器;
所述用户设备的所述系统播放器调用所述系统播放器的应用程序编程接口API或服务接口从所述第一预设IP地址上接收所述目标视频文件。
5.根据权利要求1所述的方法,其特征在于,所述第二播放格式为MP4格式或传送流TS格式。
6.一种用户设备,其特征在于,包括:
获取单元,用于获取待播放视频文件的第一描述信息和音视频数据,所述第一描述信息包括所述待播放视频文件的第一播放格式所对应的第一播放参数;
生成单元,用于根据所述第一描述信息中的所述第一播放参数生成第二描述信息,其中,所述第二描述信息包括所述用户设备上的系统播放器所支持的第二播放格式所对应的第二播放参数;
处理单元,用于将所述第二描述信息设置为具有所述第二播放格式的目标视频文件的描述信息,并按照所述音视频数据在所述待播放视频文件中的存放顺序将所述音视频数据写入所述目标视频文件中用于存放音视频数据的结构字段中;
播放单元,用于在所述系统播放器中按照所述第二描述信息中的所述第二播放参数播放所述目标视频文件中的所述音视频数据。
7.根据权利要求6所述的用户设备,其特征在于,所述处理单元用于执行以下步骤以按照所述音视频数据在所述待播放视频文件中的存放顺序将所述音视频数据写入所述目标视频文件中用于存放音视频数据的结构字段中:以帧为单位按照所述存放顺序将所述音视频数据写入所述目标视频文件中用于存放音视频数据的结构字段中。
8.根据权利要求6所述的用户设备,其特征在于,所述播放单元包括:
传输模块,用于调用所述系统播放器的应用程序编程接口API或服务接口将所述目标视频文件传输给所述系统播放器;
所述系统播放器,用于按照所述第二描述信息中的所述第二播放参数播放所述目标视频文件中的所述音视频数据。
9.根据权利要求8所述的用户设备,其特征在于,所述传输模块包括:
建立模块,用于在本地建立网络之间互连的协议IP地址为第一预设IP地址的本地代理服务器;
所述系统播放器,用于调用所述系统播放器的应用程序编程接口API或服务接口从所述第一预设IP地址上接收所述目标视频文件。
10.根据权利要求6所述的用户设备,其特征在于,所述第二播放格式为MP4格式或传送流TS格式。
CN201410857015.XA 2014-12-31 2014-12-31 视频文件的播放方法及用户设备 Active CN104602105B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410857015.XA CN104602105B (zh) 2014-12-31 2014-12-31 视频文件的播放方法及用户设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410857015.XA CN104602105B (zh) 2014-12-31 2014-12-31 视频文件的播放方法及用户设备

Publications (2)

Publication Number Publication Date
CN104602105A true CN104602105A (zh) 2015-05-06
CN104602105B CN104602105B (zh) 2017-09-12

Family

ID=53127540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410857015.XA Active CN104602105B (zh) 2014-12-31 2014-12-31 视频文件的播放方法及用户设备

Country Status (1)

Country Link
CN (1) CN104602105B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110545464A (zh) * 2018-05-29 2019-12-06 北京字节跳动网络技术有限公司 一种媒体文件分辨率切换方法、装置及存储介质
CN110730320A (zh) * 2018-07-16 2020-01-24 杭州海康威视数字技术股份有限公司 一种视频录制、视频播放方法、装置及设备
CN110858915A (zh) * 2018-08-24 2020-03-03 北京字节跳动网络技术有限公司 媒体文件播放过程中的分辨率切换方法、装置及存储介质
CN110858917A (zh) * 2018-08-24 2020-03-03 北京字节跳动网络技术有限公司 媒体文件分辨率切换的控制方法、装置及存储介质
CN111736795A (zh) * 2019-06-24 2020-10-02 北京京东尚科信息技术有限公司 音频处理方法、装置、设备和存储介质
CN112040248A (zh) * 2020-08-31 2020-12-04 重庆锐明信息技术有限公司 视频压缩方法、系统、终端设备及存储介质
CN114339404A (zh) * 2021-12-31 2022-04-12 珠海豹趣科技有限公司 一种windows系统中屏幕保护壁纸的显示方法、装置及电子设备
CN114363662A (zh) * 2022-01-07 2022-04-15 深圳看到科技有限公司 推流方法、装置、终端及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103051941A (zh) * 2013-01-28 2013-04-17 北京暴风科技股份有限公司 一种在移动平台上播放本地视频的方法和系统
CN103702240A (zh) * 2013-12-06 2014-04-02 乐视网信息技术(北京)股份有限公司 一种视频播放的方法和设备
CN103796047A (zh) * 2014-01-23 2014-05-14 福建星网锐捷安防科技有限公司 一种视音频数据的封装方法及封装装置
EP2753096A1 (en) * 2011-12-12 2014-07-09 ZTE Corporation Mobile terminal television program audio video recombination method, and mobile terminal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2753096A1 (en) * 2011-12-12 2014-07-09 ZTE Corporation Mobile terminal television program audio video recombination method, and mobile terminal
CN103051941A (zh) * 2013-01-28 2013-04-17 北京暴风科技股份有限公司 一种在移动平台上播放本地视频的方法和系统
CN103702240A (zh) * 2013-12-06 2014-04-02 乐视网信息技术(北京)股份有限公司 一种视频播放的方法和设备
CN103796047A (zh) * 2014-01-23 2014-05-14 福建星网锐捷安防科技有限公司 一种视音频数据的封装方法及封装装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110545464A (zh) * 2018-05-29 2019-12-06 北京字节跳动网络技术有限公司 一种媒体文件分辨率切换方法、装置及存储介质
CN110730320A (zh) * 2018-07-16 2020-01-24 杭州海康威视数字技术股份有限公司 一种视频录制、视频播放方法、装置及设备
CN110858915A (zh) * 2018-08-24 2020-03-03 北京字节跳动网络技术有限公司 媒体文件播放过程中的分辨率切换方法、装置及存储介质
CN110858917A (zh) * 2018-08-24 2020-03-03 北京字节跳动网络技术有限公司 媒体文件分辨率切换的控制方法、装置及存储介质
CN111736795A (zh) * 2019-06-24 2020-10-02 北京京东尚科信息技术有限公司 音频处理方法、装置、设备和存储介质
CN112040248A (zh) * 2020-08-31 2020-12-04 重庆锐明信息技术有限公司 视频压缩方法、系统、终端设备及存储介质
CN112040248B (zh) * 2020-08-31 2022-04-29 重庆锐明信息技术有限公司 视频压缩方法、系统、终端设备及存储介质
CN114339404A (zh) * 2021-12-31 2022-04-12 珠海豹趣科技有限公司 一种windows系统中屏幕保护壁纸的显示方法、装置及电子设备
CN114339404B (zh) * 2021-12-31 2024-05-14 珠海豹趣科技有限公司 一种屏保壁纸的显示方法、装置、电子设备及存储介质
CN114363662A (zh) * 2022-01-07 2022-04-15 深圳看到科技有限公司 推流方法、装置、终端及存储介质

Also Published As

Publication number Publication date
CN104602105B (zh) 2017-09-12

Similar Documents

Publication Publication Date Title
CN104602105A (zh) 视频文件的播放方法及用户设备
TWI774744B (zh) 在使用mime類型參數之網路視頻串流中發信重要視頻資訊
CN104661058B (zh) Mp4视频点播的数据流传输方法、客户端及点播系统
CN103826159B (zh) 一种m3u8格式视频的本地离线播放方法和终端
US10887645B2 (en) Processing media data using file tracks for web content
CN107645491A (zh) 媒体流传输设备和媒体服务设备
CN109076261A (zh) 媒体封装和解封装
CN102291580B (zh) 基于Android系统的视频传输方法
CN101300810A (zh) 用于将svg内容嵌入进iso基本媒体文件格式以便渐进地下载或流式传输富媒体内容的方法
CN105828096B (zh) 媒体流文件的处理方法和装置
CN111602406B (zh) 一种处理媒体数据的方法、装置和计算机可读存储媒体
CN107634930A (zh) 一种媒体数据的获取方法和装置
TW201909007A (zh) 使用用於檔案格式邏輯框之一通用描述符處理媒體資料
JP2021057905A (ja) 受信装置および受信方法
CN102611690A (zh) 一种基于超文本传输协议流化的容器格式转化方法
CN110784741A (zh) 媒体数据的时移响应方法及装置
CN108174284B (zh) 一种基于Android系统的解码视频的方法
JP2022019932A (ja) 情報処理装置および情報処理方法
CN109076264A (zh) 样本条目和随机存取
CN111147896A (zh) 一种字幕数据处理方法、装置、设备和计算机存储介质
CN110545460B (zh) 一种媒体文件的预加载方法、装置及存储介质
CN101802803B (zh) 用于产生和再现基于媒体对象的元数据的方法和装置
CN103905922A (zh) 一种基于http协议的流媒体协议封装方法及装置
CN101984619A (zh) 一种流媒体业务的实现方法及系统
CN102723104A (zh) 基于mp4文件封装格式的多媒体录播系统

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