CN107241571A - 一种多媒体文件封装、播放方法及装置 - Google Patents
一种多媒体文件封装、播放方法及装置 Download PDFInfo
- Publication number
- CN107241571A CN107241571A CN201610189432.0A CN201610189432A CN107241571A CN 107241571 A CN107241571 A CN 107241571A CN 201610189432 A CN201610189432 A CN 201610189432A CN 107241571 A CN107241571 A CN 107241571A
- Authority
- CN
- China
- Prior art keywords
- gop
- volume
- grade point
- data
- change
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000005538 encapsulation Methods 0.000 title abstract description 9
- 230000008859 change Effects 0.000 claims abstract description 317
- 239000013598 vector Substances 0.000 claims abstract description 166
- 238000012856 packing Methods 0.000 claims abstract description 12
- 230000003139 buffering effect Effects 0.000 claims description 25
- 238000004321 preservation Methods 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 241000208340 Araliaceae Species 0.000 claims description 5
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 5
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 5
- 235000008434 ginseng Nutrition 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 4
- 238000003860 storage Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 241001269238 Data Species 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000001154 acute effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000011002 quantification Methods 0.000 description 3
- 238000001727 in vivo Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 239000011295 pitch Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004540 process dynamic Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- 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/439—Processing of audio elementary streams
- H04N21/4394—Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/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/44—Processing 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/44008—Processing 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 operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring 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)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例公开了一种多媒体文件封装、播放方法及装置,封装方法包括:针对采集的每个GOP数据,确定该GOP对应的视频内容变化参数和/或音量参数,其中根据视频数据的每一参考帧的数据量和/或运动矢量变化总量,确定该GOP对应的视频内容变化参数;根据音频数据的音量的平均值和/或音量变化强度,确定该GOP对应的音量参数;根据每个GOP对应的视频内容变化参数和/或音量参数,采用第一预设规则,确定每个GOP对应的判定参数;对每个GOP的数据进行封装,并将确定的每个GOP对应的判定参数添加到对应的每个媒体表示描述MPD文件中。根据GOP对应的判定参数能够判断该GOP是否包含使用价值较大的多媒体内容。
Description
技术领域
本发明涉及视频监控技术领域,特别涉及一种多媒体文件封装、播放方法及装置。
背景技术
通常情况下,摄像机或服务器将采集到的多媒体数据按照国际标准(ISO14496-12)封装成DASH(Dynamic Adaptive Streaming over HTTP,基于HTTP的动态自适应流)协议指定的格式数据(该格式数据以GOP为单位),同时针对每一GOP的数据,生成其对应的MPD(Media Presentation Description,媒体表示描述)文件,MPD文件中包括该GOP数据的索引信息,如编码方式、媒体时长、媒体类型、可供选择的多种码率、URL等信息。客户端在获取每一GOP的数据之前,先从摄像机或服务器获取该GOP的数据对应的MPD文件,对MPD文件进行解析,并根据客户端的缓冲区等级或客户端所在的网络的带宽,从MPD文件中包括的可供选择的多种码率中选择合适的码率。客户端将选择的针对于该GOP数据的码率发送给摄像机或服务器,以使摄像机或服务器将该GOP数据发送给客户端,客户端以该码率将该GOP数据进行解码播放。
在视频监控技术领域,使用价值较大的通常都是变化剧烈或者与一般情况有较大差异的异常多媒体数据,比如深夜楼道监控中突然出现的人物,十字路口出现的大面积拥堵或围观等多媒体数据。
应用上述方案,摄像机或服务器生成的各GOP数据对应的MPD文件中,并不涉及能够反映多媒体内容的信息,因而客户端在获取了MPD文件后,无法根据待播放的多媒体内容,确定多媒体数据的播放码率。
发明内容
本发明实施例的目的在于提供一种多媒体文件封装、播放方法及装置,以解决现有MPD文件不包含反映多媒体内容的信息,无法根据多媒体内容确定播放码率的问题。
为达到上述目的,本发明实施例公开了一种多媒体文件封装方法,应用于摄像机或服务器,包括:
针对采集的每个图像组GOP的多媒体数据,确定所述GOP对应的视频内容变化参数和/或音量参数,其中根据所述GOP的多媒体数据中视频数据的每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数;根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数;
根据每个GOP对应的视频内容变化参数和/或音量参数,采用第一预设规则,确定每个GOP对应的判定参数;
对每个GOP的多媒体数据进行封装,并将确定的每个GOP对应的判定参数添加到对应的每个媒体表示描述MPD文件中。
可选的,当根据每个GOP对应的视频内容变化参数和音量参数,采用第一预设规则,确定每个GOP对应的判定参数时,可以包括:
根据下式确定每个GOP对应的判定参数:
GOP对应的判定参数=所述GOP对应的视频内容变化参数*第一权重值+所述GOP对应的音量参数*第二权重值,其中第一权重值和第二权重值相同或不同。
可选的,所述根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定所述GOP对应的视频内容变化参数,可以包括:
根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定所述GOP中所有参考帧的数据量的和以及运动矢量变化总量的和;
根据所述GOP中包含的参考帧的数量,及所述所有参考帧的数据量的和以及运动矢量变化总量的和,确定所述GOP对应的平均数据量和平均运动矢量变化总量;
根据所述平均数据量和所述平均运动矢量变化总量,确定所述平均数据量的等级值和所述平均运动矢量变化总量的等级值;
根据所述平均数据量的等级值和所述平均运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数。
可选的,所述根据所述GOP的多媒体数据中每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数,可以包括:
根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定每一参考帧的数据量的等级值和运动矢量变化总量的等级值;
根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和/或运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数。
可选的,所述根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数,可以包括:
根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和运动矢量变化总量的等级值,确定数据量的等级值的平均值和运动矢量变化总量的等级值的平均值,根据每个平均值对应的权重值,确定所述GOP对应的视频内容变化参数。
可选的,所述根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数,可以包括:
根据所述GOP的多媒体数据中音频数据的音量的平均值和音量变化强度,确定所述音频数据的音量的等级值和音量变化强度的等级值;
根据所述音量的等级值和/或音量变化强度的等级值,确定所述GOP对应的音量参数。
可选的,所述根据所述音量的等级值和音量变化强度的等级值,确定所述GOP对应的音量参数,可以包括:
根据所述音量的等级值和音量变化强度的等级值,及所述音量的等级值和音量变化强度的等级值对应的权重值,确定所述GOP对应的音量参数。
可选的,所述根据所述GOP的多媒体数据中视频数据的每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数,可以包括:
针对每个参考帧,确定所述参考帧的数据量和运动矢量变化总量;
当所述参考帧非所述GOP中的最后一个参考帧时,根据所述参考帧的数据量和运动矢量变化总量,确定所述参考帧的数据量和运动矢量变化总量的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值;
当所述参考帧为该GOP中的最后一个参考帧时,根据所述参考帧的数据量和运动矢量变化总量,确定所述参考帧的数据量和运动矢量变化总量的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值;根据更新后的所述等级值的均值,确定所述GOP对应的视频内容变化参数,并将所述视频内容变化参数添加到基于DASH分片索引Box中视频内容变化参数对应的字段中。
可选的,所述根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数,可以包括:
将所述GOP的多媒体数据中的音频数据划分成时长相等的多个时间段;
针对每一时间段,确定所述时间段的音量的平均值和音量变化强度;
当所述时间段非所述GOP中的最后一个时间段时,根据所述时间段的音量的平均值和音量变化强度,确定所述时间段的音量的平均值和音量变化强度的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值;
当所述时间段为该GOP中的最后一个时间段时,根据所述时间段的音量的平均值和音量变化强度,确定所述时间段的音量的平均值和音量变化强度的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值;根据更新后的所述等级值的均值,确定所述GOP对应的音量参数,并将所述音量参数添加到基于DASH分片索引Box中音量参数对应的字段中。
为达到上述目的,本发明实施例还公开了一种多媒体文件播放方法,应用于客户端,所述客户端与所述摄像机或服务器通讯连接,包括:
向所述摄像机或服务器发送获取请求,以使所述摄像机或服务器将一个GOP的多媒体数据对应的媒体表示描述MPD文件发送给所述客户端;
接收所述MPD文件,读取所述MPD文件中的所述GOP对应的判定参数;
根据所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率;
将所述第一播放码率发送给所述摄像机或服务器,并以所述第一播放码率对所述摄像机或服务器发送的所述GOP的多媒体数据进行解码播放。
可选的,所述根据所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率,可以包括:
根据网络带宽和缓冲区等级中至少一个及所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率。
可选的,所述根据网络带宽和缓冲区等级中至少一个及所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率,可以包括:
根据所述GOP对应的判定参数、网络带宽和缓冲区等级,及所述GOP对应的判定参数、网络带宽和缓冲区等级对应的权重值,确定所述GOP的多媒体数据的第一播放码率。
可选的,所述将所述第一播放码率发送给所述摄像机或服务器之前,还可以包括:
提取保存的所述GOP之前的设定数量个GOP的多媒体数据的理论播放码率;
判断所述第一播放码率与设定数量个理论播放码率的差值是否都小于预设阈值;
如果是,执行所述将所述第一播放码率发送给所述摄像机或服务器的步骤;
如果否,将所述设定数量个理论播放码率中最前面一个理论播放码率确定为调整后的第一播放码率,并执行将调整后的第一播放码率发送给摄像机或服务器的步骤,将所述第一播放码率保存为所述GOP的多媒体数据的理论播放码率,并将所述调整后的第一播放码率保存为所述GOP的多媒体数据的实际播放码率。
为达到上述目的,本发明实施例还公开了一种多媒体文件封装装置,应用于摄像机或服务器,包括:第一确定模块、第二确定模块和封装模块,其中,
所述第一确定模块,用于针对采集的每个图像组GOP的多媒体数据,确定所述GOP对应的视频内容变化参数和/或音量参数,其中根据所述GOP的多媒体数据中视频数据的每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数;根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数;
所述第二确定模块,用于根据每个GOP对应的视频内容变化参数和/或音量参数,采用第一预设规则,确定每个GOP对应的判定参数;
所述封装模块,用于对每个GOP的多媒体数据进行封装,并将确定的每个GOP对应的判定参数添加到对应的每个媒体表示描述MPD文件中。
可选的,所述第二确定模块,具体可以用于根据下式确定每个GOP对应的判定参数:
GOP对应的判定参数=所述GOP对应的视频内容变化参数*第一权重值+所述GOP对应的音量参数*第二权重值,其中第一权重值和第二权重值相同或不同。
可选的,所述第一确定模块,可以包括:第一确定子模块、第二确定子模块、第三确定子模块和第四确定子模块,其中,
所述第一确定子模块,用于根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定所述GOP中所有参考帧的数据量的和以及运动矢量变化总量的和;
所述第二确定子模块,用于根据所述GOP中包含的参考帧的数量,及所述所有参考帧的数据量的和以及运动矢量变化总量的和,确定所述GOP对应的平均数据量和平均运动矢量变化总量;
所述第三确定子模块,用于根据所述平均数据量和所述平均运动矢量变化总量,确定所述平均数据量的等级值和所述平均运动矢量变化总量的等级值;
所述第四确定子模块,用于根据所述平均数据量的等级值和所述平均运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数。
可选的,所述第一确定模块,可以包括:第五确定子模块和第六确定子模块,其中,
所述第五确定子模块,用于根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定每一参考帧的数据量的等级值和运动矢量变化总量的等级值;和/或,
根据所述GOP的多媒体数据中音频数据的音量的平均值和音量变化强度,确定所述音频数据的音量的等级值和音量变化强度的等级值;
所述第六确定子模块,用于根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和/或运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数;和/或,
根据所述音量的等级值和/或音量变化强度的等级值,确定所述GOP对应的音量参数。
可选的,所述第六确定子模块,具体可以用于:
根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和运动矢量变化总量的等级值,确定数据量的等级值的平均值和运动矢量变化总量的等级值的平均值,根据每个平均值对应的权重值,确定所述GOP对应的视频内容变化参数;和/或,
根据所述音量的等级值和音量变化强度的等级值,及所述音量的等级值和音量变化强度的等级值对应的权重值,确定所述GOP对应的音量参数。
可选的,所述第一确定模块,具体可以用于:
针对每个参考帧,确定所述参考帧的数据量和运动矢量变化总量;
当所述参考帧非所述GOP中的最后一个参考帧时,根据所述参考帧的数据量和运动矢量变化总量,确定所述参考帧的数据量和运动矢量变化总量的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值;
当所述参考帧为该GOP中的最后一个参考帧时,根据所述参考帧的数据量和运动矢量变化总量,确定所述参考帧的数据量和运动矢量变化总量的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,根据更新后的所述等级值的均值,确定所述GOP对应的视频内容变化参数,并将所述视频内容变化参数添加到基于DASH分片索引Box中视频内容变化参数对应的字段中;和/或,
将所述GOP的多媒体数据中的音频数据划分成时长相等的多个时间段;
针对每一时间段,确定所述时间段的音量的平均值和音量变化强度;
当所述时间段非所述GOP中的最后一个时间段时,根据所述时间段的音量的平均值和音量变化强度,确定所述时间段的音量的平均值和音量变化强度的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值;
当所述时间段为该GOP中的最后一个时间段时,根据所述时间段的音量的平均值和音量变化强度,确定所述时间段的音量的平均值和音量变化强度的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,根据更新后的所述等级值的均值,确定所述GOP对应的音量参数,并将所述音量参数添加到基于DASH分片索引Box中音量参数对应的字段中。
为达到上述目的,本发明实施例还公开了一种多媒体文件播放装置,应用于客户端,所述客户端与所述摄像机或服务器通讯连接,包括:发送模块、读取模块、第三确定模块和播放模块,其中,
所述发送模块,用于向所述摄像机或服务器发送获取请求,以使所述摄像机或服务器将一个GOP的多媒体数据对应的媒体表示描述MPD文件发送给所述客户端;
所述读取模块,用于接收所述MPD文件,读取所述MPD文件中的所述GOP对应的判定参数;
所述第三确定模块,用于根据所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率;
所述播放模块,用于将所述第一播放码率发送给所述摄像机或服务器,并以所述第一播放码率对所述摄像机或服务器发送的所述GOP的多媒体数据进行解码播放。
可选的,所述第三确定模块,具体可以用于根据网络带宽和缓冲区等级中至少一个及所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率。
可选的,所述第三确定模块,具体可以用于根据所述GOP对应的判定参数、网络带宽和缓冲区等级,及所述GOP对应的判定参数、网络带宽和缓冲区等级对应的权重值,确定所述GOP的多媒体数据的第一播放码率。
可选的,还可以包括:提取模块、判断模块、第四确定模块和保存模块,其中,
所述提取模块,用于提取保存的所述GOP之前的设定数量个GOP的多媒体数据的理论播放码率;
所述判断模块,用于判断所述第一播放码率与设定数量个理论播放码率的差值是否都小于预设阈值,如果是,触发所述播放模块,如果否,触发所述第四确定模块;
所述第四确定模块,用于将所述设定数量个理论播放码率中最前面一个理论播放码率确定为调整后的第一播放码率,并触发所述播放模块;
所述保存模块,用于将所述第一播放码率保存为所述GOP的多媒体数据的理论播放码率,并将所述调整后的第一播放码率保存为所述GOP的多媒体数据的实际播放码率。
由上述的技术方案可见,摄像机或服务器在每个GOP的多媒体数据对应的媒体表示描述MPD文件中加入该GOP对应的判定参数,该判定参数能够反映该GOP的多媒体数据包含的多媒体内容的变化强度。客户端根据该GOP的多媒体数据对应的媒体表示描述MPD文件中加入的该GOP对应的判定参数,确定该GOP的多媒体数据的播放码率,以使摄像机或服务器将该GOP的多媒体数据发送给客户端,客户端以该播放码率将该GOP的多媒体数据进行解码播放。由此可见,本发明实施例的封装方法中将GOP对应的判定参数添加到对应的每个媒体表示描述MPD文件中,该GOP对应的判定参数根据视频内容和/或音频内容的变化确定,其中视频内容变化越大对应的判定参数越大,音频内容变化越大对应的判定参数越大,从而使接收到MPD文件的客户端,可以根据该MPD文件中记录的GOP对应的判定参数,确定多媒体数据的播放码率。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的多媒体文件封装方法的第一种流程示意图;
图2为本发明实施例提供的多媒体文件封装方法的第二种流程示意图;
图3为本发明实施例提供的多媒体文件封装方法的第三种流程示意图;
图4为本发明实施例提供的多媒体文件播放方法的第一种流程示意图;
图5为本发明实施例提供的多媒体文件播放方法的第二种流程示意图;
图6为本发明实施例提供的多媒体文件封装装置的第一种结构示意图;
图7为本发明实施例提供的多媒体文件播放装置的第一种结构示意图;
图8为本发明实施例提供的多媒体文件播放装置的第二种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术问题,本发明实施例提供了一种应用于摄像机或服务器的多媒体文件封装方法及装置,还提供了一种应用于客户端的多媒体文件播放方法及装置。下面首先对本发明实施例提供的一种应用于摄像机或服务器的多媒体文件封装方法进行详细说明。
图1为本发明实施例提供的多媒体文件封装方法的第一种流程示意图,包括:
S101A:针对采集的每个图像组GOP的多媒体数据,根据所述GOP的多媒体数据中视频数据的每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数。
作为本发明的一种实施方式,采集到的多媒体数据按照ISO14496-12国际标准规范以GOP为单位进行封装。每一GOP的多媒体数据中包括视频数据和音频数据,其中视频数据包括一个I帧和多个P帧、B帧,I帧可以独立解码成一个完整的画面,P帧、B帧记录的是相对于I帧的变化,P帧、B帧即为参考帧。
在本发明所示实施例中,不涉及B帧的封装,一个GOP由首帧I帧和若干P帧组成,P帧中存储每个像素点相对于I帧的运动矢量(MV)的变化向量。假设P帧中有3个像素点相对于I帧发生了变化,P帧中存储的是像素点A的MV变化向量(3,5)、像素点B的MV变化向量(4,6)、像素点C的MV变化向量(7,9)。由此可见,P帧的数据量和MV变化总量均能侧面反映P帧视频内容是否存在剧烈变化:P帧的数据量或MV变化总量越大,说明发生变化的像素点越多,或者像素点变化的向量越大。
S102A:根据每个GOP对应的视频内容变化参数,采用第一预设规则,确定每个GOP对应的判定参数。其中视频内容变化参数越大对应的判定参数越大。
在本发明所示实施例中,可以根据GOP对应的视频内容变化参数,确定该GOP对应的判定参数。例如可以直接将GOP对应的视频内容变化参数,确定为该GOP对应的判定参数。
S103:对每个GOP的多媒体数据进行封装,并将确定的每个GOP对应的判定参数添加到对应的每个媒体表示描述MPD文件中。
具体的,针对采集的每个图像组GOP的多媒体数据,根据所述GOP的多媒体数据中每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数时,可以包括:
第一种方式,根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定所述GOP中所有参考帧的数据量的和以及运动矢量变化总量的和;根据所述GOP中包含的参考帧的数量,及所述所有参考帧的数据量的和以及运动矢量变化总量的和,确定所述GOP对应的平均数据量和平均运动矢量变化总量;根据所述平均数据量和所述平均运动矢量变化总量,确定所述平均数据量的等级值和所述平均运动矢量变化总量的等级值;根据所述平均数据量的等级值和所述平均运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数。
假设所述GOP的多媒体数据中包含5个P帧,根据每一P帧的数据量和运动矢量变化总量,确定所述GOP中包含的5个P帧的数据量的和以及运动矢量变化总量的和。将上述5个P帧的数据量的和除以5,得到所述GOP对应的平均数据量;将上述5个P帧的运动矢量变化总量的和除以5,得到所述GOP对应的平均运动矢量变化总量。
根据平均数据量,及每个等级值对应的数据量区间,确定平均数据量的等级值;根据平均运动矢量变化总量,及每个等级值对应的运动运动矢量变化总量区间,确定平均运动矢量变化总量的等级值。即,对平均数据量和平均运动矢量变化总量进行量化,量化规则可以如表1所示。
第二种方式,根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定每一参考帧的数据量的等级值和运动矢量变化总量的等级值;根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和/或运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数。
根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定每一参考帧的数据量的等级值和运动矢量变化总量的等级值,即,对每一参考帧的数据量和运动矢量变化总量进行量化。假设量化规则如表1所示:
表1
数值 | <MIN | >=MIN&&<=MAX | >MAX&&<=1.5MAX | >1.5MAX |
等级值 | 0 | 1 | 2 | 3 |
其中,表1中记录有数值范围与等级值的对应关系,数值范围即为数据量或运动矢量变化总量的对应范围,[MIN,MAX]为对应参数在当前时间段的正常数值范围。如果该数值为参考帧的数据量,参考帧的数据量在当前时间段的正常数值范围为[MIN=200,MAX=500]。根据上述表1可知,如果该参考帧的数据量小于200,则该参考帧的数据量的等级值为0,如果该参考帧的数据量大于200且小于500,则该参考帧的数据量的等级值为1;如果该参考帧的数据量大于500且小于500*1.5=750,则该参考帧的数据量的等级值为2,如果该参考帧的数据量大于500*1.5=750,则该参考帧的数据量的等级值为3。
当应用第二种方式确定所述GOP对应的视频内容变化参数时,根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数,可以包括:
假设该GOP中包含5个P帧,分别用A、B、C、D、E来表示,利用表1得到该5个P帧的数据量的等级值分别为1、2、2、3、1(按照A、B、C、D、E的顺序),该5个P帧的运动矢量变化总量的等级值分别为1、1、2、2、1(按照A、B、C、D、E的顺序)。
第一种方案:根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值,确定数据量的等级值的平均值,将所述数据量的等级值的平均值确定为所述GOP对应的视频内容变化参数。
A、B、C、D、E这5个P帧的数据量的等级值分别为1、2、2、3、1,数据量的等级值的平均值为(1+2+2+3+1)/5=1.8,所述GOP对应的视频内容变化参数即为1.8。
第二种方案:根据所述GOP中包含的参考帧的数量,及每一参考帧的运动矢量变化总量的等级值,确定运动矢量变化总量的等级值的平均值,将所述运动矢量变化总量的等级值的平均值确定为所述GOP对应的视频内容变化参数。
A、B、C、D、E这5个P帧的MV变化总量的等级值分别为1、1、2、2、1,MV变化总量的等级值的平均值为(1+1+2+1+1)/5=1.2,所述GOP对应的视频内容变化参数即为1.2。
第三种方案:根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和运动矢量变化总量的等级值,确定数据量的等级值的平均值和运动矢量变化总量的等级值的平均值,根据每个平均值对应的权重值,确定所述GOP对应的视频内容变化参数。
数据量的等级值的平均值为1.8,MV变化总量的等级值的平均值为1.2,假设数据量的等级值的平均值对应的权重为40%,MV变化总量的等级值的平均值对应的权重为60%,则视频内容变化参数=40%*1.8+60%*1.2=1.44。
根据每个GOP对应的视频内容变化参数,采用第一预设规则,确定每个GOP对应的判定参数。在本实施例中,将视频内容变化参数1.44,确定为该GOP对应的判定参数。
对每个GOP的多媒体数据进行封装,并将确定的每个GOP对应的判定参数1.44添加到对应的每个媒体表示描述MPD文件中。
具体的,在本发明实施例中,当确定了GOP对应的判定参数后,可以将该判定参数添加到该GOP对应的DASH分片索引的CIML(或STYP/FREE/UDTA)Box中。该CIML Box保存有一些成员变量,可以在该CIML Box中增加一个成员变量important_level,该成员变量important_level用于存储该GOP对应的判定参数。为了便于计算,由于该CIML Box保存有一些成员变量,可以采用这些成员变量存储上述过程中确定的该GOP中每一参考帧的数据量的等级值和/或运动矢量变化总量的等级值。
当对多媒体文件进行封装时,针对该GOP获取该GOP对应的DASH分片索引的CIML Box中保存的成员变量important_level存储的参数,将该参数作为该GOP对应的判定参数添加到该GOP对应的MPD文件中。
在本实施例中,根据所述GOP的多媒体数据中视频数据的每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数,可以包括:
针对每个参考帧,确定所述参考帧的数据量和运动矢量变化总量;
当所述参考帧非所述GOP中的最后一个参考帧时,根据所述参考帧的数据量和运动矢量变化总量,确定所述参考帧的数据量和运动矢量变化总量的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值;
当所述参考帧为该GOP中的最后一个参考帧时,根据所述参考帧的数据量和运动矢量变化总量,确定所述参考帧的数据量和运动矢量变化总量的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,根据更新后的所述等级值的均值,确定所述GOP对应的视频内容变化参数,并将所述视频内容变化参数添加到基于DASH分片索引Box中视频内容变化参数对应的字段中。
在对GOP的多媒体数据的封装过程中,数据量的等级值的均值和/或运动矢量变化总量的等级值的均值及视频内容变化参数保存在基于DASH分片索引Box中相应的字段中,即上述的各成员变量对应的字段中。以上述第三种方案进行说明,数据量的等级值的均值保存在N1字段中,MV变化总量的等级值的均值保存在N2字段中,视频内容变化参数保存在M字段中。每封装一个P帧,对N1和N2字段中保存的均值进行迭代更新。
例如,N1字段中保存的等级值的均值为2.2,N2字段中保存的等级值的均值为2.3,当前待封装的P帧的数据量的等级值为1.8,MV变化总量的等级值为1.7,则将N1字段中保存的等级值的均值更新为(2.2+1.8)/2=2,将N2字段中保存的等级值的均值更新为(2.3+1.7)/2=2。如此循环,直至封装到该GOP中的最后一个P帧。根据此时N1字段和N2字段中保存的等级值的均值,确定该GOP对应的视频内容变化参数。
还以上述第三种方案中的例子进行说明,假设数据量的等级值的均值对应的权重为40%,MV变化总量的等级值的均值对应的权重为60%,此时N1字段中保存的数据量的等级值的均值为1.8,N2字段中保存的MV变化总量的等级值的均值为1.2,则视频内容变化参数=40%*1.8+60%*1.2=1.44,将该视频内容变化参数1.44添加到基于DASH分片索引Box中视频内容变化参数对应的字段中,即M字段中。
需要说明的是,量化等级填充字段可以为32bit,采用大端对齐方式。
DASH数据分片生成以后,由于M字段位于分片索引Box中,可直接读取并将其填充到MPD文件中的<SegmentTemplatemedia="$Bandwidth%/$Time$.mp4v importance="$Level$">Level字段即可。
应用本发明图1所示实施例,根据所述GOP的多媒体数据中视频数据的每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数;根据每个GOP对应的视频内容变化参数,采用第一预设规则,确定每个GOP对应的判定参数;对每个GOP的多媒体数据进行封装,并将确定的每个GOP对应的判定参数添加到对应的每个媒体表示描述MPD文件中。参考帧的数据量、运动矢量变化总量均能反应多媒体内容的变化强度,因而,根据GOP对应的判定参数能够判断该GOP对应的多媒体数据是否包含使用价值较大的多媒体内容。
图2为本发明实施例提供的多媒体文件封装方法的第二种流程示意图,包括:
S101B:针对采集的每个图像组GOP的多媒体数据,根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数。
作为本发明的一种实施方式,采集到的多媒体数据按照ISO14496-12国际标准规范以GOP为单位进行封装。每一GOP的多媒体数据中包括视频数据和音频数据,其中,音频数据紧跟在视频数据后面共同构成一段完整的多媒体数据。
音量的剧烈变化或者异常的高分贝音量往往伴随着激烈的视频变化和物体运动,因此,音量的平均值和/或音量变化强度均能反应该音频数据对应的多媒体内容是否存在剧烈变化。
S102B:根据每个GOP对应的音量参数,采用第一预设规则,确定每个GOP对应的判定参数量。其中音量参数越大对应的判定参数越大。
在本发明所示实施例中,可以根据GOP对应的音量参数,确定该GOP对应的判定参数。例如可以直接将GOP对应的音量参数,确定为该GOP对应的判定参数。
S103:对每个GOP的多媒体数据进行封装,并将确定的每个GOP对应的判定参数添加到对应的每个媒体表示描述MPD文件中。
具体的,针对采集的每个图像组GOP的多媒体数据,根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数时,可以包括:
根据所述GOP的多媒体数据中音频数据的音量的平均值和音量变化强度,确定所述音频数据的音量的等级值和音量变化强度的等级值;根据所述音量的等级值和/或音量变化强度的等级值,确定所述GOP对应的音量参数。
根据所述GOP的多媒体数据中音频数据的音量的平均值,及每个等级值对应的音量的平均值区间,确定所述音频数据的音量的等级值;根据音量变化强度,及每个等级值对应的音量变化强度区间,确定所述音频数据的音量变化强度的等级值。即,对音频数据的音量的平均值和/或音量变化强度进行量化。量化规则可以与本发明图1所示实施例中的表1所示的量化规则相同。其中,表1中记录有数值范围与等级值的对应关系,数值范围即为音量的平均值或音量变化强度的对应范围,[MIN,MAX]为对应参数在当前时间段的正常数值范围。
作为本发明的一种实施方式,根据所述音量的等级值和音量变化强度的等级值,确定所述GOP对应的音量参数,可以包括:
第一种方案,将所述音量的等级值确定为所述GOP对应的音量参数。
假设根据上述表1的量化规则得到的该GOP中音频数据的音量的等级值为2,则该GOP对应的音量参数为2。
第二种方案,将所述音量变化强度的等级值确定为所述GOP对应的音量参数。
假设根据上述表1的量化规则得到的该GOP中音频数据的音量变化强度的等级值为2.2,则该GOP对应的音量参数为2.2。
第三种方案,根据所述音量的等级值和音量变化强度的等级值,及所述音量的等级值和音量变化强度的等级值对应的权重值,确定所述GOP对应的音量参数。
假设根据上述表1的量化规则得到的该GOP中音频数据的音量的等级值为2,音量的等级值对应的权重为70%;根据上述表1的量化规则得到的该GOP中音频数据的音量变化强度的等级值为2.2,音量变化强度的等级值对应的权重为30%,则该GOP对应的音量参数=2*70%+2.2*30%=2.06。
根据每个GOP对应的音量参数,采用第一预设规则,确定每个GOP对应的判定参数,其中音量参数越大对应的判定参数越大。在本实施例中,将音量参数2.06,确定为该GOP对应的判定参数。
对每个GOP的多媒体数据进行封装,并将确定的每个GOP对应的判定参数2.06添加到对应的每个媒体表示描述MPD文件中。
具体的,在本发明实施例中,当确定了GOP对应的判定参数后,可以将该判定参数添加到该GOP对应的DASH分片索引的CIML(或STYP/FREE/UDTA)Box中。该CIML Box保存有一些成员变量,可以在该CIML Box中增加一个成员变量important_level,该成员变量important_level用于存储该GOP对应的判定参数。为了便于计算,由于该CIML Box保存有一些成员变量,可以采用这些成员变量存储上述过程中确定的该GOP中每一参考帧对应的时间段的音量的等级值和/或音量变化强度的等级值。
当对多媒体文件进行封装时,针对该GOP获取该GOP对应的DASH分片索引的CIML Box中保存的成员变量important_level存储的参数,将该参数作为该GOP对应的判定参数添加到该GOP对应的MPD文件中。
在本实施例中,根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数,可以包括:
将所述GOP的多媒体数据中的音频数据划分成时长相等的多个时间段;
针对每一时间段,确定所述时间段的音量的平均值和音量变化强度;
当所述时间段非所述GOP中的最后一个时间段时,根据所述时间段的音量的平均值和音量变化强度,确定所述时间段的音量的平均值和音量变化强度的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值;
当所述时间段为该GOP中的最后一个时间段时,根据所述时间段的音量的平均值和音量变化强度,确定所述时间段的音量的平均值和音量变化强度的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,根据更新后的所述等级值的均值,确定所述GOP对应的音量参数,并将所述音量参数添加到基于DASH分片索引Box中音量参数对应的字段中。
在DASH分片的封装过程中,音量的平均值和/或音量变化强度的等级值的均值及音量参数保存在基于DASH分片索引Box中相应的字段中。以上述第三种方案进行说明,音量的等级值的均值保存在N3字段中,音量变化强度的等级值的均值保存在N4字段中,音量参数保存在M字段中。每封装一个时间段的音频数据,对N3和N4字段中保存的均值进行迭代更新。
例如,N3字段中保存的等级值的均值为1.5,N4字段中保存的等级值的均值为1.6,当前待封装的时间段的音量的等级值为1.7,音量变化强度的等级值为1.8,则将N3字段中保存的等级值的均值更新为(1.5+1.7)/2=1.6,将N4字段中保存的等级值的均值更新为(1.6+1.8)/2=1.7。如此循环,直至封装到该GOP中的最后一个时间段的音频数据。根据此时N3字段和N4字段中保存的等级值的均值,确定该GOP对应的音量参数。
还以上述第三种方案中的例子进行说明,假设音量的等级值的均值对应的权重为70%,音量变化强度的等级值的的均值对应的权重为60%,此时N3字段中保存的音量的等级值的均值为1.6,N4字段中保存的音量变化强度的等级值的均值为1.7,则音量参数=70%*1.6+30%*1.7=1.63,将该音量参数1.63添加到基于DASH分片索引Box中音量参数对应的字段中,即M字段中。
需要说明的是,量化等级填充字段可以为32bit,采用大端对齐方式。
DASH数据分片生成以后,由于M字段位于分片索引Box中,可直接读取并将其填充到MPD文件中的<SegmentTemplatemedia="$Bandwidth%/$Time$.mp4v importance="$Level$">Level字段即可。
应用本发明图2所示实施例,根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数;根据每个GOP对应的音量参数,采用第一预设规则,确定每个GOP对应的判定参数。其中音量参数越大对应的判定参数越大;对每个GOP的多媒体数据进行封装,并将确定的每个GOP对应的判定参数添加到对应的每个媒体表示描述MPD文件中。音频数据的音量的平均值、音量变化强度均能反应多媒体内容的变化强度,因而,根据GOP对应的判定参数能够判断该GOP对应的多媒体数据是否包含使用价值较大的多媒体内容。
图3为本发明实施例提供的多媒体文件封装方法的第三种流程示意图,包括:
S101C:针对采集的每个图像组GOP的多媒体数据,根据所述GOP的多媒体数据中视频数据的每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数,和,根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数。
作为本发明的一种实施方式,采集到的多媒体数据按照ISO14496-12国际标准规范以GOP为单位进行封装。每一GOP的多媒体数据中包括视频数据和音频数据,其中视频数据包括一个I帧和多个P帧、B帧,I帧是一个完整的画面,P帧、B帧记录的是相对于I帧的变化,P帧、B帧即为参考帧。在本发明所示实施例中,仅以P帧为例进行说明。可以按照每一P帧的时长,将所述GOP的多媒体数据中的音频数据划分成时长相等的多个时间段。
S102C:根据每个GOP对应的视频内容变化参数和音量参数,采用第一预设规则,确定每个GOP对应的判定参数。其中视频内容变化参数越大对应的判定参数越大,音量参数越大对应的判定参数越大。
在本发明所示实施例中,根据下式确定每个GOP对应的判定参数:
GOP对应的判定参数=所述GOP对应的视频内容变化参数*第一权重值+所述GOP对应的音量参数*第二权重值,其中第一权重值和第二权重值相同或不同。
S103:对每个GOP的多媒体数据进行封装,并将确定的每个GOP对应的判定参数添加到对应的每个媒体表示描述MPD文件中。
具体的,在本发明实施例中,当确定了GOP对应的判定参数后,可以将该判定参数添加到该GOP对应的DASH分片索引的CIML(或STYP/FREE/UDTA)Box中。该CIML Box保存有一些成员变量,可以在该CIML Box中增加一个成员变量important_level,该成员变量important_level用于存储该GOP对应的判定参数。为了便于计算,由于该CIML Box保存有一些成员变量,可以采用这些成员变量存储上述过程中确定的该GOP中每一参考帧的数据量的等级值、运动矢量变化总量的等级值,每一时间段的音量的等级值、音量变化强度的等级值。
当对多媒体文件进行封装时,针对该GOP获取该GOP对应的DASH分片索引的CIML Box中保存的成员变量important_level存储的参数,将该参数作为该GOP对应的判定参数添加到该GOP对应的MPD文件中。
在DASH分片的封装过程中,每一参考帧的数据量的等级值的均值、运动矢量变化总量的等级值的均值,每一时间段的音量的等级值的均值、音量变化强度的等级值的均值,及该GOP对应的视频内容变化参数、音量参数均保存在基于DASH分片索引Box中相应的字段中。
假设如表2所示,数据量的等级值的均值保存在N1字段中,MV变化总量的等级值的均值保存在N2字段中,音量的等级值的均值保存在N3字段中,音量变化强度的等级值的均值保存在N4字段中,M字段中保存的是该GOP对应的判定参数,该GOP对应的判定参数=所述GOP对应的视频内容变化参数*第一权重值+所述GOP对应的音量参数*第二权重值。每封装一个P帧及该P帧对应的时间段的音频数据,对N1-N4字段中保存的均值进行迭代更新,更新的方式可以采用本发明图1和图2所示实施例中公开的方案,在此不做赘述。
表2
N1 | N2 | N3 | N4 | M |
当封装到该GOP中的最后一个P帧及该P帧对应的时间段的音频数据时,根据此时N1-N4字段中保存的等级值的均值,确定该GOP对应的判定参数。假设根据本发明图1和图2所示实施例中公开的方案,得到该GOP对应的视频内容变化参数为1.44,该GOP对应的音量参数为2.06,则该GOP对应的判定参数=所述GOP对应的视频内容变化参数*第一权重值+所述GOP对应的音量参数*第二权重值,假设第一权重值为70%,第二权重值为30%,则该GOP对应的判定参数=1.44*70%+2.06*30%=1.626。将该GOP对应的判定参数1.626添加到基于DASH分片索引Box中GOP对应的判定参数对应的字段中,即M字段中。
需要说明的是,量化等级填充字段可以为32bit,采用大端对齐方式。
DASH数据分片生成以后,由于M字段位于分片索引Box中,可直接读取并将其填充到MPD文件中的<SegmentTemplatemedia="$Bandwidth%/$Time$.mp4v importance="$Level$">Level字段即可。
应用本发明图3所示实施例,根据所述GOP的多媒体数据中视频数据的每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数;根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数;根据每个GOP对应的视频内容变化参数和音量参数,采用第一预设规则,确定每个GOP对应的判定参数。其中视频内容变化参数越大对应的判定参数越大,音量参数越大对应的判定参数越大;对每个GOP的多媒体数据进行封装,并将确定的每个GOP对应的判定参数添加到对应的每个媒体表示描述MPD文件中。参考帧的数据量、运动矢量变化总量、音频数据的音量的平均值、音量变化强度均能反应多媒体内容的变化强度,因而,根据GOP对应的判定参数能够判断该GOP对应的多媒体数据是否包含使用价值较大的多媒体内容。
下面对本发明实施例提供的一种应用于客户端的多媒体文件播放方法进行详细说明。
图4为本发明实施例提供的多媒体文件播放方法的第一种流程示意图,包括:
S201:向摄像机或服务器发送获取请求,以使所述摄像机或服务器将一个GOP的多媒体数据对应的媒体表示描述MPD文件发送给所述客户端。
客户端在获取每一GOP的多媒体数据之前,先向摄像机或服务器发送获取请求,从摄像机或服务器获取该GOP对应的MPD文件。应用本发明图1-图3所示实施例的摄像机或服务器生成的MPD文件中包括该GOP对应的判定参数。
S202:接收MPD文件,读取MPD文件中的GOP对应的判定参数。
客户端接收上述摄像机或服务器发送的MPD文件,读取MPD文件中的该GOP对应的判定参数。
S203:根据所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率。其中,所述GOP对应的判定参数越大所述第一播放码率越大。
根据GOP对应的判定参数能够判断该GOP对应的多媒体数据是否包含使用价值较大的多媒体内容。GOP对应的判定参数越大,该GOP对应的多媒体数据中包含的多媒体内容使用价值越大,因而,该GOP对应的多媒体数据的播放码率应该越大。
S204:将第一播放码率发送给所述摄像机或服务器,并以第一播放码率对摄像机或服务器发送的所述GOP的多媒体数据进行解码播放。
作为本发明的一种实施方式,可以建立GOP对应的判定参数的范围与播放码率的判定表,如表3所示:
表3
判定参数 | <0.5 | >=0.5&&<=1 | >1&&<=3 | >3 |
播放码率 | 1M | 2M | 4M | 8M |
假设客户端接收的MPD文件中的GOP对应的判定参数为1.66,则确定该GOP的多媒体数据的第一播放码率为4M,将第一播放码率4M发送给摄像机或服务器,并以第一播放码率4M对摄像机或服务器发送的该GOP的多媒体数据进行解码播放。
上述方案适用于对视频细节内容要求很高的场景,在一般场景中,通常根据网络带宽和缓冲区等级中至少一个及所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率。
也就是说,确定所述GOP的多媒体数据的播放码率,在考虑所述GOP对应的判定参数的同时,也要考虑网络带宽、缓冲区等级等其他参数。
具体的,可以根据所述GOP对应的判定参数、网络带宽和缓冲区等级,及所述GOP对应的判定参数、网络带宽和缓冲区等级对应的权重值,确定所述GOP的多媒体数据的第一播放码率。
作为本发明的一种实施方式,可以根据不同的场景,对不同参数的权重值进行设定。对视频细节内容要求较高的场景,该GOP对应的判定参数占的权重可以较大一些,而希望视频数据播放流畅的场景,网络带宽占的权重可以较大一些。
具体的,也可以对网络带宽和缓冲区等级进行量化,可以利用本发明图1所示实施例中表1所示的量化规则,假设得到的网络带宽的等级值为1.4,缓冲区等级对等级值为1.6,网络带宽对应的权重为30%,缓冲区等级对应的权重为30%,另外,GOP对应的判定参数为1.66,GOP对应的判定参数对应的权重为40%,则综合判定值=1.4*30%+1.6*30%+1.66*40%=1.564。作为本发明的一种实施方式,可以建立综合判定值与播放码率的对应表,如表4所示,表4中记录有综合判定值范围与播放码率的对应关系:
表4
综合判定值 | <0.5 | >=0.5&&<=1 | >1&&<=3 | >3 |
播放码率 | 1M | 2M | 4M | 8M |
则确定该GOP的多媒体数据的第一播放码率为4M,将第一播放码率4M发送给摄像机或服务器,并以第一播放码率4M对摄像机或服务器发送的该GOP的多媒体数据进行解码播放。
应用本发明图4所示实施例,客户端根据所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率,以使摄像机或服务器将所述GOP的多媒体数据发送给客户端,客户端以该第一播放码率将该GOP的多媒体数据进行解码播放摄像机或服务器。客户端根据GOP对应的判定参数能够判断该GOP对应的多媒体数据是否包含使用价值较大的多媒体内容,能够实现根据多媒体内容,确定多媒体数据的播放码率。
图5为本发明实施例提供的多媒体文件播放方法的第二种流程示意图,本发明图5所示实施例在图4所示实施例的基础上,在S204之前,增加如下步骤:
S205:提取保存的所述GOP之前的设定数量个GOP的多媒体数据的理论播放码率;
S206:判断第一播放码率与设定数量个理论播放码率的差值是否都小于预设阈值,如果是,执行S204,如果否,执行S207。
S207:将所述设定数量个理论播放码率中最前面一个理论播放码率确定为调整后的第一播放码率,并执行S204。
在S204之后增加S208。
S208:将所述第一播放码率保存为所述GOP的多媒体数据的理论播放码率,并将所述调整后的第一播放码率保存为所述GOP的多媒体数据的实际播放码率。
假设确定的当前GOP的第一播放码率为4M,提取保存的该GOP之前的2个GOP的多媒体数据的理论播放码率均为1M,假设预设阈值为0.5M,第一播放码率与该2个理论播放码率的差值3M大于预设阈值0.5M,即确定的该GOP的播放码率相比于之前的2个GOP的播放码率差别较大,这种情况可能只是短暂的网络异常,当然也有可能是视频内容出现了剧烈变化。此时,并不立刻切换多媒体数据的播放码率,而是将之前的2个GOP的多媒体数据的理论播放码率中最前面一个理论播放码率1M确定为调整后的第一播放码率,将调整后的第一播放码率1M发送给摄像机或服务器,仍以1M的播放码率对摄像机或服务器发送的该GOP的多媒体数据进行解码播放。另外,将确定的第一播放码率4M保存为所述GOP的多媒体数据的理论播放码率,将该调整后的第一播放码率1M保存为该GOP的多媒体数据的实际播放码率。
如果确定的下一GOP的第一播放码率仍为4M,保存的该GOP之前2个GOP的理论播放码率分别为1M和4M,该GOP的第一播放码率与该2个第二播放码率的差值为3M和0M,不都小于预设阈值,将之前的2个GOP的多媒体数据的理论播放码率中最前面一个理论播放码率1M确定为调整后的第一播放码率,将调整后的第一播放码率1M发送给摄像机或服务器,仍以1M的播放码率对摄像机或服务器发送的该GOP的多媒体数据进行解码播放。另外,将确定的第一播放码率4M保存为所述GOP的多媒体数据的理论播放码率,将该调整后的第一播放码率1M保存为该GOP的多媒体数据的实际播放码率。
如果确定的再下一GOP的第一播放码率仍为4M,保存的该GOP之前2个GOP的第二播放码率均为4M,该GOP的第一播放码率与该2个理论播放码率的差值均为0M,都小于预设阈值,此时,已经连续3个GOP的确定的播放码率为4M,说明出现的情况不是短暂的网络异常,而是视频内容出现了剧烈变化,此时将确定的第一播放码率4M发送给摄像机或服务器,以4M的播放码率对摄像机或服务器发送的该GOP的多媒体数据进行解码播放。另外,保存所述GOP的多媒体数据的理论播放码率和实际播放码率,所述GOP的多媒体数据的理论播放码率和实际播放码率均为4M。
应用本发明图5所示实施例,当播放码率出现突变时,并不立刻切换播放码率,而是在此后连续几个GOP的播放码率都比较稳定的情况下才切换码率,避免了仅仅因为短暂的网络异常而切换播放码率所造成的画面卡顿和抖动现象。
与上述的方法实施例相对应,本发明实施例还提供一种应用于摄像机或服务器的多媒体文件封装装置和一种应用于客户端的多媒体文件播放装置。下面首先对本发明实施例提供的一种应用于摄像机或服务器的多媒体文件封装装置进行详细说明。
图6为本发明实施例提供的多媒体文件封装装置的第一种结构示意图,包括:第一确定模块301、第二确定模块302和封装模块303,其中,
第一确定模块301,用于针对采集的每个图像组GOP的多媒体数据,确定所述GOP对应的视频内容变化参数和/或音量参数,其中根据所述GOP的多媒体数据中视频数据的每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数;根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数;
第二确定模块302,用于根据每个GOP对应的视频内容变化参数和/或音量参数,采用第一预设规则,确定每个GOP对应的判定参数;
封装模块303,用于对每个GOP的多媒体数据进行封装,并将确定的每个GOP对应的判定参数添加到对应的每个媒体表示描述MPD文件中。
具体的,第二确定模块302,具体用于根据下式确定每个GOP对应的判定参数:
GOP对应的判定参数=所述GOP对应的视频内容变化参数*第一权重值+所述GOP对应的音量参数*第二权重值,其中第一权重值和第二权重值相同或不同。
作为本发明的一种实施方式,第一确定模块301,可以包括:第一确定子模块、第二确定子模块、第三确定子模块和第四确定子模块(图中未示出),其中,
第一确定子模块,用于根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定所述GOP中所有参考帧的数据量的和以及运动矢量变化总量的和;
第二确定子模块,用于根据所述GOP中包含的参考帧的数量,及所述所有参考帧的数据量的和以及运动矢量变化总量的和,确定所述GOP对应的平均数据量和平均运动矢量变化总量;
第三确定子模块,用于根据所述平均数据量和所述平均运动矢量变化总量,确定所述平均数据量的等级值和所述平均运动矢量变化总量的等级值;
第四确定子模块,用于根据所述平均数据量的等级值和所述平均运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数。
作为本发明的一种实施方式,第一确定模块301,可以包括:第五确定子模块和第六确定子模块(图中未示出),其中,
第五确定子模块,用于根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定每一参考帧的数据量的等级值和运动矢量变化总量的等级值;和/或,
根据所述GOP的多媒体数据中音频数据的音量的平均值和音量变化强度,确定所述音频数据的音量的等级值和音量变化强度的等级值;
第六确定子模块,用于根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和/或运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数;和/或,
根据所述音量的等级值和/或音量变化强度的等级值,确定所述GOP对应的音量参数。
作为本发明的一种实施方式,第六确定子模块,具体可以用于:
根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值,确定数据量的等级值的平均值,将所述数据量的等级值的平均值确定为所述GOP对应的视频内容变化参数;或,
根据所述GOP中包含的参考帧的数量,及每一参考帧的运动矢量变化总量的等级值,确定运动矢量变化总量的等级值的平均值,将所述运动矢量变化总量的等级值的平均值确定为所述GOP对应的视频内容变化参数;或,
根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和运动矢量变化总量的等级值,确定数据量的等级值的平均值和运动矢量变化总量的等级值的平均值,根据每个平均值对应的权重值,确定所述GOP对应的视频内容变化参数;和/或,
将所述音量的等级值确定为所述GOP对应的音量参数;或,
将所述音量变化强度的等级值确定为所述GOP对应的音量参数;或,
根据所述音量的等级值和音量变化强度的等级值,及所述音量的等级值和音量变化强度的等级值对应的权重值,确定所述GOP对应的音量参数。
作为本发明的一种实施方式,第一确定模块301,具体可以用于:
针对每个参考帧,确定所述参考帧的数据量和运动矢量变化总量;
当所述参考帧非所述GOP中的最后一个参考帧时,根据所述参考帧的数据量和运动矢量变化总量,确定所述参考帧的数据量和运动矢量变化总量的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值;
当所述参考帧为该GOP中的最后一个参考帧时,根据所述参考帧的数据量和运动矢量变化总量,确定所述参考帧的数据量和运动矢量变化总量的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,根据更新后的所述等级值的均值,确定所述GOP对应的视频内容变化参数,并将所述视频内容变化参数添加到基于DASH分片索引Box中视频内容变化参数对应的字段中;和/或,
将所述GOP的多媒体数据中的音频数据划分成时长相等的多个时间段;
针对每一时间段,确定所述时间段的音量的平均值和音量变化强度;
当所述时间段非所述GOP中的最后一个时间段时,根据所述时间段的音量的平均值和音量变化强度,确定所述时间段的音量的平均值和音量变化强度的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值;
当所述时间段为该GOP中的最后一个时间段时,根据所述时间段的音量的平均值和音量变化强度,确定所述时间段的音量的平均值和音量变化强度的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,根据更新后的所述等级值的均值,确定所述GOP对应的音量参数,并将所述音量参数添加到基于DASH分片索引Box中音量参数对应的字段中。
应用本发明图6所示实施例,根据所述GOP的多媒体数据中视频数据的每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数;根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数;根据每个GOP对应的视频内容变化参数和音量参数,采用第一预设规则,确定每个GOP对应的判定参数。对每个GOP的多媒体数据进行封装,并将确定的每个GOP对应的判定参数添加到对应的每个媒体表示描述MPD文件中。参考帧的数据量、运动矢量变化总量、音频数据的音量的平均值、音量变化强度均能反应多媒体内容的变化强度,因而,根据GOP对应的判定参数能够判断该GOP对应的多媒体数据是否包含使用价值较大的多媒体内容。
下面对本发明实施例提供的一种应用于客户端的多媒体文件播放装置进行详细说明。
图7为本发明实施例提供的多媒体文件播放装置的第一种结构示意图,包括:发送模块401、读取模块402、第三确定模块403和播放模块404,其中,
发送模块401,用于向所述摄像机或服务器发送获取请求,以使所述摄像机或服务器将一个GOP的多媒体数据对应的媒体表示描述MPD文件发送给所述客户端;
读取模块402,用于接收所述MPD文件,读取所述MPD文件中的所述GOP对应的判定参数;
第三确定模块403,用于根据所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率;
具体的,第三确定模块403,具体可以用于根据网络带宽和缓冲区等级中至少一个及所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率。
作为本发明的一种实施方式,第三确定模块403,具体可以用于根据所述GOP对应的判定参数、网络带宽和缓冲区等级,及所述GOP对应的判定参数、网络带宽和缓冲区等级对应的权重值,确定所述GOP的多媒体数据的第一播放码率。
播放模块404,用于将所述第一播放码率发送给所述摄像机或服务器,并以所述第一播放码率对所述摄像机或服务器发送的所述GOP的多媒体数据进行解码播放。
应用本发明图7所示实施例,客户端根据所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率,以使摄像机或服务器将所述GOP的多媒体数据发送给客户端,客户端以该第一播放码率将该GOP的多媒体数据进行解码播放摄像机或服务器。客户端根据GOP对应的判定参数能够判断该GOP对应的多媒体数据是否包含使用价值较大的多媒体内容,能够实现根据多媒体内容,确定多媒体数据的播放码率。
图8为本发明实施例提供的多媒体文件播放装置的第二种结构示意图,本发明图8所示实施例在图7所示实施例的基础上,还可以包括:提取模块405、判断模块406、第四确定模块407和保存模块408,其中,
提取模块405,用于提取保存的所述GOP之前的设定数量个GOP的多媒体数据的理论播放码率;
判断模块406,用于判断所述第一播放码率与设定数量个理论播放码率的差值是否都小于预设阈值,如果是,触发播放模块404,如果否,触发第四确定模块407;
第四确定模块407,用于将所述设定数量个理论播放码率中最前面一个理论播放码率确定为调整后的第一播放码率,并触发播放模块404;
保存模块408,用于将所述第一播放码率保存为所述GOP的多媒体数据的理论播放码率,并将所述调整后的第一播放码率保存为所述GOP的多媒体数据的实际播放码率。
应用本发明图8所示实施例,当播放码率出现突变时,并不立刻切换播放码率,而是在此后连续几个GOP的播放码率都比较稳定的情况下才切换码率,避免了仅仅因为短暂的网络异常而切换播放码率所造成的画面卡顿和抖动现象。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (23)
1.一种多媒体文件封装方法,其特征在于,应用于摄像机或服务器,包括:
针对采集的每个图像组GOP的多媒体数据,确定所述GOP对应的视频内容变化参数和/或音量参数,其中根据所述GOP的多媒体数据中视频数据的每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数;根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数;
根据每个GOP对应的视频内容变化参数和/或音量参数,采用第一预设规则,确定每个GOP对应的判定参数;
对每个GOP的多媒体数据进行封装,并将确定的每个GOP对应的判定参数添加到对应的每个媒体表示描述MPD文件中。
2.根据权利要求1所述的方法,其特征在于,当根据每个GOP对应的视频内容变化参数和音量参数,采用第一预设规则,确定每个GOP对应的判定参数时,包括:
根据下式确定每个GOP对应的判定参数:
GOP对应的判定参数=所述GOP对应的视频内容变化参数*第一权重值+所述GOP对应的音量参数*第二权重值,其中第一权重值和第二权重值相同或不同。
3.根据权利要求1所述的方法,其特征在于,所述根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定所述GOP对应的视频内容变化参数,包括:
根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定所述GOP中所有参考帧的数据量的和以及运动矢量变化总量的和;
根据所述GOP中包含的参考帧的数量,及所述所有参考帧的数据量的和以及运动矢量变化总量的和,确定所述GOP对应的平均数据量和平均运动矢量变化总量;
根据所述平均数据量和所述平均运动矢量变化总量,确定所述平均数据量的等级值和所述平均运动矢量变化总量的等级值;
根据所述平均数据量的等级值和所述平均运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数。
4.根据权利要求1所述的方法,其特征在于,所述根据所述GOP的多媒体数据中每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数,包括:
根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定每一参考帧的数据量的等级值和运动矢量变化总量的等级值;
根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和/或运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数。
5.根据权利要求4所述的方法,其特征在于,所述根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数,包括:
根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和运动矢量变化总量的等级值,确定数据量的等级值的平均值和运动矢量变化总量的等级值的平均值,根据每个平均值对应的权重值,确定所述GOP对应的视频内容变化参数。
6.根据权利要求1所述的方法,其特征在于,所述根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数,包括:
根据所述GOP的多媒体数据中音频数据的音量的平均值和音量变化强度,确定所述音频数据的音量的等级值和音量变化强度的等级值;
根据所述音量的等级值和/或音量变化强度的等级值,确定所述GOP对应的音量参数。
7.根据权利要求6所述的方法,其特征在于,所述根据所述音量的等级值和音量变化强度的等级值,确定所述GOP对应的音量参数,包括:
根据所述音量的等级值和音量变化强度的等级值,及所述音量的等级值和音量变化强度的等级值对应的权重值,确定所述GOP对应的音量参数。
8.根据权利要求1所述的方法,其特征在于,所述根据所述GOP的多媒体数据中视频数据的每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数,包括:
针对每个参考帧,确定所述参考帧的数据量和运动矢量变化总量;
当所述参考帧非所述GOP中的最后一个参考帧时,根据所述参考帧的数据量和运动矢量变化总量,确定所述参考帧的数据量和运动矢量变化总量的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值;
当所述参考帧为该GOP中的最后一个参考帧时,根据所述参考帧的数据量和运动矢量变化总量,确定所述参考帧的数据量和运动矢量变化总量的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值;根据更新后的所述等级值的均值,确定所述GOP对应的视频内容变化参数,并将所述视频内容变化参数添加到基于DASH分片索引Box中视频内容变化参数对应的字段中。
9.根据权利要求1所述的方法,其特征在于,所述根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数,包括:
将所述GOP的多媒体数据中的音频数据划分成时长相等的多个时间段;
针对每一时间段,确定所述时间段的音量的平均值和音量变化强度;
当所述时间段非所述GOP中的最后一个时间段时,根据所述时间段的音量的平均值和音量变化强度,确定所述时间段的音量的平均值和音量变化强度的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值;
当所述时间段为该GOP中的最后一个时间段时,根据所述时间段的音量的平均值和音量变化强度,确定所述时间段的音量的平均值和音量变化强度的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值;根据更新后的所述等级值的均值,确定所述GOP对应的音量参数,并将所述音量参数添加到基于DASH分片索引Box中音量参数对应的字段中。
10.一种多媒体文件播放方法,其特征在于,应用于客户端,所述客户端与权利要求1中所述的摄像机或服务器通讯连接,包括:
向所述摄像机或服务器发送获取请求,以使所述摄像机或服务器将一个GOP的多媒体数据对应的媒体表示描述MPD文件发送给所述客户端;
接收所述MPD文件,读取所述MPD文件中的所述GOP对应的判定参数;
根据所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率;
将所述第一播放码率发送给所述摄像机或服务器,并以所述第一播放码率对所述摄像机或服务器发送的所述GOP的多媒体数据进行解码播放。
11.根据权利要求10所述的方法,其特征在于,所述根据所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率,包括:
根据网络带宽和缓冲区等级中至少一个及所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率。
12.根据权利要求11所述的方法,其特征在于,所述根据网络带宽和缓冲区等级中至少一个及所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率,包括:
根据所述GOP对应的判定参数、网络带宽和缓冲区等级,及所述GOP对应的判定参数、网络带宽和缓冲区等级对应的权重值,确定所述GOP的多媒体数据的第一播放码率。
13.根据权利要求10所述的方法,其特征在于,所述将所述第一播放码率发送给所述摄像机或服务器之前,还包括:
提取保存的所述GOP之前的设定数量个GOP的多媒体数据的理论播放码率;
判断所述第一播放码率与设定数量个理论播放码率的差值是否都小于预设阈值;
如果是,执行所述将所述第一播放码率发送给所述摄像机或服务器的步骤;
如果否,将所述设定数量个理论播放码率中最前面一个理论播放码率确定为调整后的第一播放码率,并执行将调整后的第一播放码率发送给摄像机或服务器的步骤,将所述第一播放码率保存为所述GOP的多媒体数据的理论播放码率,并将所述调整后的第一播放码率保存为所述GOP的多媒体数据的实际播放码率。
14.一种多媒体文件封装装置,其特征在于,应用于摄像机或服务器,包括:第一确定模块、第二确定模块和封装模块,其中,
所述第一确定模块,用于针对采集的每个图像组GOP的多媒体数据,确定所述GOP对应的视频内容变化参数和/或音量参数,其中根据所述GOP的多媒体数据中视频数据的每一参考帧的数据量和/或运动矢量变化总量,确定所述GOP对应的视频内容变化参数;根据所述GOP的多媒体数据中音频数据的音量的平均值和/或音量变化强度,确定所述GOP对应的音量参数;
所述第二确定模块,用于根据每个GOP对应的视频内容变化参数和/或音量参数,采用第一预设规则,确定每个GOP对应的判定参数;
所述封装模块,用于对每个GOP的多媒体数据进行封装,并将确定的每个GOP对应的判定参数添加到对应的每个媒体表示描述MPD文件中。
15.根据权利要求14所述的装置,其特征在于,所述第二确定模块,具体用于根据下式确定每个GOP对应的判定参数:
GOP对应的判定参数=所述GOP对应的视频内容变化参数*第一权重值+所述GOP对应的音量参数*第二权重值,其中第一权重值和第二权重值相同或不同。
16.根据权利要求14所述的装置,其特征在于,所述第一确定模块,包括:第一确定子模块、第二确定子模块、第三确定子模块和第四确定子模块,其中,
所述第一确定子模块,用于根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定所述GOP中所有参考帧的数据量的和以及运动矢量变化总量的和;
所述第二确定子模块,用于根据所述GOP中包含的参考帧的数量,及所述所有参考帧的数据量的和以及运动矢量变化总量的和,确定所述GOP对应的平均数据量和平均运动矢量变化总量;
所述第三确定子模块,用于根据所述平均数据量和所述平均运动矢量变化总量,确定所述平均数据量的等级值和所述平均运动矢量变化总量的等级值;
所述第四确定子模块,用于根据所述平均数据量的等级值和所述平均运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数。
17.根据权利要求14所述的装置,其特征在于,所述第一确定模块,包括:第五确定子模块和第六确定子模块,其中,
所述第五确定子模块,用于根据所述GOP的多媒体数据中每一参考帧的数据量和运动矢量变化总量,确定每一参考帧的数据量的等级值和运动矢量变化总量的等级值;和/或,
根据所述GOP的多媒体数据中音频数据的音量的平均值和音量变化强度,确定所述音频数据的音量的等级值和音量变化强度的等级值;
所述第六确定子模块,用于根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和/或运动矢量变化总量的等级值,确定所述GOP对应的视频内容变化参数;和/或,
根据所述音量的等级值和/或音量变化强度的等级值,确定所述GOP对应的音量参数。
18.根据权利要求17所述的装置,其特征在于,所述第六确定子模块,具体用于:
根据所述GOP中包含的参考帧的数量,及每一参考帧的数据量的等级值和运动矢量变化总量的等级值,确定数据量的等级值的平均值和运动矢量变化总量的等级值的平均值,根据每个平均值对应的权重值,确定所述GOP对应的视频内容变化参数;和/或,
根据所述音量的等级值和音量变化强度的等级值,及所述音量的等级值和音量变化强度的等级值对应的权重值,确定所述GOP对应的音量参数。
19.根据权利要求14所述的装置,其特征在于,所述第一确定模块,具体用于:
针对每个参考帧,确定所述参考帧的数据量和运动矢量变化总量;
当所述参考帧非所述GOP中的最后一个参考帧时,根据所述参考帧的数据量和运动矢量变化总量,确定所述参考帧的数据量和运动矢量变化总量的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值;
当所述参考帧为该GOP中的最后一个参考帧时,根据所述参考帧的数据量和运动矢量变化总量,确定所述参考帧的数据量和运动矢量变化总量的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中数据量和/或运动矢量变化总量对应的字段中保存的等级值的均值,根据更新后的所述等级值的均值,确定所述GOP对应的视频内容变化参数,并将所述视频内容变化参数添加到基于DASH分片索引Box中视频内容变化参数对应的字段中;和/或,
将所述GOP的多媒体数据中的音频数据划分成时长相等的多个时间段;
针对每一时间段,确定所述时间段的音量的平均值和音量变化强度;
当所述时间段非所述GOP中的最后一个时间段时,根据所述时间段的音量的平均值和音量变化强度,确定所述时间段的音量的平均值和音量变化强度的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值;
当所述时间段为该GOP中的最后一个时间段时,根据所述时间段的音量的平均值和音量变化强度,确定所述时间段的音量的平均值和音量变化强度的等级值;并根据确定的所述等级值,及基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,更新所述基于DASH分片索引Box中音量的平均值和/或音量变化强度对应的字段中保存的等级值的均值,根据更新后的所述等级值的均值,确定所述GOP对应的音量参数,并将所述音量参数添加到基于DASH分片索引Box中音量参数对应的字段中。
20.一种多媒体文件播放装置,其特征在于,应用于客户端,所述客户端与权利要求13中所述的摄像机或服务器通讯连接,包括:发送模块、读取模块、第三确定模块和播放模块,其中,
所述发送模块,用于向所述摄像机或服务器发送获取请求,以使所述摄像机或服务器将一个GOP的多媒体数据对应的媒体表示描述MPD文件发送给所述客户端;
所述读取模块,用于接收所述MPD文件,读取所述MPD文件中的所述GOP对应的判定参数;
所述第三确定模块,用于根据所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率;
所述播放模块,用于将所述第一播放码率发送给所述摄像机或服务器,并以所述第一播放码率对所述摄像机或服务器发送的所述GOP的多媒体数据进行解码播放。
21.根据权利要求20所述的装置,其特征在于,所述第三确定模块,具体用于根据网络带宽和缓冲区等级中至少一个及所述GOP对应的判定参数,确定所述GOP的多媒体数据的第一播放码率。
22.根据权利要求21所述的装置,其特征在于,所述第三确定模块,具体用于根据所述GOP对应的判定参数、网络带宽和缓冲区等级,及所述GOP对应的判定参数、网络带宽和缓冲区等级对应的权重值,确定所述GOP的多媒体数据的第一播放码率。
23.根据权利要求20所述的装置,其特征在于,还包括:提取模块、判断模块、第四确定模块和保存模块,其中,
所述提取模块,用于提取保存的所述GOP之前的设定数量个GOP的多媒体数据的理论播放码率;
所述判断模块,用于判断所述第一播放码率与设定数量个理论播放码率的差值是否都小于预设阈值,如果是,触发所述播放模块,如果否,触发所述第四确定模块;
所述第四确定模块,用于将所述设定数量个理论播放码率中最前面一个理论播放码率确定为调整后的第一播放码率,并触发所述播放模块;
所述保存模块,用于将所述第一播放码率保存为所述GOP的多媒体数据的理论播放码率,并将所述调整后的第一播放码率保存为所述GOP的多媒体数据的实际播放码率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610189432.0A CN107241571B (zh) | 2016-03-29 | 2016-03-29 | 一种多媒体文件封装、播放方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610189432.0A CN107241571B (zh) | 2016-03-29 | 2016-03-29 | 一种多媒体文件封装、播放方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107241571A true CN107241571A (zh) | 2017-10-10 |
CN107241571B CN107241571B (zh) | 2019-11-22 |
Family
ID=59982870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610189432.0A Active CN107241571B (zh) | 2016-03-29 | 2016-03-29 | 一种多媒体文件封装、播放方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107241571B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110113306A (zh) * | 2019-03-29 | 2019-08-09 | 华为技术有限公司 | 分发数据的方法和网络设备 |
CN110278484A (zh) * | 2019-05-15 | 2019-09-24 | 北京达佳互联信息技术有限公司 | 视频配乐方法、装置、电子设备及存储介质 |
CN111083573A (zh) * | 2018-10-22 | 2020-04-28 | 杭州海康威视***技术有限公司 | 一种视频文件处理方法、装置和存储节点 |
CN111263159A (zh) * | 2020-01-16 | 2020-06-09 | 杭州慧川智能科技有限公司 | 一种基于h.264压缩标准的逐帧剪辑优化方法 |
US12052302B2 (en) | 2019-03-29 | 2024-07-30 | Huawei Technologies Co., Ltd. | Data distribution method and network device |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101466010A (zh) * | 2009-01-15 | 2009-06-24 | 深圳华为通信技术有限公司 | 一种移动终端上播放视频的方法和移动终端 |
CN101600107A (zh) * | 2009-07-08 | 2009-12-09 | 杭州华三通信技术有限公司 | 调整视频录像播放速度的方法、***及装置 |
US20100220974A1 (en) * | 2009-02-27 | 2010-09-02 | Michio Yamashita | Method and Apparatus for Reproducing Video and Audio |
US20120281767A1 (en) * | 2011-05-04 | 2012-11-08 | Alberto Duenas | Low latency rate control system and method |
CN103096048A (zh) * | 2011-11-02 | 2013-05-08 | 北京大学 | 一种可伸缩视频编码量化参数确定方法及装置 |
CN103974147A (zh) * | 2014-03-07 | 2014-08-06 | 北京邮电大学 | 一种基于mpeg-dash协议的带***率切换控制和静态摘要技术的在线视频播控*** |
CN103973662A (zh) * | 2013-02-06 | 2014-08-06 | 华为技术有限公司 | 流媒体请求方法及控制器 |
CN104079931A (zh) * | 2013-03-26 | 2014-10-01 | 索尼公司 | 图像处理装置、图像处理方法和计算机程序 |
US20140365759A1 (en) * | 2013-06-06 | 2014-12-11 | Futurewei Technologies, Inc. | Signaling and Carriage of Protection and Usage Information for Dynamic Adaptive Streaming |
CN104270646A (zh) * | 2014-09-22 | 2015-01-07 | 何震宇 | 一种基于移动流媒体的自适应传输方法和*** |
CN105103565A (zh) * | 2013-04-19 | 2015-11-25 | 索尼公司 | 服务器设备、客户端设备、内容分发方法以及计算机程序 |
WO2015183194A1 (en) * | 2014-05-30 | 2015-12-03 | Paofit Technology Pte Ltd | Systems and methods for motion-vector-aided video interpolation using real-time smooth video playback speed variation |
-
2016
- 2016-03-29 CN CN201610189432.0A patent/CN107241571B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101466010A (zh) * | 2009-01-15 | 2009-06-24 | 深圳华为通信技术有限公司 | 一种移动终端上播放视频的方法和移动终端 |
US20100220974A1 (en) * | 2009-02-27 | 2010-09-02 | Michio Yamashita | Method and Apparatus for Reproducing Video and Audio |
CN101600107A (zh) * | 2009-07-08 | 2009-12-09 | 杭州华三通信技术有限公司 | 调整视频录像播放速度的方法、***及装置 |
US20120281767A1 (en) * | 2011-05-04 | 2012-11-08 | Alberto Duenas | Low latency rate control system and method |
CN103096048A (zh) * | 2011-11-02 | 2013-05-08 | 北京大学 | 一种可伸缩视频编码量化参数确定方法及装置 |
CN103973662A (zh) * | 2013-02-06 | 2014-08-06 | 华为技术有限公司 | 流媒体请求方法及控制器 |
CN104079931A (zh) * | 2013-03-26 | 2014-10-01 | 索尼公司 | 图像处理装置、图像处理方法和计算机程序 |
CN105103565A (zh) * | 2013-04-19 | 2015-11-25 | 索尼公司 | 服务器设备、客户端设备、内容分发方法以及计算机程序 |
US20140365759A1 (en) * | 2013-06-06 | 2014-12-11 | Futurewei Technologies, Inc. | Signaling and Carriage of Protection and Usage Information for Dynamic Adaptive Streaming |
CN103974147A (zh) * | 2014-03-07 | 2014-08-06 | 北京邮电大学 | 一种基于mpeg-dash协议的带***率切换控制和静态摘要技术的在线视频播控*** |
WO2015183194A1 (en) * | 2014-05-30 | 2015-12-03 | Paofit Technology Pte Ltd | Systems and methods for motion-vector-aided video interpolation using real-time smooth video playback speed variation |
CN104270646A (zh) * | 2014-09-22 | 2015-01-07 | 何震宇 | 一种基于移动流媒体的自适应传输方法和*** |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111083573A (zh) * | 2018-10-22 | 2020-04-28 | 杭州海康威视***技术有限公司 | 一种视频文件处理方法、装置和存储节点 |
CN110113306A (zh) * | 2019-03-29 | 2019-08-09 | 华为技术有限公司 | 分发数据的方法和网络设备 |
US12052302B2 (en) | 2019-03-29 | 2024-07-30 | Huawei Technologies Co., Ltd. | Data distribution method and network device |
CN110278484A (zh) * | 2019-05-15 | 2019-09-24 | 北京达佳互联信息技术有限公司 | 视频配乐方法、装置、电子设备及存储介质 |
CN111263159A (zh) * | 2020-01-16 | 2020-06-09 | 杭州慧川智能科技有限公司 | 一种基于h.264压缩标准的逐帧剪辑优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107241571B (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10097878B2 (en) | Video playback method and control terminal thereof | |
CN107241571A (zh) | 一种多媒体文件封装、播放方法及装置 | |
US9357210B2 (en) | Systems and methods of encoding multiple video streams for adaptive bitrate streaming | |
US7707485B2 (en) | System and method for dynamic transrating based on content | |
Xue et al. | Assessing quality of experience for adaptive HTTP video streaming | |
US10061634B2 (en) | Methods and apparatus to detect transport faults in media presentation systems | |
US7715827B2 (en) | Mobile communication terminal and method for calculating media play time of the mobile communication terminal | |
KR101595875B1 (ko) | 멀티미디어 품질 평가 방법 및 장치 | |
CN102959976A (zh) | 评估视频流质量的方法及设备 | |
CN107613314B (zh) | 一种检测直播中刷人气行为的方法及装置 | |
EP3493547A1 (en) | Video streaming delivery | |
WO2014082279A1 (en) | Method and apparatus for estimating video quality | |
WO2016134564A1 (zh) | 一种用户感知评估方法及装置 | |
KR20160107734A (ko) | 동영상의 시간정보를 이용한 유해 동영상 분류방법 및 장치 | |
CN111953939B (zh) | 提高监控视频存证正确率的方法及*** | |
CN106791850A (zh) | 视频编码方法及装置 | |
Begen et al. | Adaptive streaming of content-aware-encoded videos in dash. js | |
US8913873B2 (en) | Content reproduction control system and method and program thereof | |
CN105635715A (zh) | 视频格式识别方法及装置 | |
EP3806418A1 (en) | Predicting multimedia session mos | |
CN111131808B (zh) | 视频卡顿故障分析方法、装置和机顶盒 | |
CN110545451A (zh) | 一种流媒体卡顿识别方法、服务器和*** | |
CN109218809A (zh) | 一种流媒体的播放方法和装置 | |
Thang et al. | Video streaming over HTTP with dynamic resource prediction | |
US8879003B1 (en) | Distortion/quality measurement |
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 |