CN110636368B - 媒体播放方法、系统、装置及存储介质 - Google Patents
媒体播放方法、系统、装置及存储介质 Download PDFInfo
- Publication number
- CN110636368B CN110636368B CN201810658199.5A CN201810658199A CN110636368B CN 110636368 B CN110636368 B CN 110636368B CN 201810658199 A CN201810658199 A CN 201810658199A CN 110636368 B CN110636368 B CN 110636368B
- Authority
- CN
- China
- Prior art keywords
- file
- media
- data
- audio
- media data
- 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 40
- 238000005538 encapsulation Methods 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 abstract description 5
- 238000006243 chemical reaction Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种媒体播放方法及装置,方法应用于客户端,包括:依据服务器发送的媒体文件头信息携带的文件大小创建音视频文件,并将媒体文件头信息写入音视频文件;根据文件大小确定服务器发送媒体数据的策略;基于所述策略确定接收到的来自服务器发送的媒体数据在音视频文件中的位置,并依据所述位置将接收的媒体数据写入音视频文件;依据媒体文件头信息对音视频文件进行解析并播放。由于服务器发送的直接是媒体文件的原始文件,无需对媒体文件进行转封装操作,从而减轻了服务器的处理压力,提升了多路接入性能。并且由于客户端接收到的直接是AVI文件的数据,因此可以保持AVI文件的原始性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种媒体播放方法及装置。
背景技术
AVI(Audio Video Interleaved,音视频交错格式)为一种最常用的媒体文件,通常存放于服务器中,以用于客户端请求回放。在相关技术中,当服务器接收到客户端发送的播放请求时,服务器将请求播放的AVI文件先转封装为RTP (Real-time TransportProtocol,实时流传输协议)包,然后通过RTSP(Real-time Streaming Protocol,实时流协议),以RTP包的形式发送到客户端,客户端以接收到的RTP包为单位进行解析播放,实现媒体流式播放。
然而,服务器在对AVI文件进行转封装操作时,会使服务器承受一定的处理压力,影响服务器的多路接入性能,并且还会对服务器的快速响应造成延时,进而造成客户端播放延时。
发明内容
有鉴于此,本申请提供一种媒体播放方法及装置,以解决相关技术会影响服务器的多路接入性能,并造成客户端播放延时的问题。
根据本申请实施例的第一方面,提供一种媒体播放方法,所述方法应用于客户端,所述方法包括:
依据服务器发送的媒体文件头信息携带的文件大小创建音视频文件,并将所述媒体文件头信息写入所述音视频文件;
根据所述文件大小确定所述服务器发送媒体数据的策略;
基于所述策略确定接收到的来自所述服务器发送的媒体数据在所述音视频文件中的位置,并依据所述位置将接收的媒体数据写入所述音视频文件;
依据所述媒体文件头信息对所述音视频文件进行解析并播放。
根据本申请实施例的第二方面,提供一种媒体播放系统,所述系统包括:
服务器,用于向客户端发送媒体文件头信息,并基于媒体文件头信息携带的文件大小确定发送媒体数据的策略,并依据所述策略将所述媒体数据发送至所述客户端;
客户端,用于依据服务器发送的媒体文件头信息携带的文件大小创建音视频文件,并将所述媒体文件头信息写入所述音视频文件;根据所述文件大小确定所述服务器发送媒体数据的策略;基于所述策略确定接收到的来自所述服务器发送的媒体数据在所述音视频文件中的位置,并依据所述位置将接收的媒体数据写入所述音视频文件;依据所述媒体文件头信息对所述音视频文件进行解析并播放。
根据本申请实施例的第三方面,提供一种媒体播放装置,所述装置应用于客户端,所述装置包括:
创建文件模块,用于依据服务器发送的媒体文件头信息携带的文件大小创建音视频文件,并将所述媒体文件头信息写入所述音视频文件;
确定模块,用于根据所述文件大小确定所述服务器发送媒体数据的策略;
写入模块,用于基于所述策略确定接收到的来自所述服务器发送的媒体数据在所述音视频文件中的位置,并依据所述位置将接收的媒体数据写入所述音视频文件;
播放模块,用于依据所述媒体文件头信息对所述音视频文件进行解析并播放。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述所述媒体播放方法的步骤。
应用本申请实施例,客户端可以依据服务器发送的媒体文件头信息携带的文件大小创建音视频文件,并将媒体文件头信息写入音视频文件,然后再根据文件大小确定服务器发送媒体数据的策略,并基于该策略确定接收到的来自服务器发送的媒体数据在音视频文件中的位置,并依据该位置将接收的媒体数据写入音视频文件,并依据媒体文件头信息对该音视频文件进行解析并播放。基于上述描述可知,服务器发送的直接是媒体文件的原始文件,无需对媒体文件进行转封装操作,从而减轻了服务器的处理压力,提升了服务器多路接入性能。并且由于客户端接收到的直接是AVI文件的数据,因此可以保持AVI文件的原始性。
附图说明
图1为本申请根据一示例性实施例示出的一种媒体播放系统结构图;
图2为本申请根据一示例性实施例示出的一种媒体播放方法的实施例流程图;
图3为本申请根据一示例性实施例示出的另一种媒体播放方法的实施例流程图;
图4为本申请根据一示例性实施例示出的一种媒体播放系统结构图;
图5为本申请根据一示例性实施例示出的一种客户端的硬件结构图;
图6为本申请根据一示例性实施例示出的一种媒体播放装置的实施例结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1为本申请根据一示例性实施例示出的一种现有媒体播放系统结构图,如图1所示,该系统结构包括服务器和客户端,其中,服务器用于存储媒体文件,可以根据客户端的远程播放请求,向客户端提供媒体文件,客户端用于播放媒体文件。
本申请实施例以客户端播放的媒体文件为AVI文件为例,AVI文件的封装结构为文件头、数据块、索引块,其中,文件头在AVI文件的起始位置,用于存储AVI文件的编码参数(如音视频编码类型、总时长、文件大小、帧率等),是客户端解析媒体数据所需要的参数;数据块用于存储媒体数据;索引块用于存储索引数据,该索引数据指的是每一帧媒体数据的帧类型(视频帧还是音频帧)、文件中的偏移位置、数据长度等,索引块的大小与AVI文件的文件大小成正比。由于AVI文件的封装结构中数据块在前索引块在后,在流式取流环境中,客户端只有到最后才能接收到索引块的索引数据,所以无法实现AVI文件在流式环境下的边解边播,而RTP作为一种流式的媒体文件数据格式,不像AVI文件格式有媒体数据和索引数据的概念,而是以RTP包为数据单元,因此客户端可以以包为单位实现AVI文件的快速流式播放,其具体播放过程是:
服务器在接收到客户端发送的播放请求时,将请求播放的AVI文件先转封装为RTP包,然后通过RTSP,以RTP包的形式发送到客户端,客户端以接收到的RTP包为单位边解析边播放。
然而,服务器在对AVI文件进行转封装操作时,不但会使服务器承受一定的处理压力,影响服务器的多路接入性能,还会对服务器的响应造成一定延时,进而造成客户端播放延时,并且由于客户端接收到的是RTP包,并非AVI文件,因此无法保持AVI文件的原始性。另外,若用户预览后想保存录像,客户端需要再进行一次转封装操作,造成不必要的资源开销。
下面以具体实施例为例,介绍如何进行媒体播放,以解决上述技术问题,客户端播放的媒体文件可以是AVI文件,或者其它与AVI文件封装结构类似的媒体文件。下面以AVI文件为例进行阐述。
图2为本申请根据一示例性实施例示出的一种媒体播放方法的实施例流程图,该实施例可以应用在客户端(例如PC机、平板电脑、智能终端等)上,值得注意的是,如果客户端需要实现AVI文件的流式播放,必须先拿到文件头、索引块(部分索引数据即可),这样客户端在接收数据块中的媒体数据过程中,就可以边解析边播放。如图2所示,该媒体播放方法包括如下步骤:
步骤201:依据服务器发送的媒体文件头信息携带的文件大小创建音视频文件,并将媒体文件头信息写入音视频文件。
在一实施例中,客户端可以根据用户选择的需要播放媒体文件的标识,向服务器发送播放请求,在接收到服务器发送的针对该播放请求的媒体文件头信息时,获取媒体文件头信息携带的文件大小,进而可以在远程预览媒体文件前,在本地创建一个该文件大小的音视频文件,并将媒体文件头信息按顺序写入音视频文件中。
其中,客户端发送的播放请求中携带有需要播放媒体文件的标识,文件大小在文件头信息中以小端序方式存储,位于文件头信息起始位置的第5-8字节,创建的音视频文件用于存放有关该媒体文件的所有数据。
步骤202:根据文件大小确定服务器发送媒体数据的策略。
在一实施例中,如表1所示,AVI文件的封装结构为文件头、数据块、索引块,客户端在接收到服务器发送的媒体文件头信息之后,由于解析并播放媒体数据还需要对应的索引数据才能解析,因此客户端还需要接收到数据块中的媒体数据和索引块中媒体数据对应的索引数据,才能利用媒体文件头信息对媒体数据进行解析并播放。
表1
针对如何根据文件大小确定服务器发送媒体数据的策略,示例性的可以参见下述图3的描述,在此先不详述。
步骤203:基于所述策略确定接收到的来自服务器发送的媒体数据在音视频文件中的位置,并依据所述位置将接收的媒体数据写入音视频文件。
在一实施例中,客户端每接收一次服务器发送的媒体数据,就基于该策略确定一次当前接收到的媒体数据在音视频文件中的位置,并依据该位置将接收到的媒体数据写入音视频文件。
针对如何基于该策略确定接收到的媒体数据在音视频文件中的位置,并依据该位置将接收到的媒体数据写入音视频文件,示例性的可以参见下述图3的描述,在此先不详述。
步骤204:依据媒体文件头信息对该音视频文件进行解析并播放。
在一实施例中,由于数据块中每一帧媒体数据,在索引块中均对应有索引数据,因此针对对音视频文件进行解析并播放的过程,可以是利用文件头信息中的编码参数和该媒体数据对应的索引数据,对该媒体数据进行解析并播放。
基于此,客户端在将媒体数据写入音视频文件后,表示写入的媒体数据,在音视频文件中已经有对应的索引数据写入,进而可以依据媒体文件头信息中的编码参数和对应的索引数据,对写入的媒体数据进行解析并播放。
本实施例中,客户端可以依据服务器发送的媒体文件头信息携带的文件大小创建音视频文件,并将媒体文件头信息写入音视频文件,然后再根据文件大小确定服务器发送媒体数据的策略,并基于该策略确定接收到的来自服务器发送的媒体数据在音视频文件中的位置,并依据该位置将接收的媒体数据写入音视频文件,并依据媒体文件头信息对写入的媒体数据进行解析并播放。基于上述描述可知,服务器发送的直接是媒体文件的原始文件,无需对媒体文件进行转封装操作,从而减轻了服务器的处理压力,提升了多路接入性能。并且由于客户端接收到的直接是AVI文件的数据,因此可以保持AVI文件的原始性。
图3为本申请根据一示例性实施例示出的另一种媒体播放方法的实施例流程图,基于上述图2所示实施例的基础上,以如何根据文件大小确定服务器发送媒体数据的策略,以及如何基于该策略确定接收到的来自服务器发送的媒体数据在音视频文件中的位置,并依据所述位置将接收的媒体数据写入音视频文件为例进行示例性说明,如图3所示,该媒体播放方法包括:
步骤301:依据服务器发送的媒体文件头信息携带的文件大小创建音视频文件,并将媒体文件头信息写入音视频文件。
针对步骤301的描述可以参见上述步骤201的描述,在此不再赘述。
步骤302:若文件大小小于第一阈值,则确定服务器发送媒体数据的策略为服务器先发送索引数据,后发送媒体数据,并执行步骤303。
在一实施例中,若文件大小小于第一阈值,表示客户端请求播放的媒体文件属于小文件,可以确定服务器后续发送媒体数据的策略是,先将索引块中的索引数据发送完毕,再发送数据块中的媒体数据。
其中,第一阈值可以根据实际经验设置,例如,可以设置为100M。该第一阈值需要客户端与服务器预先协商一致。
步骤303:先将接收到的索引数据写入音视频文件的第一指定位置,再将后续接收到的媒体数据写入音视频文件的第二指定位置。
在一实施例中,由于AVI文件的封装结构为文件头、数据块、索引块,因此,客户端可以按照AVI文件的封装结构填充音视频文件,即可以先将接收到的索引数据从音视频文件的第一指定位置开始写入,并将后续接收到的媒体数据从音视频文件的第二指定位置开始写入。
其中,由于在AVI文件中,数据块在索引块的前面,因此,在音视频文件中,第二指定位置在第一指定位置之前。该第一指定位置可以根据索引块占用 AVI文件大小的比例设置的。例如,通常索引块处于整个AVI文件的99.8%偏移处,为了保证服务器一次性能够将索引数据全部发送过来,可以将第一指定位置设置在音视频文件的99.6%偏移处,也就是说,服务器会将从AVI文件99.6%偏移处到AVI文件结尾处之间的数据作为索引数据发送给客户端。由于音视频文件是根据媒体文件头信息携带的文件大小创建的,因此可以将音视频文件中媒体文件头信息结尾位置作为第二指定位置,第二指定位置也可以根据数据块占用AVI文件大小的比例设置。需要提及的是,第一指定位置和第二指定位置也需要客户端与服务器预先协商一致。
针对上述步骤302至步骤303所述,音视频文件的填充顺序依次为文件头、索引块、数据块,如表2所示,为一种示例性的音视频文件填充顺序。
表2
步骤304:若文件大小大于第一阈值,则确定服务器发送媒体数据的策略为,服务器分组发送媒体数据,每组数据包括媒体数据和该媒体数据对应的索引数据,并执行步骤305-步骤306。
在一实施例中,若文件大小大于第一阈值,表示客户端请求播放的媒体文件属于大文件,确定服务器发送媒体数据的策略是,服务器分组发送媒体数据,每组数据包括媒体数据和该媒体数据对应的索引数据。
步骤305:针对接收到的第一组数据,将该组中的索引数据写入音视频文件的第一指定位置,并将该组中的媒体数据写入音视频文件的第二指定位置。
在一实施例中,基于上述步骤303所述的理由,客户端对于接收到的第一组数据,可以先将该组中的索引数据从音视频文件的第一指定位置处开始写入,再将该组中的媒体数据从音视频文件的第二指定位置处开始写入,即紧挨着媒体文件头信息写入。
步骤306:从接收到的第二组数据开始,针对每组数据,将该组中的索引数据从上一组索引数据写入结束时的位置开始写入,并将该组中的媒体数据从上一组媒体数据写入结束时的位置开始写入。
针对上述步骤305至步骤306所述,对于每组中媒体数据和索引数据的大小,客户端与服务器也需要预先协商一致。例如,如果客户端与服务器协商的每组数据大小组成为4K索引数据+40M媒体数据,那么客户端对于每组数据,先取4K数据作为索引数据,从上一组索引数据写入结束时的位置处开始写入,然后再将剩余的40M数据作为媒体数据,从上一组媒体数据写入结束时的位置处开始写入。
由此可知,音视频文件的填充顺序依次为文件头、索引块+数据块,如表3 所示,为另一种示例性的音视频文件填充顺序。
表3
步骤307:依据媒体文件头信息对写入的媒体数据进行解析并播放。
针对步骤307的描述可以参见上述步骤204的描述,在此不再赘述。
本实施例中,客户端在将接收到的媒体文件头信息写入音视频文件后,若文件大小小于第一阈值,则确定服务器发送媒体数据的策略为先发送索引数据,后发送媒体数据,继而先将接收到的索引数据写入音视频文件的第一指定位置,再将后续接收到的媒体数据写入音视频文件的第二指定位置;若文件大小大于第一阈值,则确定服务器发送媒体数据的策略为,分组发送媒体数据,每组数据包括媒体数据和该媒体数据对应的索引数据,继而针对接收到的第一组数据,将该组中的索引数据写入音视频文件的第一指定位置,并将该组中的媒体数据写入音视频文件的第二指定位置,并从接收到的第二组数据开始,针对每组数据,将该组中的索引数据从上一组索引数据写入结束时的位置开始写入,并将该组中的媒体数据从上一组媒体数据写入结束时的位置开始写入,最后依据媒体文件头信息对写入的媒体数据进行解析并播放。基于上述描述可知,由于音视频文件的填充结构与AVI文件的封装结构一致,因此当客户端对AVI文件预览结束时,音视频文件即为原始的AVI文件,若用户想保存录像,直接可以将音视频文件作为录像保存,无需进行转封装操作,避免了不必要的资源开销。
图4为本申请根据一示例性实施例示出的一种媒体播放系统结构图,如图4 所示,该媒体播放系统包括:
服务器,用于向客户端发送媒体文件头信息,并基于媒体文件头信息携带的文件大小确定发送媒体数据的策略,并依据所述策略将所述媒体数据发送至客户端;
客户端,用于依据服务器发送的媒体文件头信息携带的文件大小创建音视频文件,并将媒体文件头信息写入所述音视频文件;根据文件大小确定服务器发送媒体数据的策略;基于所述策略确定接收到的来自服务器发送的媒体数据在音视频文件中的位置,并依据所述位置将接收的媒体数据写入音视频文件;依据媒体文件头信息对写入的媒体数据进行解析并播放。
在一实施例中,针对服务器向客户端发送媒体文件头信息的过程,由于AVI 文件的文件头信息通常在10K以内,为了保证客户端可以拿到全部的文件头信息,服务器可以通过设置发送前20K的数据,以将AVI文件头信息全部发送至客户端;或者服务器也可以解析读取AVI文件头信息,并将读取的AVI文件头信息发送至客户端。
在一实施例中,服务器,可以具体用于在基于媒体文件头信息携带的文件大小确定发送媒体数据的策略,并依据该策略将媒体数据发送至客户端过程中,若该文件大小小于第一阈值,则先将媒体文件中的索引数据发送至客户端,再将媒体文件中的媒体数据发送至客户端;若该文件大小大于第一阈值,则对媒体文件中的媒体数据进行分组,针对每组媒体数据,将该组媒体数据和该组媒体数据对应的索引数据发送至所述客户端。
其中,针对服务器先将媒体文件中的索引数据发送至客户端,再将媒体文件中的媒体数据发送至客户端的过程,可以参见上述步骤302至步骤303的相关描述,在此不再赘述。针对对媒体文件中的媒体数据进行分组,针对每组媒体数据,将该组媒体数据和该组媒体数据对应的索引数据发送至所述客户端的过程,可以参见上述步骤304至步骤306的相关描述,在此不再赘述。
需要说明的是,由于HTTP具有无状态、穿透性好、维护量小的优势,因此可以由HTTP代替现有采用的RSTP传输数据。即服务器可以通过HTTP (Hyper Text TransferProtocol,超文本传输协议),将媒体文件头信息发送至客户端,以及依据所述策略将媒体数据发送至客户端。
与前述媒体播放方法的实施例相对应,本申请还提供了媒体播放装置的实施例。
本申请媒体播放装置的实施例可以应用在客户端上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请根据一实施例性实施例示出的一种客户端的硬件结构图,该电子设备包括:通信接口501、处理器502、机器可读存储介质503和总线504;其中,通信接口501、处理器502和机器可读存储介质503通过总线504完成相互间的通信。处理器502通过读取并执行机器可读存储介质502中与媒体播放方法的控制逻辑对应的机器可执行指令,可执行上文描述的媒体播放方法,该方法的具体内容参见上述实施例,此处不再累述。
本申请中提到的机器可读存储介质503可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
此外,客户端可以为各种终端设备或者后端设备,例如摄像机、服务器、移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
图6为本申请根据一示例性实施例示出的一种媒体播放装置的实施例结构图,该媒体播放装置可以应用于客户端,所述装置包括:
创建文件模块610,用于依据服务器发送的媒体文件头信息携带的文件大小创建音视频文件,并将所述媒体文件头信息写入所述音视频文件;
确定模块620,用于根据所述文件大小确定所述服务器发送媒体数据的策略;
写入模块630,用于基于所述策略确定接收到的来自所述服务器发送的媒体数据在所述音视频文件中的位置,并依据所述位置将接收的媒体数据写入所述音视频文件;
播放模块640,用于依据所述媒体文件头信息对所述音视频文件进行解析并播放。
在一可选的实现方式中,所述确定模块620,具体用于若所述文件大小小于第一阈值,则确定所述服务器发送媒体数据的策略为,所述服务器先发送索引数据,后发送媒体数据。
在一可选的实现方式中,所述写入模块630,包括(图6中未示出):
第一写入子模块,用于先将接收到的索引数据写入所述音视频文件的第一指定位置,再将后续接收到的媒体数据写入所述音视频文件的第二指定位置。
在一可选的实现方式中,所述确定模块620,还具体用于若所述文件大小大于第一阈值,则确定所述服务器发送媒体数据的策略为,所述服务器分组发送媒体数据,每组数据包括索引数据和所述索引数据对应的媒体数据。
在一可选的实现方式中,所述写入模块630,还包括(图6中未示出):
第二写入子模块,用于针对接收到的第一组数据,将该组中的索引数据写入所述音视频文件的第一指定位置,并将该组中的媒体数据写入所述音视频文件的第二指定位置;从接收到的第二组数据开始,针对每组数据,将该组中的索引数据从上一组索引数据写入结束时的位置开始写入,并将该组中的媒体数据从上一组媒体数据写入结束时的位置开始写入。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的媒体播放方法的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (13)
1.一种媒体播放方法,其特征在于,所述方法应用于客户端,所述方法包括:
依据服务器发送的媒体文件头信息携带的文件大小创建音视频文件,并将所述媒体文件头信息写入所述音视频文件;所述服务器发送的是未经过转封装操作的媒体文件;
根据所述文件大小确定所述服务器发送媒体数据的策略;
基于所述策略确定接收到的来自所述服务器发送的媒体数据在所述音视频文件中的位置,并依据所述位置将接收的媒体数据写入所述音视频文件;
依据所述媒体文件头信息对所述音视频文件进行解析并播放。
2.根据权利要求1所述的方法,其特征在于,根据所述文件大小确定所述服务器发送媒体数据的策略,包括:
若所述文件大小小于第一阈值,则确定所述服务器发送媒体数据的策略为,所述服务器先发送索引数据,后发送媒体数据。
3.根据权利要求2所述的方法,其特征在于,基于所述策略确定接收到的来自所述服务器发送的媒体数据在所述音视频文件中的位置,并依据所述位置将接收的媒体数据写入所述音视频文件,包括:
先将接收到的索引数据写入所述音视频文件的第一指定位置,再将后续接收到的媒体数据写入所述音视频文件的第二指定位置。
4.根据权利要求1所述的方法,其特征在于,根据所述文件大小确定所述服务器发送媒体数据的策略,包括:
若所述文件大小大于第一阈值,则确定所述服务器发送媒体数据的策略为,所述服务器分组发送媒体数据,每组数据包括媒体数据和所述媒体数据对应的索引数据。
5.根据权利要求4所述的方法,其特征在于,基于所述策略确定接收到的来自所述服务器发送的媒体数据在所述音视频文件中的位置,并依据所述位置将接收的媒体数据写入所述音视频文件,包括:
针对接收到的第一组数据,将该组中的索引数据写入所述音视频文件的第一指定位置,并将该组中的媒体数据写入所述音视频文件的第二指定位置;
从接收到的第二组数据开始,针对每组数据,将该组中的索引数据从上一组索引数据写入结束时的位置开始写入,并将该组中的媒体数据从上一组媒体数据写入结束时的位置开始写入。
6.一种媒体播放系统,其特征在于,所述系统包括:
服务器,用于向客户端发送媒体文件头信息,并基于媒体文件头信息携带的文件大小确定发送媒体数据的策略,并依据所述策略将所述媒体数据发送至所述客户端;所述服务器发送的是未经过转封装操作的媒体文件;
客户端,用于依据服务器发送的媒体文件头信息携带的文件大小创建音视频文件,并将所述媒体文件头信息写入所述音视频文件;根据所述文件大小确定所述服务器发送媒体数据的策略;基于所述策略确定接收到的来自所述服务器发送的媒体数据在所述音视频文件中的位置,并依据所述位置将接收的媒体数据写入所述音视频文件;依据所述媒体文件头信息对所述音视频文件进行解析并播放。
7.根据权利要求6所述的系统,其特征在于,所述服务器,具体用于在基于媒体文件头信息携带的文件大小确定发送媒体数据的策略,并依据所述策略将所述媒体数据发送至所述客户端过程中,若所述文件大小小于第一阈值,则先将媒体文件中的索引数据发送至所述客户端,再将所述媒体文件中的媒体数据发送至所述客户端;若所述文件大小大于第一阈值,则对所述媒体文件中的媒体数据进行分组,针对每组媒体数据,将该组媒体数据和该组媒体数据对应的索引数据发送至所述客户端。
8.一种媒体播放装置,其特征在于,所述装置应用于客户端,所述装置包括:
创建文件模块,用于依据服务器发送的媒体文件头信息携带的文件大小创建音视频文件,并将所述媒体文件头信息写入所述音视频文件;所述服务器发送的是未经过转封装操作的媒体文件;
确定模块,用于根据所述文件大小确定所述服务器发送媒体数据的策略;
写入模块,用于基于所述策略确定接收到的来自所述服务器发送的媒体数据在所述音视频文件中的位置,并依据所述位置将接收的媒体数据写入所述音视频文件;
播放模块,用于依据所述媒体文件头信息对所述音视频文件进行解析并播放。
9.根据权利要求8所述的装置,其特征在于,所述确定模块,具体用于若所述文件大小小于第一阈值,则确定所述服务器发送媒体数据的策略为,所述服务器先发送索引数据,后发送媒体数据。
10.根据权利要求9所述的装置,其特征在于,所述写入模块,包括:
第一写入子模块,用于先将接收到的索引数据写入所述音视频文件的第一指定位置,再将后续接收到的媒体数据写入所述音视频文件的第二指定位置。
11.根据权利要求8所述的装置,其特征在于,所述确定模块,还具体用于若所述文件大小大于第一阈值,则确定所述服务器发送媒体数据的策略为,所述服务器分组发送媒体数据,每组数据包括索引数据和所述索引数据对应的媒体数据。
12.根据权利要求11所述的装置,其特征在于,所述写入模块,还包括:
第二写入子模块,用于针对接收到的第一组数据,将该组中的索引数据写入所述音视频文件的第一指定位置,并将该组中的媒体数据写入所述音视频文件的第二指定位置;从接收到的第二组数据开始,针对每组数据,将该组中的索引数据从上一组索引数据写入结束时的位置开始写入,并将该组中的媒体数据从上一组媒体数据写入结束时的位置开始写入。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810658199.5A CN110636368B (zh) | 2018-06-25 | 2018-06-25 | 媒体播放方法、系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810658199.5A CN110636368B (zh) | 2018-06-25 | 2018-06-25 | 媒体播放方法、系统、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110636368A CN110636368A (zh) | 2019-12-31 |
CN110636368B true CN110636368B (zh) | 2021-12-24 |
Family
ID=68966847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810658199.5A Active CN110636368B (zh) | 2018-06-25 | 2018-06-25 | 媒体播放方法、系统、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110636368B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112351564A (zh) * | 2020-11-19 | 2021-02-09 | 青岛易来智能科技股份有限公司 | 一种灯光控制方法、系统及编码方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385606A (zh) * | 2010-09-03 | 2012-03-21 | 腾讯科技(深圳)有限公司 | 一种分布式数据仓库的访问方法和装置 |
CN102510519A (zh) * | 2011-10-11 | 2012-06-20 | 成都市华为赛门铁克科技有限公司 | 流媒体数据的处理方法、播放方法以及装置 |
CN103165157A (zh) * | 2011-12-16 | 2013-06-19 | 深圳市快播科技有限公司 | 定位无索引avi 文件播放位置的方法、装置及播放器 |
CN103873860A (zh) * | 2014-03-18 | 2014-06-18 | 深信服网络科技(深圳)有限公司 | 文件传输方法及装置 |
CN104978319A (zh) * | 2014-04-02 | 2015-10-14 | 东华软件股份公司 | 一种用于文件分类传输的方法和设备 |
CN107172131A (zh) * | 2017-04-26 | 2017-09-15 | 腾讯科技(深圳)有限公司 | 文件上传方法和装置 |
CN108021650A (zh) * | 2017-11-30 | 2018-05-11 | 冶金自动化研究设计院 | 一种时序数据的高效存储和读取系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI369672B (en) * | 2007-09-07 | 2012-08-01 | Sunplus Technology Co Ltd | Data recording method of recording an audio and video interleaved file |
US20090257484A1 (en) * | 2008-04-15 | 2009-10-15 | Winbond Electronics Corp. | Method for audio-video encoding and apparatus for multimedia storage |
-
2018
- 2018-06-25 CN CN201810658199.5A patent/CN110636368B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385606A (zh) * | 2010-09-03 | 2012-03-21 | 腾讯科技(深圳)有限公司 | 一种分布式数据仓库的访问方法和装置 |
CN102510519A (zh) * | 2011-10-11 | 2012-06-20 | 成都市华为赛门铁克科技有限公司 | 流媒体数据的处理方法、播放方法以及装置 |
CN103165157A (zh) * | 2011-12-16 | 2013-06-19 | 深圳市快播科技有限公司 | 定位无索引avi 文件播放位置的方法、装置及播放器 |
CN103873860A (zh) * | 2014-03-18 | 2014-06-18 | 深信服网络科技(深圳)有限公司 | 文件传输方法及装置 |
CN104978319A (zh) * | 2014-04-02 | 2015-10-14 | 东华软件股份公司 | 一种用于文件分类传输的方法和设备 |
CN107172131A (zh) * | 2017-04-26 | 2017-09-15 | 腾讯科技(深圳)有限公司 | 文件上传方法和装置 |
CN108021650A (zh) * | 2017-11-30 | 2018-05-11 | 冶金自动化研究设计院 | 一种时序数据的高效存储和读取系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110636368A (zh) | 2019-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10305947B2 (en) | Pre-buffering audio streams | |
US8812735B2 (en) | Content reproduction system, content reproduction apparatus, program, content reproduction method, and providing content server | |
WO2018076952A1 (zh) | 一种视频文件的存储、定位播放方法及装置 | |
US8355433B2 (en) | Encoding video streams for adaptive video streaming | |
EP3142381B1 (en) | Network video playing method and device | |
US20120141089A1 (en) | Variable Bit Video Streams for Adaptive Streaming | |
JP2008243367A (ja) | 同報通信データを記録するための方法、および、装置 | |
KR20130093675A (ko) | 적응 스트리밍을 위한 가변 비트 비디오 스트림들 | |
CN101203827A (zh) | 用于媒体流的流量控制 | |
CN102694831A (zh) | 移动终端流媒体数据补偿方法与系统、内容分发网络 | |
CN103873804B (zh) | 用于嵌入式nvr的录像回放时间轴与内容同步控制方法 | |
CN111356023B (zh) | 播放方式确定方法及装置 | |
CN110225399B (zh) | 流媒体处理方法、装置、计算机设备及存储介质 | |
CN103152606A (zh) | 视频文件处理方法及装置、系统 | |
CN110636368B (zh) | 媒体播放方法、系统、装置及存储介质 | |
WO2024109317A1 (zh) | 一种传输视频帧及摄像参数信息的方法与设备 | |
WO2015018119A1 (zh) | 一种多媒体文件生成的方法及多媒体设备 | |
CN111346377A (zh) | 用于网络游戏的记录、回放方法及装置、服务器、终端 | |
CN103561013A (zh) | 流媒体的数据分发系统 | |
CN104159125A (zh) | 播放视频的方法、虚拟播放器和视频播放器 | |
US20180034885A1 (en) | System for transferring real-time audio/video stream | |
US10354695B2 (en) | Data recording control device and data recording control method | |
CN106534137B (zh) | 媒体流传输方法及装置 | |
CN102185874B (zh) | 基于因特网小型计算机系统接口的命令处理方法及装置 | |
US20120059912A1 (en) | Delivering a Media File to a Client |
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 |