CN105429984A - 媒体播放方法、设备及音乐教学系统 - Google Patents
媒体播放方法、设备及音乐教学系统 Download PDFInfo
- Publication number
- CN105429984A CN105429984A CN201510846544.4A CN201510846544A CN105429984A CN 105429984 A CN105429984 A CN 105429984A CN 201510846544 A CN201510846544 A CN 201510846544A CN 105429984 A CN105429984 A CN 105429984A
- Authority
- CN
- China
- Prior art keywords
- audio
- audio frame
- data
- frame
- 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
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B15/00—Teaching music
- G09B15/001—Boards or like means for providing an indication of chords
- G09B15/002—Electrically operated systems
-
- 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4335—Housekeeping operations, e.g. prioritizing content for deletion because of storage space restrictions
-
- 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/4392—Processing of audio elementary streams involving audio buffer management
-
- 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, rendering scenes according to MPEG-4 scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440236—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by media transcoding, e.g. video is transformed into a slideshow of still pictures, audio is converted into text
-
- 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/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/4508—Management of client data or end-user data
Abstract
本发明公开了媒体播放方法、设备及音乐教学系统。其中,媒体播放设备包括接收单元、音频解码单元和音频播放单元。接收单元适于接收来自网络的音频数据。音频解码单元适于对所接收的音频数据执行解码操作以获取一个或多个音频帧。音频播放单元,适于对所获取的每个音频帧执行静音检测操作,以判断该音频帧是否为静音数据。如果所检测音频帧为静音数据,音频播放单元舍弃该音频帧。如果所检测音频帧非静音数据,音频播放单元将该音频帧存放到播放缓冲区中,以便对播放缓冲区中音频帧执行播放操作。
Description
技术领域
本发明涉及通信领域,尤其涉及媒体播放方法、设备及音乐教学系统。
背景技术
目前,在例如视频会议或网络直播等实时通信方案中,采集媒体数据的终端可以采集视频帧和音频帧等媒体数据,并向播放设备传输媒体数据。这里,采集终端可以在按照传输协议封装视频帧和音频帧时,将相对时间戳添加到封装数据包中。例如,采集终端采用RTP协议传输音视频数据,并在每个RTP包头中添加相对时间戳。在数据的发送过程中,每个发送出去的RTP数据包中的时间戳是逐一增加的,从而方便在播放端对数据包进行排序,以恢复出数据包的原始时间顺序关系。播放设备在接收到音频帧和视频帧后,可以根据相对时间戳对所接收的音频帧和视频帧进行排序。然后,播放设备按照排序对音频帧和视频帧各自进行播放。
然而,由于网络抖动等原因,现有的播放设备在播放音频帧和视频帧时,存在实时性较差的问题。
发明内容
为此,本发明提供一种新的媒体播放方案,有效的解决了上面至少一个问题。
根据本发明的一个方面,提供一种媒体播放方法,适于在媒体播放设备中执行。该媒体播放方法包括以下步骤。接收来自媒体服务器的音频数据。对所接收的音频数据执行解码操作以获取一个或多个音频帧。对所获取的每个音频帧执行静音检测操作,以判断该音频帧是否为静音数据。如果所检测音频帧为静音数据,则舍弃该音频帧。如果所检测音频帧非静音数据,则将该音频帧存放到播放缓冲区中,以便对该播放缓冲区中音频帧执行播放操作。
根据本发明的又一个方面,提供一种媒体播放设备,包括接收单元、音频解码单元和音频播放单元。接收单元适于接收来自网络的音频数据。音频解码单元适于对所接收的音频数据执行解码操作以获取一个或多个音频帧。音频播放单元,适于对所获取的每个音频帧执行静音检测操作,以判断该音频帧是否为静音数据。如果所检测音频帧为静音数据,音频播放单元舍弃该音频帧。如果所检测音频帧非静音数据,音频播放单元将该音频帧存放到播放缓冲区中,以便对播放缓冲区中音频帧执行播放操作。
根据本发明的又一个方面,提供一种音乐教学系统,包括根据本发明的媒体终端、媒体服务器和媒体播放端。媒体终端适于采集音频数据和视频数据。媒体服务器,适于网络传输来自媒体终端的音频数据和视频数据。
根据本发明的媒体播放方案,可以在音频播放延时较长时,通过静音检测操作,消减播放延时以提高播放实时性。而在缓冲长度未超过阈值时,根据本发明的媒体播放方案通过不执行静音检测,从而可以对来自媒体终端的例如乐器演奏等声音进行完整的播放。应当注意,这对于音乐教学等对声音实时性要求较高的流媒体直播方案来说,本发明的媒体播放方案同时考虑到音频播放的实时性和完整性,从而可以极大提升音乐教学的品质。另外,本发明的媒体播放方案,通过对计算当前播放的音频样点的采集时间,进而使得视频帧跟随当前播放音频样点的采集时间进行播放,实现了音视频的高同步播放。这里,根据本发明的媒体播放方案所使用的第一时间戳为音频帧的采集时间,而第二时间戳为视频帧的采集时间。这里,第一和第二时间戳时间基准相同,并且音频帧的采集帧率高于视频帧的采集帧率。这样,根据本发明的媒体播放方案,可以始终保持音视频的高同步播放,从而可以极大提高例如音乐教学等流媒体系统的直播质量和用户体验。另外,根据本发明的媒体播放方案通过在播放缓冲区为空时添加空白帧的方式,可以保证音频播放不会出现卡断的情况,极大提高用户体验度。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示例性音乐教学系统100的框图;
图2示出了根据本发明一些实施例的媒体播放设备200的框图;
图3示出了根据本发明的一些实施例的媒体播放方法300的流程图;以及
图4示出了根据本发明一些实施例的媒体播放方法400的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图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中。根据本发明一个实施例,接收单元对视频数据包进行处理的代码示例如下:
PushVideoStream(ch,dwstamp,m_szBuf,tmp_nLen);
ch:通道名称,根据数据包协议头传输过来的id来匹配通道。
dwstamp:是从AV_Info中剥离出来的第二时间戳,数据类型为__int64
m_szBuf:包含SPS,PPS和视频压缩数据的缓冲
tmp_nLen:视频压缩数据的总长
//此函数把包含第二时间戳的视频数据存放到网络缓冲区
如上所述,网络缓冲区211中存放有音频帧和视频帧。在根据本发明一个实施例中,网络缓冲区211具体可以包括音频缓冲区和视频缓冲区。音频缓冲区适于存放音频帧。视频缓冲区适于存放视频帧。需要说明的是,根据本发明的媒体终端在采集音频和视频时采用相同的时间基准。因此,接收单元210所接收到的音频帧的第一时间戳和视频帧的第二时间戳时间基准相同。这里,音频缓冲区和视频缓冲区都可以被配置为例如环形缓冲。环形缓冲可以存放最新接收(例如20秒)的数据。这样,网络缓冲区211可以始终向音频和视频解码单元提供最新的数据。
音频解码单元220适于对网络缓冲区211中音频帧进行解码操作。经解码的音频帧包括多个音频样点和第一时间戳。在根据本发明一个实施例中,音频解码单元220进行解码操作的代码示例如下:
Ret=GetAACStream(ch,&dwstamp,m_audiostream,&audio_nLen)
视频解码单元240适于对网络缓冲区中视频帧进行解码操作。在根据本发明一个实施例中,视频解码单元240进行解码操作的代码示例如下:
Ret=GetVideoStream(ch,&dwstamp,m_videostream,&video_nLen)
音频播放单元230适于对来自音频解码单元220的音频帧进行播放。在根据本发明一个实施例中,音频播放单元230具有播放缓冲区231。音频播放适于依次从音频解码单元220提取音频帧,例如每次提取一个音频帧。这里,每提取一个音频帧的操作可以称之为一次选定操作。音频播放单元230将每次所选定的音频帧推送到播放缓冲区231中。这里,播放缓冲区231例如为声卡的缓冲区,但不限于此。在每次选定操作中,音频播放单元230适于根据音频帧的第一时间戳进行选定,从而使得音频帧在播放缓冲区231中是按照采集时间排序的。这样,音频播放单元230可以依次对播放缓冲区231中每个音频帧的播放音频样点进行播放。需要说明的是,每个音频帧为根据本发明的媒体终端所采集的例如乐器演奏等内容。为了保持声音的高保真采集,媒体终端没有对音频帧进行静音检测处理(即静音抑制操作,对静音数据不进行网络传输)。这样,在媒体播放设备200中,音频播放单元230可以对音频数据进行高品质的播放。
另外,由于网络抖动等原因,在音频数据播放延时较大时,音频播放单元230可以对播放延时进行消减操作。下面结合根据本发明一个实施例进行示例性说明。音频播放单元230在每次执行选定操作时,还适于检测当前播放缓冲区231的缓冲长度是否超过阈值。这里,缓冲长度是指播放当前缓冲区中数据需要的播放时长,阈值例如为500毫秒。如果播放缓冲区231的缓冲长度小于阈值,则音频播放单元230确定当前音频播放延时在正常范围内,音频播放单元230将所选定的这帧音频帧推送到播放缓冲区231中。如果播放缓冲区230的缓冲长度大于阈值,音频播放单元230会执行静音检测操作,以判断所选定的音频帧是否为静音数据。这里,静音数据是指声音信号能量低于预定门限的数据。静音检测的算法例如为短时能量检测算法,或者短时过零率检测算法。但不限于此,任何已知的静音检测算法都可以应用在本发明的实施方式中。如果所选定的音频帧为静音数据,则音频播放单元230可以舍弃这帧音频帧,并继续执行下一次的选定操作。如果所选定的音频帧非静音数据,音频播放单元230将该音频帧推送到播放缓冲区231中。这样,根据本发明的媒体播放设备200可以在播放延时较长时,通过静音检测操作,消减播放延时以提高播放实时性。而在缓冲长度未超过阈值时,音频播放单元230通过不执行静音检测,从而可以对媒体终端所采集的例如乐器演奏等声音进行完整的播放。应当注意,这对于音乐教学等对声音实时性要求较高的流媒体直播方案来说,本发明的音频播放单元230同时考虑到音频播放的实时性和完整性,从而可以极大提升音乐教学的品质。
另外,音频播放单元230还可以在没有待播放的音频帧(即播放缓冲区为空)时,生成空白帧并推送到播放缓冲区231中。这样音频播放单元230可以进行连续的声音输出,而不会出现卡断现象,从而极大提高用户的体验度。
另外,在播放缓冲区231中缓冲长度达到缓冲区上限时,音频播放单元230可以删除播放缓冲区中一个或多个音频帧。在一个实施例中,播放缓冲区为环形缓冲。环形缓冲例如可以最多存放16帧音频帧,但不限于此。在缓冲长度达到16帧时,音频播放单元230可以删除当前环形缓冲区中最早的一个音频帧。这样,音频播放单元230通过删除音频帧的方式以便继续缓存最新的音频帧,而对播放音频的质量影响很小。
另外,音频播放单元230在确定所检测的音频帧非静音数据,并且在将该音频帧存放到播放缓冲区231之前,还可以根据这个音频帧的第一时间戳和缓冲长度计算当前所播放音频样点的采集时间。在根据本发明一个实施例中,音频播放单元230根据下述公式计算当前播放音频样点的采集时间:
curastamp=dwstamp-inbufferlength*1000/AUDIO_PERSECOND_REAL
其中,AUDIO_PERSECOND_REAL为音频播放单元230的播放速度(单位为byte/s),inbufferlength为播放缓冲区231中数据长度(单元为byte),dwstamp为所选定的音频帧的第一时间戳,curastamp为当前所播放的音频样点的采集时间(最小单位为毫秒)。例如第一时间戳dwstamp为10点00分00秒010毫秒,缓冲长度inbufferlength*1000/AUDIO_PERSECOND_REAL为10毫秒,那么curastamp值为10点00分00秒000毫秒。
如上所述,音频播放单元230可以计算出当前播放的音频样点的采集时间。采集时间可用于视频帧与音频帧的同步播放。具体而言,视频播放单元250可以获取到音频播放单元230所计算的当前播放的音频样点的采集时间。在每次音频播放单元230更新当前所播放的音频样点的采集时间时,视频播放单元250可以检测来自视频解码单元240的视频帧中,是否具有第二时间戳小于或等于该采集时间的视频帧。这样,视频播放单元250可以通过播放所检测到的视频帧,实现视频帧与音频帧的同步播放。需要说明的是,根据本发明的媒体终端所采集的音频帧的生成频率通常高于视频帧的。根据本发明的媒体播放设备在对音频帧和视频帧进行播放时,通过将视频帧跟随当前播放音频样点的方式,可以极大提高音视频数据播放的同步性,从而极大提高用户体验度。
图3示出了根据本发明一些实施例的媒体播放方法300的流程图。方法300适于在根据本发明的媒体播放设备中执行。
如图3所示,方法300始于步骤S310。在步骤S310中,接收来自媒体服务器的音频数据。这里,媒体服务器通常以数据包的方式将音频数据传输到媒体播放设备。音频数据包格式例如为:
TCP_info+AV_Info+AudioData
方法300可以执行步骤S320,对所接收的音频数据执行解码操作以获取一个或多个音频帧。通常,所获取的音频帧可以被依次存放到播放缓冲区中,以便例如声卡等对播放缓冲区中音频帧进行依次播放。这里,每个音频帧为根据本发明的媒体终端所采集的例如乐器演奏等内容。为了保持声音的高保真采集,媒体终端没有对音频数据进行静音检测处理(即没有进行静音抑制操作)。这样,根据本发明的媒体播放设备可以对音频数据进行高品质的播放。
但是,由于网络抖动等原因,对于音频帧的播放可能会造成延时累积。为了在播放过程中消减播放延时,方法300还包括步骤S330,对这个音频帧执行静音检测操作,以判断该音频帧是否为静音数据。这里,静音数据是指声音信号能量低于预定门限的数据。静音检测的算法例如为短时能量检测算法,或者短时过零率检测算法。但不限于此,任何已知的静音检测算法都可以应用在本发明的实施方式中。
如果所检测的音频帧为静音数据,方法300可以执行步骤S340。在步骤S340中,舍弃该音频帧。如果检测的音频帧非静音数据,方法300可以执行步骤S350,将这个音频帧存放到播放缓冲区中。这里,根据本发明的媒体播放方法300具体实施方式已在对图2中媒体播放设备的描述中公开,这里不再赘述。
图4示出了根据本发明一些实施例的媒体播放方法400的流程图。方法400适于在根据本发明的媒体播放设备中执行。
如图4所示,方法400始于步骤S410。在步骤S410中,接收来自媒体服务器的音频数据。这里,媒体服务器通常以数据包的方式将音频数据传输到媒体播放设备。音频数据包格式例如为:
TCP_info+AV_Info+AudioData
方法400可以执行步骤S420,对所接收的音频数据执行解码操作以获取一个或多个音频帧。通常,所获取的音频帧可以被依次存放到播放缓冲区中,以便例如声卡等对播放缓冲区中音频帧进行依次播放。这里,每个音频帧为根据本发明的媒体终端所采集的例如乐器演奏等内容。为了保持声音的高保真采集,媒体终端没有对音频数据进行静音检测处理(即没有进行静音抑制操作)。这样,根据本发明的媒体播放设备可以对音频数据进行高品质的播放。
但是,由于网络抖动等原因,对于音频帧的播放可能会造成延时累积。可选地,在将一帧音频帧存放到播放缓冲区之前,方法还包括步骤S430。在步骤S430中,判断当前所述播放缓冲区的缓冲长度是否超过阈值。缓冲长度为当前播放缓冲区中音频帧所需要的播放时长。阈值例如为500毫秒。如果缓冲长度未超过阈值,则可以不对这个音频帧执行静音检测操作,而是直接存放到播放缓冲区中。如果缓冲长度超过阈值,则方法400可以执行步骤S440,对这个音频帧执行静音检测操作,以判断该音频帧是否为静音数据。这里,静音数据是指声音信号能量低于预定门限的数据。静音检测的算法例如为短时能量检测算法,或者短时过零率检测算法。但不限于此,任何已知的静音检测算法都可以应用在本发明的实施方式中。需要说明的是,步骤S430并不是必需的,例如在网络持续不稳定的情况下,方法400可以直接执行步骤S440,而不用在步骤S440之前执行步骤S430。
如果所检测的音频帧为静音数据,方法400可以执行步骤S450。在步骤S450中,舍弃该音频帧。如果检测的音频帧非静音数据,方法400可以执行步骤S460,将这个音频帧存放到播放缓冲区中。
另外,根据本发明一个实施例,在播放缓冲区的缓冲长度达到该缓冲区的缓存上限时,方法400可以执行步骤S470。在步骤S470中,删除播放缓冲区中一个或者多个音频帧。根据本发明一个实施例,播放缓冲区为环形缓冲。环形缓冲例如可以最多存放16帧音频帧。在缓冲长度达到16帧时,在步骤S470中可以删除当前环形缓冲区中最早的一个音频帧。这样,方法400可以通过删除音频帧的方式以便继续缓存最新的音频帧,而对播放音频的质量影响很小。
另外,根据本发明一个实施例,在播放缓冲区为空时,方法400还可以执行步骤S480。在步骤S480中,生成空白帧并推送到播放缓冲区中。这样根据本发明的方法400可以进行连续的声音输出,而不会出现卡断现象,从而极大提高用户的体验度。
另外,根据本发明一个实施例,在步骤S420中所生成的每个音频帧包括第一时间戳。第一时间戳为其对应的音频帧的采集时间。例如,第一时间戳为音频帧的多个音频样点中第一个的采集时间,但不限于此。在步骤S440中确定所检测的音频帧非静音数据,并且在执行步骤S460之前,方法400还可以执行步骤S490。在步骤S490中,根据该音频帧的第一时间戳和当前播放缓冲区的缓冲长度,计算当前所播放的音频样点的采集时间。方法400还包括步骤S4100。在步骤S4100中,接收来自媒体服务器的视频数据。例如,所接收的一个视频数据包消息格式为:
TCP_info+AV_Info+VideoData
随后,在步骤S4110中,对视频数据执行视频解码操作,以获取一个或多个视频帧。其中每个视频帧包括第二时间戳。第二时间戳为该视频帧的采集时间。
随后,方法400根据步骤S490中所得到的当前所播放音频样点的采集时间,执行步骤S4120。在步骤S4120中,检测是否具有第二时间戳小于或等于所述当前所播放音频样点的采集时间的视频帧,并播放所检测到的视频帧。这样,根据本发明的方法400可以通过视频帧跟随音频样点的方法,实现音视频的同步播放。这里,根据本发明的媒体播放方法400具体实施方式与图2中媒体播放设备的工作方式一致,这里不再赘述。
A9、如A8所述的方法,还包括:接收来自媒体服务器的视频数据;对视频数据执行视频解码操作,以获取一个或多个视频帧,其中每个视频帧包括第二时间戳,第二时间戳为该视频帧的采集时间;以及检测是否具有第二时间戳小于或等于所述当前所播放音频样点的采集时间的视频帧,并播放所检测到的视频帧。
B11、如B10所述的媒体播放设备,在对所获取的每个音频帧执行静音检测操作之前,所述音频播放单元还适于:判断当前所述播放缓冲区的缓冲长度是否超过阈值,如果该缓冲长度未超过阈值,则不执行所述静音检测操作,并直接将这个音频帧存放到所述播放缓冲区中。B12、如B10或B11所述的媒体播放设备,所述音频播放单元还适于:在播放缓冲区的缓冲长度达到该缓冲区的缓存上限时,删除播放缓冲区中一个或者多个音频帧。B13、如B10-B12中任一项所述的媒体播放设备,所述音频播放单元还适于:在检测到所述播放缓冲区为空时,生成并向该播放缓冲区添加空白帧。B14、如B10-B13中任一项所述的媒体播放设备,其中所述静音数据为能量低于预定门限的数据,所述播放单元适于根据下述中至少一种执行静音检测操作:执行短时能量检测算法;和执行短时过零率检测算法。B15、如B10-B14中任一项所述的媒体播放设备,其中所述阈值为500毫秒。B16、如B10-B15中任一项所述的媒体播放设备,其中所述播放缓冲区为环形缓冲。B17、如B10-B16中任一项所述的媒体播放设备,其中,所述执行解码操作所获取的每个音频帧还包括第一时间戳,第一时间戳为该音频帧第一个音频样点的采集时间;以及在确定所检测的音频帧非静音数据时,并且在将该音频帧存放到播放缓冲区之前,所述音频播放单元还适于:根据该音频帧的第一时间戳和当前播放缓冲区的缓冲长度,计算当前所播放的音频样点的采集时间。B18、如B17所述的媒体播放设备,其中,接收单元还适于接收来自媒体服务器的视频数据;以及该媒体播放设备还包括:视频解码单元,适于对视频数据执行视频解码操作,以获取一个或多个视频帧,其中每个视频帧包括第二时间戳,第二时间戳为该视频帧的采集时间;和视频播放单元,适于检测是否具有第二时间戳小于或等于所述当前所播放音频样点的采集时间的视频帧,并播放所检测到的视频帧。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种媒体播放方法,适于在媒体播放设备中执行,该方法包括:
接收来自媒体服务器的音频数据;
对所接收的音频数据执行解码操作以获取一个或多个音频帧;
对所获取的每个音频帧执行静音检测操作,以判断该音频帧是否为静音数据;
如果所检测音频帧为静音数据,则舍弃该音频帧;以及
如果所检测音频帧非静音数据,则将该音频帧存放到播放缓冲区中,以便对该播放缓冲区中音频帧执行播放操作。
2.如权利要求1所述的方法,在对所获取的每个音频帧执行静音检测操作之前,还包括:
判断当前所述播放缓冲区的缓冲长度是否超过阈值,
如果该缓冲长度未超过阈值,则不执行所述静音检测操作,并直接将这个音频帧存放到所述播放缓冲区中。
3.如权利要求1或2所述的方法,还包括:
在播放缓冲区的缓冲长度达到该缓冲区的缓存上限时,删除播放缓冲区中一个或者多个音频帧。
4.如权利要求1-3中任一项所述的方法,还包括:在检测到所述播放缓冲区为空时,生成并向该播放缓冲区添加空白帧。
5.如权利要求1-4中任一项所述的方法,其中所述执行静音检测操作包括:执行短时能量检测算法,和/或执行短时过零率检测算法;
所述静音数据为能量低于预定门限的数据。
6.如权利要求1-5中任一项所述的方法,其中所述阈值为500毫秒。
7.如权利要求1-6中任一项所述的方法,其中所述播放缓冲区为环形缓冲。
8.如权利要求1-7中任一项所述的方法,其中,所述执行解码操作所获取的每个音频帧还包括第一时间戳,第一时间戳为该音频帧第一个音频样点的采集时间,在确定所检测的音频帧非静音数据时,并且在将该音频帧存放到播放缓冲区之前,该方法还包括:
根据该音频帧的第一时间戳和当前播放缓冲区的缓冲长度,计算当前所播放的音频样点的采集时间。
9.一种媒体播放设备,包括:
接收单元,适于接收来自网络的音频数据;
音频解码单元,适于对所接收的音频数据执行解码操作以获取一个或多个音频帧;
音频播放单元,适于对所获取的每个音频帧执行静音检测操作,以判断该音频帧是否为静音数据,
如果所检测音频帧为静音数据,则舍弃该音频帧,以及
如果所检测音频帧非静音数据,则将该音频帧存放到播放缓冲区中,以便对播放缓冲区中音频帧执行播放操作。
10.一种音乐教学系统,包括:
媒体终端,适于采集音频数据和视频数据;
媒体服务器,适于网络传输来自媒体终端的音频数据和视频数据;以及
如权利要求9所述的媒体播放设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510846544.4A CN105429984B (zh) | 2015-11-27 | 2015-11-27 | 媒体播放方法、设备及音乐教学系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510846544.4A CN105429984B (zh) | 2015-11-27 | 2015-11-27 | 媒体播放方法、设备及音乐教学系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105429984A true CN105429984A (zh) | 2016-03-23 |
CN105429984B CN105429984B (zh) | 2019-03-15 |
Family
ID=55507926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510846544.4A Active CN105429984B (zh) | 2015-11-27 | 2015-11-27 | 媒体播放方法、设备及音乐教学系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105429984B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107993679A (zh) * | 2017-11-02 | 2018-05-04 | 广东思派康电子科技有限公司 | 一种嵌入蓝牙耳机的缓冲式mp3音乐播放器的播放方法 |
WO2018120627A1 (zh) * | 2016-12-30 | 2018-07-05 | 华为技术有限公司 | 音频数据的处理方法和装置 |
CN109088856A (zh) * | 2018-07-12 | 2018-12-25 | 中国航空工业集团公司洛阳电光设备研究所 | 基于arinc818协议的视频传输系统的抖动控制方法、装置 |
CN109286857A (zh) * | 2017-07-19 | 2019-01-29 | 成都鼎桥通信技术有限公司 | 多媒体数据播放方法及装置 |
CN109559763A (zh) * | 2017-09-26 | 2019-04-02 | 华为技术有限公司 | 一种实时数字音频信号混音的方法及装置 |
CN110278411A (zh) * | 2019-05-27 | 2019-09-24 | 云南大学 | 一种天文望远镜图像远程监视系统及方法 |
CN114005469A (zh) * | 2021-10-20 | 2022-02-01 | 广州市网星信息技术有限公司 | 一种自动跳过静音片段的音频播放方法及系统 |
CN114007064A (zh) * | 2021-11-01 | 2022-02-01 | 腾讯科技(深圳)有限公司 | 特效同步评估方法、装置、设备及存储介质、程序产品 |
CN114080816A (zh) * | 2019-07-17 | 2022-02-22 | 杜比国际公司 | 用于内容传递的时延管理 |
WO2023078262A1 (zh) * | 2021-11-02 | 2023-05-11 | 维沃移动通信有限公司 | 应用的处理方法、装置和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021857A (zh) * | 2006-10-20 | 2007-08-22 | 鲍东山 | 基于内容分析的视频搜索系统 |
CN101119323A (zh) * | 2007-09-21 | 2008-02-06 | 腾讯科技(深圳)有限公司 | 解决网络抖动的方法及装置 |
CN102724584A (zh) * | 2012-06-18 | 2012-10-10 | Tcl集团股份有限公司 | 网络视频在线播放方法、视频在线播放装置及智能电视 |
CN103559882A (zh) * | 2013-10-14 | 2014-02-05 | 华南理工大学 | 一种基于说话人分割的会议主持人语音提取方法 |
CN104021785A (zh) * | 2014-05-28 | 2014-09-03 | 华南理工大学 | 一种提取会议中最重要嘉宾语音的方法 |
-
2015
- 2015-11-27 CN CN201510846544.4A patent/CN105429984B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021857A (zh) * | 2006-10-20 | 2007-08-22 | 鲍东山 | 基于内容分析的视频搜索系统 |
CN101119323A (zh) * | 2007-09-21 | 2008-02-06 | 腾讯科技(深圳)有限公司 | 解决网络抖动的方法及装置 |
CN102724584A (zh) * | 2012-06-18 | 2012-10-10 | Tcl集团股份有限公司 | 网络视频在线播放方法、视频在线播放装置及智能电视 |
CN103559882A (zh) * | 2013-10-14 | 2014-02-05 | 华南理工大学 | 一种基于说话人分割的会议主持人语音提取方法 |
CN104021785A (zh) * | 2014-05-28 | 2014-09-03 | 华南理工大学 | 一种提取会议中最重要嘉宾语音的方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018120627A1 (zh) * | 2016-12-30 | 2018-07-05 | 华为技术有限公司 | 音频数据的处理方法和装置 |
CN108605162A (zh) * | 2016-12-30 | 2018-09-28 | 华为技术有限公司 | 音频数据的处理方法和装置 |
US10979469B2 (en) | 2016-12-30 | 2021-04-13 | Huawei Technologies Co., Ltd. | Audio data processing method and apparatus |
CN109286857B (zh) * | 2017-07-19 | 2021-05-18 | 成都鼎桥通信技术有限公司 | 多媒体数据播放方法及装置 |
CN109286857A (zh) * | 2017-07-19 | 2019-01-29 | 成都鼎桥通信技术有限公司 | 多媒体数据播放方法及装置 |
CN109559763A (zh) * | 2017-09-26 | 2019-04-02 | 华为技术有限公司 | 一种实时数字音频信号混音的方法及装置 |
CN107993679A (zh) * | 2017-11-02 | 2018-05-04 | 广东思派康电子科技有限公司 | 一种嵌入蓝牙耳机的缓冲式mp3音乐播放器的播放方法 |
CN109088856A (zh) * | 2018-07-12 | 2018-12-25 | 中国航空工业集团公司洛阳电光设备研究所 | 基于arinc818协议的视频传输系统的抖动控制方法、装置 |
CN110278411A (zh) * | 2019-05-27 | 2019-09-24 | 云南大学 | 一种天文望远镜图像远程监视系统及方法 |
CN114080816A (zh) * | 2019-07-17 | 2022-02-22 | 杜比国际公司 | 用于内容传递的时延管理 |
CN114005469A (zh) * | 2021-10-20 | 2022-02-01 | 广州市网星信息技术有限公司 | 一种自动跳过静音片段的音频播放方法及系统 |
CN114007064A (zh) * | 2021-11-01 | 2022-02-01 | 腾讯科技(深圳)有限公司 | 特效同步评估方法、装置、设备及存储介质、程序产品 |
WO2023078262A1 (zh) * | 2021-11-02 | 2023-05-11 | 维沃移动通信有限公司 | 应用的处理方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105429984B (zh) | 2019-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105429984A (zh) | 媒体播放方法、设备及音乐教学系统 | |
CN105516090A (zh) | 媒体播放方法、设备及音乐教学系统 | |
CN104113777B (zh) | 一种音频流解码方法及装置 | |
US20190028746A1 (en) | Synchronous and Multi-Sourced Audio and Video Broadcast | |
CN105430537A (zh) | 对多路数据进行合成的方法、服务器及音乐教学系统 | |
WO2017148442A1 (zh) | 一种音视频处理方法和装置、计算机存储介质 | |
CN1696923A (zh) | 网络上的多种媒体的同步合成存储发布系统及操作该系统的方法 | |
CN102811368A (zh) | 一种移动视频直播系统 | |
CN105429983B (zh) | 采集媒体数据的方法、媒体终端及音乐教学系统 | |
CN105099949A (zh) | 基于对延迟抖动和对话动态的监视的抖动缓冲器控制 | |
CN103888815A (zh) | 一种音视频流实时分离处理及同步的方法及其系统 | |
KR102137858B1 (ko) | 송신 장치, 송신 방법, 수신 장치, 수신 방법 및 프로그램 | |
WO2004086765A1 (ja) | データ送信装置 | |
CN101540871B (zh) | 基于电路域可视电话同步录制对端声音图像的方法和终端 | |
CN102833524B (zh) | 一种对本地音频及呼叫方音频同时录像的控制方法 | |
CN105451073B (zh) | Mp4视频源的传送方法和装置 | |
CN107205131A (zh) | 一种实现视频通话的方法、装置和系统 | |
JP2015012557A (ja) | 映像音声処理装置、映像音声処理システム、映像音声同期方法、プログラム | |
CN103501457B (zh) | 一种节目播放的方法及设备 | |
CN106782598A (zh) | 电视画面和外设声音同步控制方法和装置 | |
KR100931344B1 (ko) | Vod 스트리밍 서비스를 제공하는 방법과 그를 위한시스템, 서버 및 사용자 단말기 | |
AU2015322832B2 (en) | Information processing device and information processing method | |
WO2015064384A1 (ja) | 送信装置、送信方法、受信装置、及び、受信方法 | |
KR101061723B1 (ko) | 사운드 신호의 실시간 보간 장치 및 방법 | |
JP2006229618A (ja) | 映像通信システム、映像通信装置、プログラム、及び映像通信方法 |
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 |