CN115209200A - 一种媒体数据的处理方法、装置、终端设备和存储介质 - Google Patents

一种媒体数据的处理方法、装置、终端设备和存储介质 Download PDF

Info

Publication number
CN115209200A
CN115209200A CN202210654783.XA CN202210654783A CN115209200A CN 115209200 A CN115209200 A CN 115209200A CN 202210654783 A CN202210654783 A CN 202210654783A CN 115209200 A CN115209200 A CN 115209200A
Authority
CN
China
Prior art keywords
audio
video
time
playing
determining
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.)
Pending
Application number
CN202210654783.XA
Other languages
English (en)
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.)
Visionvera Information Technology Co Ltd
Original Assignee
Visionvera Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Visionvera Information Technology Co Ltd filed Critical Visionvera Information Technology Co Ltd
Priority to CN202210654783.XA priority Critical patent/CN115209200A/zh
Publication of CN115209200A publication Critical patent/CN115209200A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • 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/439Processing of audio elementary streams
    • H04N21/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
    • 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/44008Processing 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明实施例提供了一种媒体数据的处理方法、装置、终端设备和存储介质,包括:获取媒体流数据;根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;在每一个调节时间内,确定音频渲染播放时间,和/或确定视频渲染播放时间;根据音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包,终端根据音频数据的采样率和视频数据的帧率,确定音视频同步播放的情况下的调节时间,在该调节时间内,统计接收到的音频数据包和视频数据包的数量,将预设音视频同步播放时间平均分配,得到音频渲染播放时间和视频渲染播放时间,用户在终端网页上查看视联网音视频时不会出现延迟问题。

Description

