CN105516090A - 媒体播放方法、设备及音乐教学*** - Google Patents
媒体播放方法、设备及音乐教学*** Download PDFInfo
- Publication number
- CN105516090A CN105516090A CN201510851549.6A CN201510851549A CN105516090A CN 105516090 A CN105516090 A CN 105516090A CN 201510851549 A CN201510851549 A CN 201510851549A CN 105516090 A CN105516090 A CN 105516090A
- Authority
- CN
- China
- Prior art keywords
- audio
- frame
- video
- sampling point
- play
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/764—Media network packet handling at the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1059—End-user terminal functionalities specially adapted for real-time communication
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了媒体播放方法、设备及音乐教学***。其中媒体播放设备包括接收单元、音频解码单元、视频解码单元、音频播放单元和视频播放单元。接收单元适于接收音频数据和视频数据。音频解码单元适于解码该音频数据以获取音频帧。每个音频帧包括多个音频样点和第一时间戳。第一时间戳为该音频帧的采集时间。视频解码单元适于解码视频数据以获取视频帧。每个视频帧包括对应其采集时间的第二时间戳。音频播放单元适于对音频样点进行播放,并计算当前所播放的音频样点的时间值。视频播放单元适于根据所播放音频样点的时间值,检测视频帧中是否具有第二时间戳小于或等于该时间值的视频帧,并播放所检测到的视频帧。
Description
技术领域
本发明涉及通信领域,尤其涉及媒体播放方法、设备及音乐教学***。
背景技术
目前,在例如视频会议或网络直播等实时通信方案中,采集媒体数据的终端可以采集视频帧和音频帧等媒体数据,并向播放设备传输媒体数据。这里,采集终端可以在按照传输协议封装视频帧和音频帧时,将相对时间戳添加到封装数据包中。例如,采集终端采用RTP协议传输音视频数据,并在每个RTP包头中添加相对时间戳。在数据的发送过程中,每个发送出去的RTP数据包中的时间戳是逐一增加的,从而方便在播放端对数据包进行排序,以恢复出数据包的原始时间顺序关系。播放设备在接收到音频帧和视频帧后,可以根据相对时间戳对所接收的音频帧和视频帧进行排序。然后,播放设备按照排序对音频帧和视频帧各自进行播放。
然而,现有的播放设备在播放音频帧和视频帧时,经常出现声音与图像不同步的问题。
发明内容
为此,本发明提供一种新的媒体播放方案,有效的解决了上面至少一个问题。
根据本发明的一个方面,提供一种媒体播放设备,包括接收单元、音频解码单元、视频解码单元、音频播放单元和视频播放单元。其中,接收单元适于接收来自媒体服务器的音频数据和视频数据。音频解码单元适于解码该音频数据以获取一个或多个音频帧。每个音频帧包括多个音频样点和第一时间戳。该第一时间戳为该音频帧的采集时间。视频解码单元适于解码视频数据以获取一个或多个视频帧。每个视频帧包括对应该视频帧采集时间的第二时间戳。音频播放单元适于对所获取的一个或多个音频帧的音频样点进行播放,并根据第一时间戳计算当前所播放的音频样点的时间值。视频播放单元适于根据所播放音频样点的时间值,检测所获取的一个或多个视频帧中是否具有第二时间戳小于或等于该时间值的视频帧,并播放所检测到的视频帧。
根据本发明的又一个方面,提供一种媒体播放方法,适于在媒体播放设备中执行。该播放方法包括以下步骤。接收来自媒体服务器的音频数据和视频数据。解码该音频数据以获取一个或多个音频帧。每个音频帧包括多个音频样点和第一时间戳。第一时间戳为该音频帧的采集时间。解码该视频数据以获取一个或多个视频帧。每个视频帧包括对应该视频帧采集时间的第二时间戳。对所获取的一个或多个音频帧的音频样点进行播放,并根据第一时间戳计算当前所播放的音频样点的时间值。根据所播放音频样点的时间值,检测所获取的一个或多个视频帧中、是否具有第二时间戳小于或等于该时间值的视频帧,并播放所检测到的视频帧。
根据本发明的又一个方面,提供一种音乐教学***,包括根据本发明的媒体终端、媒体服务器和媒体播放端。媒体终端适于采集音频数据和视频数据。媒体服务器适于网络传输所采集的音频数据和视频数据。
根据本发明的媒体播放方案,可以从媒体服务器获取到媒体终端所采集的音频数据和视频数据。在音频数据进行播放时,本发明的媒体播放方案还可以根据音频数据的采集时间(第一时间戳)计算当前正在播放的音频样点的采集时间。这样,根据本发明的媒体播放方案可以根据当前正在播放的音频样点的采集时间,并根据视频数据的采集时间(第二时间戳)对视频帧进行与音频帧的同步播放。另外,本发明的媒体播放方案还可以监测音频播放的延时是否超过阈值,并在延时较长时启动静音检测操作以舍弃静音数据,从而减小音频播放的延时。换言之,本发明的媒体播放方案可以自适应的调节音频播放的延时,以保持较高的播放实时性。由于视频帧的采集帧率通常低于音频帧的采集帧率,本发明的媒体播放方案通过视频数据跟随音频数据播放的方式,可以保证音频与视频数据的播放始终保持很高的同步性。需要说明的是,音频和视频的高同步性和实时性播放,可以极大提高例如音乐教学等流媒体***的性能。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示例性音乐教学***100的框图;
图2示出了根据本发明一些实施例的媒体播放设备200的框图;以及
图3示出了根据本发明的一些实施例的媒体播放方法300的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个示例性音乐教学***100的框图。如图1所示,音乐教学***100可以包括多个学生客户端110、服务器120和老师客户端130。在音乐教学***100中,学生客户端110和老师客户端130通过服务器120进行实时通信,以便进行在线音乐教学。例如,在学生进行演奏时,学生客户端110可以被实现为媒体终端,采集与学生演奏相关的诸如视频和音频等媒体数据,并通过服务器120向老师客户端130传输这些媒体数据。老师客户端130可以被实现为媒体播放设备,接收并播放媒体数据,以便老师实时了解学生的演奏情况。同时,老师客户端130也可以被实现为媒体终端,采集老师对学生演奏的反馈指导或者教学演示等内容的媒体数据,并通过服务器120向学生客户端传输。学生客户端110可以被实现为媒体播放设备,接收并播放来自老师客户端130的媒体数据,以便老师对学生演奏进行实时反馈,或者实时地对学生进行教学演示。总之,学生客户端110和老师客户端130都可以被实现为媒体终端和媒体播放设备。这里,媒体数据例如包括演奏乐器的指法、气息、乐器声音和指导文案等教学内容,但不限于此。
通常,在线音乐教学***对实时性或者同步性等方面有较高的要求。本发明针对音乐教学***的媒体播放环节,提出了一种新的媒体播放设备。下面结合图2对音乐教学***中的媒体播放设备进行进一步的示例性说明。当然,媒体播放设备可以是学生客户端或者老师客户端,为了简化描述,下文中不再区分媒体播放设备的具体类型。同样,学生客户端110和老师客户端130都可以被实现为媒体播放设备。需要说明的是,根据本发明的媒体播放设备可以被应用在音乐教学***中,但并不限于此。例如,根据本发明的媒体播放设备也可以应用在例如视频会议、比赛直播等实时流媒体方案中。
图2示出了根据本发明一些实施例的媒体播放设备200的框图。这里,计算设备可以被配置为媒体播放设备200。而计算设备可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机,但不限于此。
媒体播放设备200包括接收单元210、音频解码单元220、视频解码单元230、音频播放单元240和视频播放单元250。
接收单元210适于接收来自媒体服务器的音频数据和视频数据。这里,媒体服务器通常以数据包的方式将音频数据和视频数据传输到媒体播放设备。音频数据是指接收单元210依次接收的多个音频数据包。根据本发明一个实施例,音频数据包格式例如为:
TCP_info+AV_Info+AudioData
其中,TCP_info为TCP传输协议头。
AV_Info包括音频帧控制参数:
DWORDc_type控制类型;
__int64stamp时间戳;
DWORDc_value控制数值。
AudioData为音频帧对应的压缩数据段,压缩格式例如为AAC。
接收单元210例如可以包括网络缓冲区211。在接收到音频数据包时,接收单元210可以从音频数据包中提取一个音频帧(AV_Info+AudioData),并存放到网络缓冲区211中。需要说明的是,每个音频帧包括的时间戳为多个音频采样点中第一个音频样点的采集时间,可以标记为第一时间戳。在根据本发明一个实施例中,接收单元210对音频数据包进行处理的代码示例如下:
PushAAC(ch,dwstamp,m_szBuf,tmp_nLen);
ch:通道名称,根据数据包装头传输过来的id来匹配通道。
dwstamp:是从AV_Info中剥离出来的第一时间戳,数据类型为__int64
m_szBuf:包含AudioData的缓冲
tmp_nLen:AudioData的总长
//此函数把包含第一时间戳的音频帧存放到网络缓冲区
另外,接收单元210所接收的视频数据包消息格式例如为:
TCP_info+AV_Info+VideoData
其中,TCP_info为TCP传输协议头。
AV_Info包括视频帧控制参数:
DWORDc_type控制类型;
__int64stamp时间戳;
DWORDc_value控制数值。
VideoData为一个视频帧对应的压缩数据,压缩格式例如为H.264,但不限于此。AV_Info中所包括的时间戳为视频帧的采集时间,可以标记为第二时间戳。换言之,该时间戳为媒体终端采集原始图像的捕获时间。
在接收到一个视频数据包时,接收单元210可以从其中提取出视频帧(AV_Info+VideoData),并存放到网络缓冲区211中。根据本发明一个实施例,接收单元210对视频数据包进行处理的代码示例如下:
PushVideoStream(ch,dwstamp,m_szBuf,tmp_nLen);
ch:通道名称,根据数据包协议头传输过来的id来匹配通道。
dwstamp:是从AV_Info中剥离出来的第二时间戳,数据类型为__int64
m_szBuf:包含SPS,PPS和视频压缩数据的缓冲
tmp_nLen:视频压缩数据的总长
//此函数把包含第二时间戳的视频数据存放到网络缓冲区
如上所述,网络缓冲区211中存放有音频帧和视频帧。在根据本发明一个实施例中,网络缓冲区211具体可以包括音频缓冲区和视频缓冲区。音频缓冲区适于存放音频帧。视频缓冲区适于存放视频帧。需要说明的是,根据本发明的媒体终端在采集音频和视频时采用相同的时间基准。因此,接收单元210所接收到的音频帧的第一时间戳和视频帧的第二时间戳时间基准相同。
音频解码单元220适于对音频帧进行解码操作。经解码的音频帧包括多个音频样点和第一时间戳。在根据本发明一个实施例中,音频解码单元220进行解码操作的代码示例如下:
Ret=GetAACStream(ch,&dwstamp,m_audiostream,&audio_nLen)
另外,视频解码单元230适于对网络缓冲区中视频帧进行解码操作。在根据本发明一个实施例中,视频解码单元230进行解码操作的代码示例如下:
Ret=GetVideoStream(ch,&dwstamp,m_videostream,&video_nLen)
音频播放单元240适于对来自音频解码单元220的音频帧进行播放。在根据本发明一个实施例中,音频播放单元240具有播放缓冲区。音频播放单元240适于依次从音频解码单元220提取音频帧,例如每次提取一个音频帧。这里,每提取一个音频帧的操作可以称之为一次选定操作。音频播放单元240可以将每次所选定的音频帧推送到播放缓冲区中。这里,播放缓冲区例如为声卡的缓冲区,但不限于此。在每次选定操作中,音频播放单元240适于根据音频帧的第一时间戳进行选定,从而使得音频帧在播放缓冲区中是按照采集时间排序的。这样,音频播放单元240可以依次对播放缓冲区中音频帧的音频样点进行播放。
另外,在每选定一个音频帧并且将其推送到播放缓冲区之前,音频播放单元240还适于根据所选定的音频帧的第一时间戳计算当前所播放的音频样点的时间值。具体而言,音频播放单元240计算当前播放缓冲区的数据长度。数据长度的单位例如为字节(byte)。然后,音频播放单元240根据其对音频样点的播放速度,计算当前播放缓冲区中数据所需要的播放时长。这样可以根据第一时间戳和该播放时长计算当前播放的音频样点的时间值。需要说明的是,在根据本发明的实施例中,由于第一时间戳为对应音频帧第一个采样点的采集时间,因此可以准确计算出当前播放样点的采集时间。例如,在根据本发明一个实施例中,根据下述公式计算当前播放样点的时间值:
curastamp=dwstamp-inbufferlength*1000/AUDIO_PERSECOND_REAL
其中,AUDIO_PERSECOND_REAL为音频播放单元的播放速度(单位为byte/s),inbufferlength为所述数据长度(单元为byte),dwstamp为所选定的音频帧的第一时间戳,curastamp为当前所播放的音频样点的时间值(最小单位为毫秒)。例如第一时间戳dwstamp为10点00分00秒010毫秒,播放时长inbufferlength*1000/AUDIO_PERSECOND_REAL为10毫秒,那么curastamp值为10点00分00秒000毫秒。
如上所述,音频播放单元240在每次选定一帧音频帧时,可以计算出当前所播放的音频样点的时间值。而视频播放单元250正是利用了当前所播放音频样点的时间值,从而实现视频与音频的同步播放。具体而言,视频播放单元250在每次当前所播放的音频样点的时间值更新时(即,音频播放单元240执行一次选定操作时),从视频解码单元230执行解码操作后生成的视频帧中,检测是否具有第二时间戳小于或等于当前所播放音频样点的时间值的视频帧。如果未检测到视频帧,视频播放单元250会继续等待下一次当前所播放的音频样点的时间值的更新。如果检测到视频帧,视频播放单元250立即播放所检测到视频帧。根据本发明一个实施例,如果检测到的视频帧包括多个视频帧,视频播放单元250可以选择对距离当前所播放的音频样点的时间值最近的一帧进行播放。当然,本发明的实施例也可以选择对检测到的多个视频帧进行快速播放。这里不再赘述。
需要说明的是,根据本发明的媒体终端所采集的音频帧的采集帧率通常高于视频帧的采集帧率。根据本发明的媒体播放设备200在对音频帧和视频帧进行播放时,通过将视频帧跟随当前播放音频样点的方式,可以极大提高音视频数据播放的同步性,从而极大提高用户体验度。
另外,在根据本发明一个实施例中,音频播放单元240在选定一帧音频帧并且通过计算获取到当前播放缓冲区的数据长度时,还可以计算当前播放缓冲区的数据所需要的播放时长是否超过阈值。这里,播放时长为根据音频播放单元对音频样点的播放速度而计算出的时间值。阈值例如为500毫秒。这样,音频播放单元240可以通过当前播放缓冲区中数据所需要的播放时长,判断音频播放的延时是否超过阈值。如果数据长度超过阈值,音频播放单元240还适于执行静音检测操作。这里,静音数据是指声音信号能量低于预定门限的数据。静音检测的算法例如为短时能量检测算法,或者短时过零率检测算法。但不限于此,任何已知的静音检测算法都可以应用在本发明的实施例中。音频播放单元240可以通过静音检测操作来检测音频帧是否为静音数据。如果是静音数据,则音频播放单元240可以选择将这帧音频舍弃,以减小声音播放的延时。这样,根据本发明的音频播放单元240可以使得音频播放有很高的实时性。应当注意,这对于音乐教学等对声音实时性要求较高的流媒体直播方案来说,本发明的音频播放单元240可以极大提升***性能。另外,在音频播放单元240舍弃音频帧时,音频播放单元240可以在本次选定操作过程中取消计算当前所播放音频播放样点的时间,但不限于此。音频播放单元240在舍弃音频帧帧后,可以继续对下一个音频帧进行选定操作。这样,在由于网络抖动等原因造成音频播放延时超过阈值时,根据本发明的音频播放单元240实现了对音频播放的快进操作。同时,根据本发明的视频播放单元250可以跟随音频播放进度,从而实现了对视频快进播放的效果。总之,根据本发明的媒体播放设备200对音频和视频的播放具有很高的同步性和实时性。
图3示出了根据本发明一些实施例的媒体播放方法300的流程图。方法300适于在根据本发明的媒体播放设备中执行。
如图3所示,方法300始于步骤S310。在步骤S310中,接收来自媒体服务器的音频数据和视频数据。这里,媒体服务器通常以媒体数据包的方式传输音频数据和视频数据。在步骤S310中接收的音频数据包和视频数据包的方式与上文中接收单元的工作方式一致,这里不再赘述。步骤S310中所接收的音频数据和视频数据,方法300通过执行步骤S320和步骤S330进行解码操作。在步骤S320中,解码音频数据以获取一个或多个音频帧。每个音频帧包括多个音频样点和第一时间戳,该第一时间戳为该音频帧的采集时间。例如,第一时间戳为第一个音频样点的采集时间。在步骤S330中,解码视频数据以获取一个或多个视频帧。每个视频帧包括对应该视频帧采集时间的第二时间戳。
对于在步骤S320中所生成到的音频帧,方法300通过执行步骤S340进行播放。在步骤S340中,对音频帧的音频样点进行播放,并根据第一时间戳计算当前所播放的音频样点的时间值。需要说明的是,根据本发明的媒体播放设备配置有播放缓冲区。根据本发明一个实施例,在步骤S340中依次执行多次选定操作。每次选定一个音频帧,并将所选定的音频帧存放到播放缓冲区。在步骤S340中,通过例如声卡等对播放缓冲区中音频帧的音频样点进行播放。另外,在步骤S340中选定一个音频帧,并且在将其存放到播放缓冲区之前,计算当前所播放音频样点的时间值。根据本发明一个实施例,首先计算当前播放缓冲区的数据长度。然后根据所选定音频帧的第一时间戳、数据长度以及对音频样点的播放速度来计算当前所播放的音频样点的时间值。例如,通过下述公式计算当前所播放的音频样点的时间值。
curastamp=dwstamp-inbufferlength*1000/AUDIO_PERSECOND_REAL
其中,AUDIO_PERSECOND_REAL为对音频样点的播放速度(单位为byte/s),inbufferlength为所述数据长度(单元为byte),dwstamp为所选定的音频帧的第一时间戳,curastamp为当前所播放的音频样点的时间值(最小单位为毫秒)。应注意,第一时间戳为媒体终端在采集音频帧时记录的该音频帧中第一个音频样点的采集时间,因此当前所播放的音频样点的时间值为一个准确的采集时间。
另外,在步骤S340中,还可以对当前缓冲区中数据所需的播放时长是否超过阈值进行判断。具体地,通过计算该数据长度的音频数据所需要的播放时长,进而确定该播放时长是否超过阈值,阈值例如为500毫秒。如果播放时长超过阈值,在步骤340中还可以进行静音检测操作,以判断音频帧是否为静音数据。如果该音频帧为静音数据,则可以舍弃掉该音频帧,并可以选择不再计算当前所播放的音频样点的时间值,以及继续选定下一个音频帧。如果非静音帧,则继续执行将所选定的音频帧存放到播放缓冲区的操作。
如上所述,在每次计算出当前所播放的音频样点的时间值时,方法300执行步骤S350。根据本发明一个实施例,在步骤S350中,检测步骤S330中所获取的视频帧中、是否具有第二时间戳小于或等于当前所播放音频样点的视频帧,并播放检测到的视频帧。例如,如果所检测到的视频帧为一个视频帧,播放这个视频帧。如果所检测到的视频帧包括多个视频帧,则播放与所播放音频样点的时间值最近的一个视频帧。这样,方法300通过执行步骤S350,可以实现视频数据与音频数据的同步播放。方法300具体的实施方式与上文中媒体播放设备的工作方式一致,这里不再赘述。
A10、如A9所述的媒体播放方法,在将所选定的音频帧存放到播放缓冲区之前,还包括:判断当前播放缓冲区中数据所需的播放时长是否大于阈值;如果播放时长大于阈值,对将要存放到所述音频缓冲区的、所选定的音频帧执行静音检测操作;如果该音频帧是静音数据,则舍弃该音频帧;以及如果该音频帧非静音数据,则将该音频帧存放到所述播放缓冲区中。A11、如A7-A10中任一项所述的媒体播放方法,其中,所述播放所检测到视频帧的步骤包括:如果所检测到的视频帧为一个视频帧,播放这个视频帧;以及如果所检测到的视频帧包括多个视频帧,则播放与所播放音频样点的时间值最近的一个视频帧。A12、如A10所述的媒体播放方法,所述阈值为500毫秒。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机***的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种媒体播放设备,包括:
接收单元,适于接收来自媒体服务器的音频数据和视频数据;
音频解码单元,适于解码该音频数据以获取一个或多个音频帧,每个音频帧包括多个音频样点和第一时间戳,该第一时间戳为该音频帧的采集时间;
视频解码单元,适于解码该视频数据以获取一个或多个视频帧,每个视频帧包括对应该视频帧的采集时间的第二时间戳;
音频播放单元,适于对所获取的一个或多个音频帧的音频样点进行播放,并根据所述第一时间戳计算当前所播放的音频样点的时间值;以及
视频播放单元,适于根据所播放音频样点的时间值,检测所获取的一个或多个视频帧中、是否具有第二时间戳小于或等于该时间值的视频帧,并播放所检测到的视频帧。
2.如权利要求1所述的媒体播放设备,其中所述音频播放单元具有播放缓冲区;以及
所述音频播放单元适于根据下述方式对所获取的一个或多个音频帧的音频样点进行播放:
依次执行多次选定操作,每次选定所获取的一个或多个音频帧中一个;
将所选定的音频帧存放到播放缓冲区;以及
对该播放缓冲区中音频帧的音频样点进行播放。
3.如权利要求2所述的媒体播放设备,其中所获取的音频帧中每个音频帧的第一时间戳为该音频帧的音频样点中第一个音频样点的采集时间;
所述音频播放单元适于根据下述方式以根据所述第一时间戳计算当前所播放的音频样点的时间值:
在将所选定的音频帧存放到播放缓冲区之前,计算当前所述播放缓冲区的数据长度;以及
根据所选定的音频帧的第一时间戳、该数据长度和该音频播放单元的播放速度,通过下述公式计算当前所播放的音频样点的时间值:
curastamp=dwstamp-inbufferlength*1000/AUDIO_PERSECOND_REAL
其中,AUDIO_PERSECOND_REAL为音频播放单元的播放速度(单位为byte/s),inbufferlength为所述数据长度(单元为byte),dwstamp为所选定的音频帧的第一时间戳,curastamp为当前所播放的音频样点的时间值(最小单位为毫秒)。
4.如权利要求3所述的媒体播放设备,所述音频播放单元还适于:
判断当前播放缓冲区中数据所需的播放时长是否大于阈值,
如果播放时长大于阈值,对将要存放到所述音频缓冲区的、所选定的音频帧执行静音检测操作,
如果该音频帧是静音数据,则舍弃该音频帧,以及
如果该音频帧非静音数据,则将该音频帧存放到所述播放缓冲区中。
5.如权利要求1-4中任一项所述的媒体播放设备,其中,所述视频播放单元适于根据下述方式播放所检测到视频帧:
如果所检测到的视频帧为一个视频帧,播放这个视频帧;以及
如果所检测到的视频帧包括多个视频帧,则播放与所播放音频样点的时间值最近的一个视频帧。
6.如权利要求4所述的媒体播放设备,所述阈值为500毫秒。
7.一种媒体播放方法,适于在媒体播放设备中执行,该播放方法包括:
接收来自媒体服务器的音频数据和视频数据;
解码该音频数据以获取一个或多个音频帧,每个音频帧包括多个音频样点和第一时间戳,该第一时间戳为该音频帧的采集时间;
解码该视频数据以获取一个或多个视频帧,每个视频帧包括对应该视频帧的采集时间的第二时间戳;
对所获取的一个或多个音频帧的音频样点进行播放,并根据所述第一时间戳计算当前所播放的音频样点的时间值;以及
根据所播放音频样点的时间值,检测所获取的一个或多个视频帧中、是否具有第二时间戳小于或等于该时间值的视频帧,并播放所检测到的视频帧。
8.如权利要求7所述的媒体播放方法,其中所述媒体播放设备包括播放缓冲区;以及
所述对所获取的一个或多个音频帧的音频样点进行播放的步骤包括:
依次执行多次选定操作,每次选定所获取的一个或多个音频帧中一个;
将所选定的音频帧存放到播放缓冲区;以及
对该播放缓冲区中音频帧的音频样点进行播放。
9.如权利要求8所述的媒体播放方法,其中所获取的音频帧中每个音频帧的第一时间戳为该音频帧的音频样点中第一个音频样点的采集时间;
所述根据所述第一时间戳计算当前所播放的音频样点的时间值的步骤包括:
在将所选定的音频帧存放到播放缓冲区之前,计算当前所述播放缓冲区的数据长度;和
根据所选定的音频帧的第一时间戳、该数据长度和对音频样点的播放速度,通过下述公式计算当前所播放的音频样点的时间值:
curastamp=dwstamp-inbufferlength*1000/AUDIO_PERSECOND_REAL
其中,AUDIO_PERSECOND_REAL为对音频样点的播放速度(单位为byte/s),inbufferlength为所述数据长度(单元为byte),dwstamp为所选定的音频帧的第一时间戳,curastamp为当前所播放的音频样点的时间值(最小单位为毫秒)。
10.一种音乐教学***,包括:
媒体终端,适于采集音频数据和视频数据;
媒体服务器,适于网络传输来自所述媒体终端的音频数据和视频数据;以及
如权利要求1-6中任一项所述的媒体播放设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510851549.6A CN105516090B (zh) | 2015-11-27 | 2015-11-27 | 媒体播放方法、设备及音乐教学*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510851549.6A CN105516090B (zh) | 2015-11-27 | 2015-11-27 | 媒体播放方法、设备及音乐教学*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105516090A true CN105516090A (zh) | 2016-04-20 |
CN105516090B CN105516090B (zh) | 2019-01-22 |
Family
ID=55723728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510851549.6A Active CN105516090B (zh) | 2015-11-27 | 2015-11-27 | 媒体播放方法、设备及音乐教学*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105516090B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106385525A (zh) * | 2016-09-07 | 2017-02-08 | 天脉聚源(北京)传媒科技有限公司 | 一种视频播放方法及装置 |
CN108933786A (zh) * | 2018-07-03 | 2018-12-04 | 公安部第研究所 | 用于改善无线数字通信***接收方密文语音质量的方法 |
CN109286857A (zh) * | 2017-07-19 | 2019-01-29 | 成都鼎桥通信技术有限公司 | 多媒体数据播放方法及装置 |
CN109327724A (zh) * | 2017-08-01 | 2019-02-12 | 成都鼎桥通信技术有限公司 | 音视频同步播放方法和装置 |
CN109493883A (zh) * | 2018-11-23 | 2019-03-19 | 小捷科技(深圳)有限公司 | 一种智能设备及其智能设备的音频时延计算方法和装置 |
CN109600563A (zh) * | 2018-08-01 | 2019-04-09 | 北京微播视界科技有限公司 | 用于确定时间戳的方法和装置 |
CN112019939A (zh) * | 2019-05-31 | 2020-12-01 | 青岛海信宽带多媒体技术有限公司 | Rtp包处理方法、装置及播放终端 |
CN112584216A (zh) * | 2019-09-29 | 2021-03-30 | 杭州海康威视数字技术股份有限公司 | 一种唇音同步方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1917652A (zh) * | 2006-09-07 | 2007-02-21 | 四川长虹电器股份有限公司 | Ip网络流媒体音视频同步播放方法 |
CN101466044A (zh) * | 2007-12-19 | 2009-06-24 | 康佳集团股份有限公司 | 一种流媒体音视频同步播放的方法及其*** |
CN102364952A (zh) * | 2011-10-25 | 2012-02-29 | 浙江万朋网络技术有限公司 | 一种多路音视频同时播放时处理音视频同步的方法 |
CN102404650A (zh) * | 2011-11-30 | 2012-04-04 | 江苏奇异点网络有限公司 | 在线视频的音视频同步控制方法 |
CN103888815A (zh) * | 2014-03-13 | 2014-06-25 | 广州市花都区中山大学国光电子与通信研究院 | 一种音视频流实时分离处理及同步的方法及其*** |
-
2015
- 2015-11-27 CN CN201510851549.6A patent/CN105516090B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1917652A (zh) * | 2006-09-07 | 2007-02-21 | 四川长虹电器股份有限公司 | Ip网络流媒体音视频同步播放方法 |
CN101466044A (zh) * | 2007-12-19 | 2009-06-24 | 康佳集团股份有限公司 | 一种流媒体音视频同步播放的方法及其*** |
CN102364952A (zh) * | 2011-10-25 | 2012-02-29 | 浙江万朋网络技术有限公司 | 一种多路音视频同时播放时处理音视频同步的方法 |
CN102404650A (zh) * | 2011-11-30 | 2012-04-04 | 江苏奇异点网络有限公司 | 在线视频的音视频同步控制方法 |
CN103888815A (zh) * | 2014-03-13 | 2014-06-25 | 广州市花都区中山大学国光电子与通信研究院 | 一种音视频流实时分离处理及同步的方法及其*** |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106385525A (zh) * | 2016-09-07 | 2017-02-08 | 天脉聚源(北京)传媒科技有限公司 | 一种视频播放方法及装置 |
CN109286857A (zh) * | 2017-07-19 | 2019-01-29 | 成都鼎桥通信技术有限公司 | 多媒体数据播放方法及装置 |
CN109286857B (zh) * | 2017-07-19 | 2021-05-18 | 成都鼎桥通信技术有限公司 | 多媒体数据播放方法及装置 |
CN109327724A (zh) * | 2017-08-01 | 2019-02-12 | 成都鼎桥通信技术有限公司 | 音视频同步播放方法和装置 |
CN108933786A (zh) * | 2018-07-03 | 2018-12-04 | 公安部第研究所 | 用于改善无线数字通信***接收方密文语音质量的方法 |
CN108933786B (zh) * | 2018-07-03 | 2021-04-09 | 公安部第一研究所 | 用于改善无线数字通信***接收方密文语音质量的方法 |
CN109600563A (zh) * | 2018-08-01 | 2019-04-09 | 北京微播视界科技有限公司 | 用于确定时间戳的方法和装置 |
CN109493883A (zh) * | 2018-11-23 | 2019-03-19 | 小捷科技(深圳)有限公司 | 一种智能设备及其智能设备的音频时延计算方法和装置 |
CN109493883B (zh) * | 2018-11-23 | 2022-06-07 | 小捷科技(深圳)有限公司 | 一种智能设备及其智能设备的音频时延计算方法和装置 |
CN112019939A (zh) * | 2019-05-31 | 2020-12-01 | 青岛海信宽带多媒体技术有限公司 | Rtp包处理方法、装置及播放终端 |
CN112584216A (zh) * | 2019-09-29 | 2021-03-30 | 杭州海康威视数字技术股份有限公司 | 一种唇音同步方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105516090B (zh) | 2019-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105516090A (zh) | 媒体播放方法、设备及音乐教学*** | |
CN105429984A (zh) | 媒体播放方法、设备及音乐教学*** | |
CN105430537A (zh) | 对多路数据进行合成的方法、服务器及音乐教学*** | |
CN100412852C (zh) | 网络上的多种媒体的同步合成存储发布***及操作该***的方法 | |
CN104113777B (zh) | 一种音频流解码方法及装置 | |
CN105429983B (zh) | 采集媒体数据的方法、媒体终端及音乐教学*** | |
CN102014126B (zh) | 一种基于QoS的语音体验质量评测平台及评测方法 | |
RU2011135032A (ru) | Совместное использование видео | |
CN102811368A (zh) | 一种移动视频直播*** | |
KR20160067126A (ko) | 콘텐트 전달을 위한 방법 및 장치 | |
CN101635848A (zh) | 一种视频文件的编辑方法和装置 | |
US20140317668A1 (en) | Carriage Of Quality Information Of Content In Media Formats | |
JP4354957B2 (ja) | 放送コンテンツ伝送装置、放送コンテンツ伝送システム、放送コンテンツ伝送方法およびプログラム | |
RU2656093C2 (ru) | Устройство поставки контента, способ поставки контента, программа, оконечное устройство и система поставки контента | |
CN102196319A (zh) | 一种流媒体直播业务***及实现方法 | |
CN109600341B (zh) | 一种即时通信检测方法、设备和计算机存储介质 | |
CN105430453A (zh) | 媒体数据采集方法、媒体终端及在线音乐教学*** | |
CN109040818A (zh) | 直播时的音视频同步方法、存储介质、电子设备及*** | |
WO2004086765A1 (ja) | データ送信装置 | |
CN105451073B (zh) | Mp4视频源的传送方法和装置 | |
JP2003218932A (ja) | エラー隠蔽装置及び方法 | |
EP3171606B1 (en) | Information processing device and information processing method | |
KR100931344B1 (ko) | Vod 스트리밍 서비스를 제공하는 방법과 그를 위한시스템, 서버 및 사용자 단말기 | |
KR101999235B1 (ko) | Mmtp기반 하이브리드 브로드캐스트 브로드밴드 서비스 제공 방법 및 시스템 | |
TWI296406B (zh) |
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 |