一种媒体数据的处理方法、装置、终端设备和存储介质
技术领域
本发明涉及视联网技术领域,特别是涉及一种媒体数据的处理方法、装置、终端设备和存储介质。
背景技术
视联网是专有网络下的私有协议技术,目前视联网汇聚大量的媒体资源,诸如社会环境的监控资源,网络直播资源、会议对接资源,还有自身协议下的终端资源,终端点位资源日积月累形成了庞大的资源。但是目前这些媒体资源限于是自身私有协议,与公有标准协议对接存在一定难度,融合程度相对比较薄弱。
若想要将媒体资源在互联网网页播放,可以采用RTMP、RTSP或HSL等技术去转化,但是需要对端有响应的协议去接收解封装界面展示,或者自建网站服务播放视联网监控资源但是网站需要额外的插件支持。
如果将视联网媒体资源在浏览器网页上进行播放,通过采用视联网、MSE技术以及JMUXER技术框架相融合,实现无需任何插件直接把视联网格式的媒体流下发到网页进行播放。但是由于MSE技术的播放方式是同帧等待播放的,也就是说音频和画面需要同帧进行播放,但是在实际的播放过程中,由于视频帧率和音频采样率不同,就会出现音频播放和视频播放不同步播出的现象。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种媒体数据的处理方法、装置、终端设备和存储介质。
第一个方面,本发明实施例提供一种媒体数据的处理方法,所述方法包括:
获取媒体流数据,其中,所述媒体流数据至少包括视频帧率和音频采集率;
根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;
在每一个调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,
和/或确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间;
根据所述音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包。
可选地,所述根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间,包括:
根据所述音频采样率,确定播放每一个音频数据包的第一播放时长;
根据所述视频帧率,确定播放每一个视频数据包的第二播放时长;
根据所述第一播放时长和所述第二播放时长,确定时长差;
根据所述时长差和预设音视频同步播放时间,确定在音视频同步播放的情况下的调节时间。
可选地,所述媒体流数据还包括时间戳,所述在每一个所述调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,包括:
获取每一个调节时间内接收到的第一个视频数据包的初始时间戳;
根据每一个调节时间内所述第一个视频数据包的初始时间戳和接收到的音频数据包的时间戳,统计当前调节时间内接收到音频数据包的第一数量;
根据所述调节时间和所述音频数据包的第一数量的比值,确定所述音频渲染播放时间。
可选地,所述在每一个所述调节时间内,确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间,包括:
根据每一个调节时间内第一个视频数据包的初始时间戳和接收到的视频数据包的时间戳,统计在当前调节时间内接收到视频数据包的第二数量;
根据所述调节时间和所述视频数据包的第二数量的比值,确定所述视频渲染播放时间。
可选地,所述媒体流数据还包括数据类型,所述数据类型包括音频类型和视频类型,所述接收服务器返回的媒体流数据,包括:
对所述媒体流数据进行解析,得到音频数据包的时间戳和视频数据包的时间戳;
根据所述音频数据包的时间戳和初始时间戳,确定第一时间差值;
若所述第一时间差值小于第一预设值,则根据音频类型,将接收到音频数据包存储在音频数组中;所述第一预设值是根据所述调节时间和第一数量确定的;
根据视频数据包的时间戳和初始时间戳,确定第二时间差值;
若所述第二时间差值小于第二预设值,根据视频类型,将接收到视频数据包存储在视频数组中,所述第二预设值是根据所述调节时间和第二数量确定的。
可选地,所述根据所述音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包,包括:
每隔音频渲染播放时间,从所述音频数组中获取音频数据包;
每隔视频渲染播放时间,从所述视频数据中获取视频数据包;
对所述音频数据包进行高级音频编码的解封装,得到解封装后的音频数据;
对所述视频数据包进行H264解封装,得到解封装后的视频数据;
对解封装后的音频数据和解封装后的视频数据进行FMP4的封装,得到播放媒体流数据。
第二个方面,本发明实施例提供一种媒体数据的处理装置,所述装置包括:
接收模块,用于获取媒体流数据,其中,所述媒体流数据至少包括视频帧率和音频采集率;
确定模块,用于根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;
调整模块,用于在每一个调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,
和/或确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间;
播放模块,用于根据所述音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包。
可选地,所述确定模块用于:
根据所述音频采样率,确定播放每一个音频数据包的第一播放时长;
根据所述视频帧率,确定播放每一个视频数据包的第二播放时长;
根据所述第一播放时长和所述第二播放时长,确定时长差;
根据所述时长差和预设音视频同步播放时间,确定在音视频同步播放的情况下的调节时间。
可选地,所述媒体流数据还包括时间戳,所述调整模块用于:
获取每一个调节时间内接收到的第一个视频数据包的初始时间戳;
根据每一个调节时间内所述第一个视频数据包的初始时间戳和接收到的音频数据包的时间戳,统计当前调节时间内接收到音频数据包的第一数量;
根据所述调节时间和所述音频数据包的第一数量的比值,确定所述音频渲染播放时间。
可选地,所述调节模块用于:
根据每一个调节时间内第一个视频数据包的初始时间戳和接收到的视频数据包的时间戳,统计在当前调节时间内接收到视频数据包的第二数量;
根据所述调节时间和所述视频数据包的第二数量的比值,确定所述视频渲染播放时间。
可选地,所述媒体流数据还包括数据类型,所述数据类型包括音频类型和视频类型,所述接收模块用于:
对所述媒体流数据进行解析,得到音频数据包的时间戳和视频数据包的时间戳;
根据所述音频数据包的时间戳和初始时间戳,确定第一时间差值;
若所述第一时间差值小于第一预设值,则根据音频类型,将接收到音频数据包存储在音频数组中;所述第一预设值是根据所述调节时间和第一数量确定的;
根据视频数据包的时间戳和初始时间戳,确定第二时间差值;
若所述第二时间差值小于第二预设值,根据视频类型,将接收到视频数据包存储在视频数组中,所述第二预设值是根据所述调节时间和第二数量确定的。
可选地,所述播放模块用于:
每隔音频渲染播放时间,从所述音频数组中获取音频数据包;
每隔视频渲染播放时间,从所述视频数据中获取视频数据包;
对所述音频数据包进行高级音频编码的解封装,得到解封装后的音频数据;
对所述视频数据包进行H264解封装,得到解封装后的视频数据;
对解封装后的音频数据和解封装后的视频数据进行FMP4的封装,得到播放媒体流数据。
第三个方面,本发明实施例提供一种终端设备,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现第一个方面提供的媒体数据的处理方法。
第四个方面,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现第一个方面提供的媒体数据的处理方法。
本发明实施例包括以下优点:
本发明实施例提供的媒体数据的处理方法、装置、终端设备和存储介质,通过获取媒体流数据,其中,媒体流数据至少包括视频帧率和音频采集率;根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;在每一个调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,和/或确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间;根据音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包,终端根据音频数据的采样率和视频数据的帧率,确定音视频同步播放的情况下的调节时间,在每个调节时间内,统计接收到的音频数据包和视频数据包的数量,然后根据音频数据包数量和视频数据包的数量,将预设音视频同步播放时间平均分配,得到音频渲染播放时间和视频渲染播放时间,根据音频渲染播放时间和/或视频渲染播放时间从对应的数组中提取数据进行播放,这样,通过根据调节时间周期性的调整音频渲染播放时间和视频渲染播放时间,可以保证即使用户在终端网页上长时间查看视联网音视频也不会出现延迟问题。
附图说明
图1是本发明的一种媒体数据的处理方法实施例的步骤流程图;
图2是本发明的另一种媒体数据的处理方法实施例的步骤流程图;
图3是本发明的再一种媒体数据的处理方法实施例的步骤流程图;
图4是本发明的一种媒体数据的处理装置实施例的结构框图;
图5是本发明的一种终端设备的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。
视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、VOD点播、电视邮件、个性录制(PVR)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。
名词解释如下:
MediaSource Extenstion,简称MSE,是一套能不断的把音视频二进制数据发送给video标签播放的API。
本发明一实施例提供一种媒体数据的处理方法,用于对媒体数据的同步播放进行调整。本实施例的执行主体为媒体数据的处理装置,设置在终端设备上,其中,终端设备可以为计算机,平板电脑和手机终端等。
参照图1,示出了本发明的一种媒体数据的处理方法实施例的步骤流程图,该方法具体可以包括如下步骤:
S101、获取媒体流数据,其中,媒体流数据至少包括视频帧率和音频采集率;
具体地,用户在终端设备的浏览器上播放视联网媒体流数据,在终端设备上安装有MSE,这样,不需要在浏览器上增加插件就可以播放媒体流数据,用户在终端设备的浏览器上选择要播放的媒体流数据,即终端设备接收用户输入的媒体数据请求,终端设备将该媒体数据请求发送至互联网服务器,互联网服务器根据该媒体数据请求,从协转服务器上获取与媒体数据请求对应的媒体流数据,其中,媒体流数据至少包括音频数据、视频数据和相关参数,该相关参数至少包括视频帧率和音频采集率,且媒体流数据为二进制媒体流数据。
S102、根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;
具体地,互联网服务器接收到协转服务器返回的二进制的媒体流数据后,对该二进制的媒体流数据进行解析,判断解析结果中是否有音频采样率和视频帧率,若存在音频采样率和视频帧率,则将二进制媒体流数据发送至终端设备,终端设备根据音频采样率和视频帧率,分别确定播放一帧视频的时长和播放一帧音频的时长,计算播放一帧视频的时长和播放一帧音频的时长的时间差,获取预设音视频同步播放时间,也就是人眼看不出音视频不同步的时间,根据预设音视频同步播放时间除以时间差,得到一个数量值,也就是在预设音视频同步播放时间中存在几个差值,然后用该数量值乘以播放一帧视频的时长,确定在音视频同步播放的情况下的调节时间。
示例性地,在初始一定时间范围内,即使音视频数据包有差异,但人感觉是音视频同步的,例如音视频时间戳差异在300-500ms范围内波动,人眼是感觉不出来的,例如音视频时间戳相差300ms内认为同步,即预设音视频同步播放时间为300ms。假设视频帧率fps(Frames Per Second,每秒传输帧数)为25帧,则播放一帧视频的时长为40ms,音频采样率为32K,一帧1024个样本,则播放一帧音频的时长为1000*1024/32000=31.25ms。播放一帧视频的时长要大于播放一帧音频的时长,则同一时间段内播放音频帧数量大于视频帧数量,以视频包为基准播放。一帧相差40-31.25=8.75ms。即每播放一个视频帧就会延迟音频帧8.75ms。在300ms内大约需要34个视频包。34*40=1360ms就会产生不同步效果,在此过程中,1360ms即为调节时间。在本发明实施例中,调节时间可以是最大的差值,也可以根据需要自行设置,即小于1360ms,可以选择任一值,优选地,调节时间可以选择1000ms,也就是1s。
在另一种应用场景下,假设视频帧率fps为40帧,则播放一帧视频的时长为25ms,音频采样率32K,一帧1024个样本,一帧要播放1000*1024/32000=31.25ms。可以看出来视频发送是要比音频繁的,所以一定会出现只有视频没有音频的情况,此时必须等待下一个音频过来才能播放本视频,长期积累导致音视频不同步,音频超前;播放一帧视频的时长要小于播放一帧音频的时长,则同一时间段内播放音频帧数量小于视频帧数量,以音频包为基准播放。一帧相差31.25-25=6.25ms。即每播放一个视频帧就会超前音频帧6.25ms。在300ms内大约需要300/6.25=48个视频包。31.25*48=1500ms就会产生不同步效果,在此过程中,1500ms即为调节时间。
在本发明实施例中,调节时间可以是最大的差值,也可以根据需要自行设置,即小于1500ms,可以选择任一值,优选地,调节时间可以选择1000ms,也就是1s。
S103、在每一个调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,
和/或确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间;
具体地,终端设备以调节时间为周期,在每一个调节时间内,分别获取视频数据包和音频数据包,可以根据实际场景,来选择对视频数据包的视频渲染播放时间进行调节,或者是对音频数据包的音频渲染播放时间进行调节,或者,需要对两个渲染播放时间都进行调节。例如1s内,分别统计服务器发送的音频数据包和视频数据包的数量,并计算1s内接收的音频数据包的第一数量和视频数据包的第二数量,然后根据第一数量计算音频渲染播放时间,根据第二数量计算视频渲染播放时间。
也就是说,终端设备统计一段时间内接收到的音频数据包数量和视频数据包数量,然后将这一段时间平均分配至每个音频数据包进行播放渲染或每个视频数据包进行播放渲染,例如,在1000ms内接收到100个音频数据包,则分配至一个音频数据包的播放渲染时间为1000/100=10s,在1000ms内接收到50个视频数据包,则分配至一个视频数据包的播放渲染时间为1000/50=20ms,即音频数据包的播放渲染时间为10s,视频数据包的播放渲染时间为20ms。
其中,在本发明实施例中的视频数据包为没有声音的视频,例如没有声音的监控数据。
S104、根据音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包。
具体地,终端设备在确定音频渲染播放时间和视频渲染播放时间后,根据音频渲染播放时间从音频数组中获取音频数据包,并根据视频渲染播放时间从视频数组中获取视频数据包,将音频数据包和视频数据包加入到编码器中,通过浏览器进行播放,这样,用户通过浏览器收看媒体流数据时就不会出现延迟的现象。
本发明实施例提供的媒体数据的处理方法,通过获取媒体流数据,其中,媒体流数据至少包括视频帧率和音频采集率;根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;在每一个调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,和/或确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间;根据音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包,终端根据音频数据的采样率和视频数据的帧率,确定音视频同步播放的情况下的调节时间,在该调节时间内,统计接收到的音频数据包和视频数据包的数量,然后根据音频数据包数量和视频数据包的数量,将预设音视频同步播放时间平均分配,得到音频渲染播放时间和视频渲染播放时间,根据音频渲染播放时间和/或视频渲染播放时间从对应的数组中提取数据进行播放,这样,用户在终端网页上查看视联网音视频时不会出现延迟问题。
本发明又一实施例对上述实施例提供的媒体数据的处理方法做进一步补充说明。
如图2所示,示出了本发明的另一种媒体数据的处理方法实施例的步骤流程图,该媒体数据的处理方法包括:
S201、获取媒体流数据,其中,媒体流数据至少包括视频帧率和音频采集率;
具体的,媒体流数据还包括数据类型,数据类型包括音频类型和视频类型;
终端设备接收用户输入的媒体数据请求,终端设备将该媒体数据请求发送至互联网服务器,互联网服务器根据该媒体数据请求,从协转服务器上获取与媒体数据请求对应的媒体流数据,其中,媒体流数据至少包括音频数据、视频数据和相关参数,该相关参数至少包括视频帧率和音频采集率,且媒体流数据为二进制媒体流数据,互联网服务器从协转服务器上获取的视联网的媒体流数据,将视联网的媒体流数据转换成互联网的媒体流数据,然后将不同的数据类型和每个数据包的时间戳封装在二进制流数据中,将封装后的互联网的二进制媒体流发送至终端设备。
具体地,终端设备接收服务器返回的媒体流数据,包括:
终端设备对二进制的媒体流数据进行解析,得到音频数据包的时间戳和视频数据包的时间戳;
根据音频数据包的时间戳和初始时间戳,确定第一时间差值;
其中,初始时间戳为终端设备第一次接收到服务器发送的视频数据包的时间戳,也就是说,终端设备在接收到第一个视频数据包时,开始计时,然后根据接收到达的后续的音频数据包的时间戳和视频数据包的时间戳分别与初始时间戳进行比较,计算音频数据包的时间戳与初始时间戳的差值,即为第一时间差值。
若第一时间差值小于调节时间,则根据音频类型,将接收到音频数据包存储在音频数组中;
根据视频数据包的时间戳和初始时间戳,确定第二时间差值;
若第二时间差值小于调节时间,根据视频类型,将接收到视频数据包存储在视频数组中。
S202、根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;
具体包括:
根据音频采样率,确定播放每一个音频数据包的第一播放时长;
即示例性地,音频采样率为32K,一帧1024个样本,一帧要播放1000*1024/32000=31.25ms。
根据视频帧率,确定播放每一个视频数据包的第二播放时长;
示例性地,假设视频帧率fps(Frames Per Second,每秒传输帧数)为25帧,则视频一帧要持续40ms。
根据第一播放时长和第二播放时长,确定时长差;
示例性地,一帧相差40-31.25=8.75ms。即每播放一个视频帧就会延迟音频帧8.75ms。
根据时长差和预设音视频同步播放时间,确定在音视频同步播放的情况下的调节时间。
其中,预设音视频同步播放时间可以根据需要进行设定,优选地,300ms到500ms,例如,在300ms内大约需要34个视频包。34*40=1360ms就会产生不同步效果,在此过程中,1360ms即为调节时间即预设音视频同步播放时间。
S203、在每一个调节时间内,确定音频数据包的第一数量,和/或确定视频数据包的第二数量;
具体包括:
获取每一个调节时间内接收到的第一个视频数据包的初始时间戳;
根据每一个调节时间内第一个视频数据包的初始时间戳,统计在调节时间内的接收到音频数据包的第一数量和视频数据包的第二数量。
S204、根据调节时间和音频数据包的第一数量的比值,确定音频渲染播放时间;
S205、根据调节时间和视频数据包的第二数量的比值,确定视频渲染播放时间;
S206、每隔音频渲染播放时间,从音频数组中获取音频数据包;
S207、每隔视频渲染播放时间,从视频数据中获取视频数据包;
S208、对音频数据包进行高级音频编码AAC的解封装,得到解封装后的音频数据;
S209、对视频数据包进行H264解封装,得到解封装后的视频数据;
S210、对解封装后的音频数据和解封装后的视频数据进行FMP4的封装,得到播放媒体流数据。FMP4有一系列相互独立的box盒子,这些box盒子可以独立解析播放。
图3是本发明的再一种媒体数据的处理方法实施例的步骤流程图,如图3所示,首先获取音视频的采样率和帧率,计算需要时长T可能产生不同步效果。例如音视频时间戳相差300ms内认为同步即预设音视频同步播放时间。假设视频fps为25帧,则视频一帧要持续40ms,音频采样率32K,一帧1024个样本,一帧要播放1000*1024/32000=31.25ms。音频帧数量大于视频帧数量,以视频包为基准播放。一帧相差40-31.25=8.75ms。即每播放一个视频帧就会延迟音频帧8.75ms。在300msn内大约需要34个视频包。34*40=1360ms就会产生不同步效果。
视频数据包少,以视频数据为基准,分别统计累加T=1000ms(1000ms<1360ms)内的音视频数据包个数。计算出此段时间范围内,每个音视频包需要的渲染播放时间,给予重新赋值,保证1000ms内数据同步。因为以视频包数据为基准,主要改变音频每帧的渲染播放时长。
在T调节时间范围内动态配置每帧数据的渲染播放时长后,把数据和相关参数送入到解码器中进行H264/AAC的解封装和FMP4的封装,再到Vedio标签中进行渲染。与此同时,进行下一个T时间的动态配置。保证数据实时更新,不会参数累计延时误差。
具体方法包括:
1、服务器接收终端发送的请求,并从协转服务器上拉取相应视联网数据资源,即获取设备音视频数据包,包括音视频格式,采样率、帧率等消息返回给终端设备(MSE)。
2、服务器拉取媒体流,去视联网包头转化成互联网音视频数据,包含时间戳和数据类型。
3、服务器根据请求链路持续向终端设备发送buffer数据;
4、终端设备解析时间戳和格式类型,根据音频采样率和视频帧率初始化相关参数,计算需要调节时间T可能产生不同步效果,根据T选择合适的动态调整间隔T1。
5、终端设备根据格式类型将不同的数据分别存储在对应的数组中。
6、当接收到视频数据时,在加入数组后判断时间戳与上次动态修改播放时间的差值。
7、计算每个音视频数据包所需渲染播放的时间,动态的更新上一个T1时间内所有帧的时间。
实现因音视频每帧时间不同导致的累计误差。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
本发明实施例提供的媒体数据的处理方法,通过获取媒体流数据,其中,媒体流数据至少包括视频帧率和音频采集率;根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;在每一个调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,和/或确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间;根据音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包,终端根据音频数据的采样率和视频数据的帧率,确定音视频同步播放的情况下的调节时间,在该调节时间内,统计接收到的音频数据包和视频数据包的数量,然后根据音频数据包数量和视频数据包的数量,将预设音视频同步播放时间平均分配,得到音频渲染播放时间和视频渲染播放时间,根据音频渲染播放时间和/或视频渲染播放时间从对应的数组中提取数据进行播放,这样,用户在终端网页上查看视联网音视频时不会出现延迟问题。
本发明另一实施例提供一种媒体数据的处理装置,用于执行上述实施例提供的媒体数据的处理方法。
参照图4,示出了本发明的一种媒体数据的处理装置实施例的结构框图,该装置具体可以包括如下模块:接收模块401、确定模块402、调整模块403和播放模块404,其中:
接收模块401用于获取媒体流数据,其中,媒体流数据至少包括视频帧率和音频采集率;
确定模块402用于根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;
调整模块403用于在每一个调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,
和/或确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间;
播放模块404用于根据音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包。
本发明实施例提供的媒体数据的处理装置,通过获取媒体流数据,其中,媒体流数据至少包括视频帧率和音频采集率;根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;在每一个调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,和/或确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间;根据音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包,终端根据音频数据的采样率和视频数据的帧率,确定音视频同步播放的情况下的调节时间,在该调节时间内,统计接收到的音频数据包和视频数据包的数量,然后根据音频数据包数量和视频数据包的数量,将预设音视频同步播放时间平均分配,得到音频渲染播放时间和视频渲染播放时间,根据音频渲染播放时间和/或视频渲染播放时间从对应的数组中提取数据进行播放,这样,用户在终端网页上查看视联网音视频时不会出现延迟问题。
本发明又一实施例对上述实施例提供的媒体数据的处理装置做进一步补充说明。
可选地,所述确定模块用于:
根据所述音频采样率,确定播放每一个音频数据包的第一播放时长;
根据所述视频帧率,确定播放每一个视频数据包的第二播放时长;
根据所述第一播放时长和所述第二播放时长,确定时长差;
根据所述时长差和预设音视频同步播放时间,确定在音视频同步播放的情况下的调节时间。
可选地,所述媒体流数据还包括时间戳,所述调整模块用于:
获取每一个调节时间内接收到的第一个视频数据包的初始时间戳;
根据每一个调节时间内所述第一个视频数据包的初始时间戳和接收到的音频数据包的时间戳,统计当前调节时间内接收到音频数据包的第一数量;
根据所述调节时间和所述音频数据包的第一数量的比值,确定所述音频渲染播放时间。
可选地,所述调节模块用于:
根据每一个调节时间内第一个视频数据包的初始时间戳和接收到的视频数据包的时间戳,统计在当前调节时间内接收到视频数据包的第二数量;
根据所述调节时间和所述视频数据包的第二数量的比值,确定所述视频渲染播放时间。
可选地,所述媒体流数据还包括数据类型,所述数据类型包括音频类型和视频类型,所述接收模块用于:
对所述媒体流数据进行解析,得到音频数据包的时间戳和视频数据包的时间戳;
根据所述音频数据包的时间戳和初始时间戳,确定第一时间差值;
若所述第一时间差值小于第一预设值,则根据音频类型,将接收到音频数据包存储在音频数组中;所述第一预设值是根据所述调节时间和第一数量确定的;
根据视频数据包的时间戳和初始时间戳,确定第二时间差值;
若所述第二时间差值小于第二预设值,根据视频类型,将接收到视频数据包存储在视频数组中,所述第二预设值是根据所述调节时间和第二数量确定的。
可选地,所述播放模块用于:
每隔音频渲染播放时间,从所述音频数组中获取音频数据包;
每隔视频渲染播放时间,从所述视频数据中获取视频数据包;
对所述音频数据包进行高级音频编码的解封装,得到解封装后的音频数据;
对所述视频数据包进行H264解封装,得到解封装后的视频数据;
对解封装后的音频数据和解封装后的视频数据进行FMP4的封装,得到播放媒体流数据。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例提供的媒体数据的处理装置,通过获取媒体流数据,其中,媒体流数据至少包括视频帧率和音频采集率;根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;在每一个调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,和/或确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间;根据音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包,终端根据音频数据的采样率和视频数据的帧率,确定音视频同步播放的情况下的调节时间,在该调节时间内,统计接收到的音频数据包和视频数据包的数量,然后根据音频数据包数量和视频数据包的数量,将预设音视频同步播放时间平均分配,得到音频渲染播放时间和视频渲染播放时间,根据音频渲染播放时间和/或视频渲染播放时间从对应的数组中提取数据进行播放,这样,用户在终端网页上查看视联网音视频时不会出现延迟问题。
本发明再一实施例提供一种终端设备,用于执行上述实施例提供的媒体数据的处理方法。
图5是本发明的一种终端设备的结构示意图,如图5所示,该终端设备包括:至少一个处理器501和存储器502;
存储器存储计算机程序;至少一个处理器执行存储器存储的计算机程序,以实现上述实施例提供的媒体数据的处理方法。
本实施例提供的终端设备,通过获取媒体流数据,其中,媒体流数据至少包括视频帧率和音频采集率;根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;在每一个调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,和/或确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间;根据音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包,终端根据音频数据的采样率和视频数据的帧率,确定音视频同步播放的情况下的调节时间,在该调节时间内,统计接收到的音频数据包和视频数据包的数量,然后根据音频数据包数量和视频数据包的数量,将预设音视频同步播放时间平均分配,得到音频渲染播放时间和视频渲染播放时间,根据音频渲染播放时间和/或视频渲染播放时间从对应的数组中提取数据进行播放,这样,用户在终端网页上查看视联网音视频时不会出现延迟问题。
本申请又一实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,计算机程序被执行时实现上述任一实施例提供的媒体数据的处理方法。
根据本实施例的计算机可读存储介质,通过获取媒体流数据,其中,媒体流数据至少包括视频帧率和音频采集率;根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;在每一个调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,和/或确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间;根据音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包,终端根据音频数据的采样率和视频数据的帧率,确定音视频同步播放的情况下的调节时间,在该调节时间内,统计接收到的音频数据包和视频数据包的数量,然后根据音频数据包数量和视频数据包的数量,将预设音视频同步播放时间平均分配,得到音频渲染播放时间和视频渲染播放时间,根据音频渲染播放时间和/或视频渲染播放时间从对应的数组中提取数据进行播放,这样,用户在终端网页上查看视联网音视频时不会出现延迟问题。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、电子设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理电子设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理电子设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理电子设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理电子设备上,使得在计算机或其他可编程电子设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程电子设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者电子设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者电子设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者电子设备中还存在另外的相同要素。
以上对本发明所提供的一种媒体数据的处理方法和一种媒体数据的处理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种媒体数据的处理方法,其特征在于,所述方法包括:
获取媒体流数据,其中,所述媒体流数据至少包括视频帧率和音频采集率;
根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;
在每一个调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,
和/或确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间;
根据所述音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包。
2.根据权利要求1所述的方法,其特征在于,所述根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间,包括:
根据所述音频采样率,确定播放每一个音频数据包的第一播放时长;
根据所述视频帧率,确定播放每一个视频数据包的第二播放时长;
根据所述第一播放时长和所述第二播放时长,确定时长差;
根据所述时长差和预设音视频同步播放时间,确定在音视频同步播放的情况下的调节时间。
3.根据权利要求1所述的方法,其特征在于,所述媒体流数据还包括时间戳,所述在每一个所述调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,包括:
获取每一个调节时间内接收到的第一个视频数据包的初始时间戳;
根据每一个调节时间内所述第一个视频数据包的初始时间戳和接收到的音频数据包的时间戳,统计当前调节时间内接收到音频数据包的第一数量;
根据所述调节时间和所述音频数据包的第一数量的比值,确定所述音频渲染播放时间。
4.根据权利要求1所述的方法,其特征在于,所述在每一个所述调节时间内,确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间,包括:
根据每一个调节时间内第一个视频数据包的初始时间戳和接收到的视频数据包的时间戳,统计在当前调节时间内接收到视频数据包的第二数量;
根据所述调节时间和所述视频数据包的第二数量的比值,确定所述视频渲染播放时间。
5.根据权利要求3所述的方法,其特征在于,所述媒体流数据还包括数据类型,所述数据类型包括音频类型和视频类型,所述接收服务器返回的媒体流数据,包括:
对所述媒体流数据进行解析,得到音频数据包的时间戳和视频数据包的时间戳;
根据所述音频数据包的时间戳和初始时间戳,确定第一时间差值;
若所述第一时间差值小于第一预设值,则根据音频类型,将接收到音频数据包存储在音频数组中;所述第一预设值是根据所述调节时间和第一数量确定的;
根据视频数据包的时间戳和初始时间戳,确定第二时间差值;
若所述第二时间差值小于第二预设值,根据视频类型,将接收到视频数据包存储在视频数组中,所述第二预设值是根据所述调节时间和第二数量确定的。
6.根据权利要求5所述的方法,其特征在于,所述根据所述音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包,包括:
每隔音频渲染播放时间,从所述音频数组中获取音频数据包;
每隔视频渲染播放时间,从所述视频数据中获取视频数据包;
对所述音频数据包进行高级音频编码的解封装,得到解封装后的音频数据;
对所述视频数据包进行H264解封装,得到解封装后的视频数据;
对解封装后的音频数据和解封装后的视频数据进行FMP4的封装,得到播放媒体流数据。
7.一种媒体数据的处理装置,其特征在于,所述装置包括:
接收模块,用于获取媒体流数据,其中,所述媒体流数据至少包括视频帧率和音频采集率;
确定模块,用于根据音频采样率和视频帧率,确定在音视频同步播放的情况下的调节时间;
调整模块,用于在每一个调节时间内,确定音频数据包的第一数量,并根据所述第一数量确定音频渲染播放时间,
和/或确定视频数据包的第二数量,并根据第二数量确定视频渲染播放时间;
播放模块,用于根据所述音频渲染播放时间和/或视频渲染播放时间,播放音频数据包和视频数据包。
8.根据权利要求7所述的装置,其特征在于,所述确定模块用于:
根据所述音频采样率,确定播放每一个音频数据包的第一播放时长;
根据所述视频帧率,确定播放每一个视频数据包的第二播放时长;
根据所述第一播放时长和所述第二播放时长,确定时长差;
根据所述时长差和预设音视频同步播放时间,确定在音视频同步播放的情况下的调节时间。
9.一种终端设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现权利要求1-6中任一项所述的媒体数据的处理方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1-6中任一项所述的媒体数据的处理方法。
CN202210654783.XA 2022-06-10 2022-06-10 一种媒体数据的处理方法、装置、终端设备和存储介质 Pending CN115209200A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210654783.XA CN115209200A (zh) 2022-06-10 2022-06-10 一种媒体数据的处理方法、装置、终端设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210654783.XA CN115209200A (zh) 2022-06-10 2022-06-10 一种媒体数据的处理方法、装置、终端设备和存储介质

Publications (1)

Publication Number Publication Date
CN115209200A true CN115209200A (zh) 2022-10-18

Family

ID=83577052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210654783.XA Pending CN115209200A (zh) 2022-06-10 2022-06-10 一种媒体数据的处理方法、装置、终端设备和存储介质

Country Status (1)

Country Link
CN (1) CN115209200A (zh)

Similar Documents

Publication Publication Date Title
JP6570646B2 (ja) オーディオビデオファイルのライブストリーミング方法、システム及びサーバー
CN107846633B (zh) 一种直播方法及系统
KR101594351B1 (ko) 다수의 소스들로부터의 멀티미디어 데이터의 스트리밍
CN110933449B (zh) 一种外部数据与视频画面的同步方法、系统及装置
CN111010614A (zh) 一种显示直播字幕的方法、装置、服务器及介质
US20090293093A1 (en) Content server, information processing apparatus, network device, content distribution method, information processing method, and content distribution system
WO2017138387A1 (ja) 情報処理装置および情報処理方法
CN101917613B (zh) 一种流媒体采集编码服务系统
US20090106288A1 (en) Method and system for supporting media data of various coding formats
US20030162495A1 (en) Communication terminal, server, relay apparatus, broadcast communication system, broadcast communication method, and program
US20150181003A1 (en) Method and apparatus for transmitting and receiving packets in hybrid transmission service of mmt
EP3095247B1 (en) Robust live operation of dash
CN104902317A (zh) 音视频同步方法及装置
CN103765914A (zh) 经译码视频数据的网络流式传输
CN111147860B (zh) 一种视频数据的解码方法及装置
Van Deventer et al. Standards for multi-stream and multi-device media synchronization
CN101710997A (zh) 基于mpeg-2系统实现视、音频同步的方法及系统
CN112584087B (zh) 视频会议录制方法、电子装置和存储介质
CN102752669A (zh) 多通道实时流媒体文件的传送处理方法与系统、接收装置
CN101127917A (zh) 一种互联网流媒体格式音视频同步的方法及其系统
CN108494792A (zh) 一种flash播放器播放hls视频流的转换系统及其工作方法
US20180338170A1 (en) Contiguous Streaming Of Media Stream
CN101540871B (zh) 基于电路域可视电话同步录制对端声音图像的方法和终端
CN112752074A (zh) 数据传输方法、装置、终端设备和存储介质
CN111669605B (zh) 多媒体数据与其关联互动数据的同步方法和装置

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