CN105429983B - 采集媒体数据的方法、媒体终端及音乐教学*** - Google Patents
采集媒体数据的方法、媒体终端及音乐教学*** Download PDFInfo
- Publication number
- CN105429983B CN105429983B CN201510846324.1A CN201510846324A CN105429983B CN 105429983 B CN105429983 B CN 105429983B CN 201510846324 A CN201510846324 A CN 201510846324A CN 105429983 B CN105429983 B CN 105429983B
- Authority
- CN
- China
- Prior art keywords
- frame
- audio
- sent
- buffering area
- buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 239000000872 buffer Substances 0.000 claims abstract description 110
- 230000003139 buffering effect Effects 0.000 claims abstract description 87
- 230000005540 biological transmission Effects 0.000 claims abstract description 69
- 238000012546 transfer Methods 0.000 claims abstract description 6
- 238000001514 detection method Methods 0.000 claims description 16
- 239000000284 extract Substances 0.000 abstract description 4
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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
-
- 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 or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—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 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 or rendering scenes according to encoded video stream 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了采集媒体数据的方法、媒体终端及音乐教学***。媒体终端包括视频采集单元、视频缓冲区、音频采集单元、音频缓冲区、发送缓冲区、传输单元和控制单元。视频采集单元采集图像并编码为视频帧。视频缓冲区适于存放视频帧。音频采集单元采集声音并编码为音频帧。音频缓冲区适于存放音频帧。发送缓冲区存放待发送的数据帧。每个数据帧为视频帧或音频帧。传输单元适于将待发送的数据帧传输到媒体服务器。控制单元适于检测音频缓冲区并将其中的音频帧推送到发送缓冲区中。在音频缓冲区为空时,如果待发送数据帧的数量未超过阈值且视频缓冲区不为空,控制单元从视频缓冲区提取视频帧并推送到发送缓冲区。
Description
技术领域
本发明涉及通信领域,尤其涉及采集媒体数据的方法、媒体终端及音乐教学***。
背景技术
目前,在例如视频会议或网络直播等实时通信方案中,采集媒体数据的终端可以采集视频帧和音频帧等媒体数据,并向播放端传输媒体数据。例如可以将视频帧和音频帧进行一起封装后通网络传输。或者,终端将视频帧和音频帧各自进行封装并进行传输。
然而,现有的网络状况是复杂多变的,例如存在网络抖动、间歇中断等问题。采集终端在通过网络发送音频和视频数据时,存在网络延时、网络阻塞等问题。因此,媒体播放端从采集终端获取音频和视频数据时,面临卡断不流畅的问题。
发明内容
为此,本发明提供一种新的采集媒体数据的方案,有效的解决了上面至少一个问题。
根据本发明的一个方面,提供一种媒体终端,包括视频采集单元、视频缓冲区、音频采集单元、音频缓冲区、发送缓冲区、传输单元和控制单元。视频采集单元适于采集图像并编码为视频帧。视频缓冲区适于存放来自视频采集单元的视频帧。音频采集单元适于采集声音并编码为音频帧。音频缓冲区适于存放来自音频采集单元的音频帧。发送缓冲区适于存放一个或多个待发送的数据帧。其中每个待发送数据帧为来自视频缓冲区的视频帧或来自音频缓冲区的音频帧。传输单元适于将一个或多个待发送的数据帧传输到媒体服务器。控制单元适于检测音频缓冲区并将其中的音频帧推送到发送缓冲区中,并在音频缓冲区为空时,判断是否发送缓冲区中待发送数据帧的数量未超过阈值且视频缓冲区不为空。如果待发送数据帧的数量未超过阈值且视频缓冲区不为空,控制单元从视频缓冲区中提取一帧视频帧并推送到发送缓冲区中。
根据本发明的又一个方面,提供一种采集媒体数据的方法。该方法适于在媒体终端中执行。该媒体终端包括发送缓冲区。发送缓冲区适于存放一个或多个待发送的数据帧。其中每个待发送的数据帧为视频帧或音频帧。该方法包括以下步骤。采集图像并编码为视频帧,并将该视频帧存放到视频缓冲区中。采集声音并编码为音频帧,并将该音频帧存放音频缓冲区中。检测音频缓冲区并将其中的音频帧推送到发送缓冲区中。如果音频缓冲区为空,则判断是否发送缓冲区中待发送数据帧的数量未超过阈值且视频缓冲区不为空。如果待发送的数据帧的数量未超过阈值且视频缓冲区不为空,则从该视频缓冲区中提取一帧视频帧并推送到发送缓冲区中。将所述一个或多个待发送的数据帧传输到媒体服务器。
根据本发明的又一个方面,提供一种音乐教学***,包括根据本发明的媒体终端、媒体服务器和媒体播放端。媒体服务器适于接收媒体终端发送的音频帧和视频帧。媒体播放端适于从媒体服务器获取并播放音频帧和视频帧。
根据本发明的媒体数据采集方案,可以优先将音频缓冲区中音频帧推送到发送缓冲区,而在音频缓冲区为空并且发送缓冲区中数据帧的数量没有超过阈值时,才会将视频缓冲区中视频帧推送到发送缓冲区。这样,根据本发明的媒体数据采集方案可以始终优先对音频帧进行传输,而在传输音频帧的间隙对视频帧进行传输。特别是,在网络带宽较低时(即发送缓冲区中数据帧的数量超过阈值),根据本发明的媒体数据采集方案可以停止向发送缓冲区推送视频帧,而正常地将音频缓冲区中音频帧推送到发送缓冲区中。这样的工作方式可以在网络带宽较低时有效减小传输单元需要发送的数据量,从而有效的保证音频帧的实时传输。换言之,根据本发明的媒体数据采集方案实现了对音频帧的优先传输,从而避免了媒体播放端所播放声音的卡断问题。应当注意,在音乐教学等声音重要性较高的场合中,根据本发明的媒体数据采集方案保证声音数据的实时传输,并且媒体播放端可以播放连续、不失真的音频数据,从而极大提高用户的体验度。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图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都可以被实现为媒体终端和媒体播放终端。这里,媒体数据例如包括演奏乐器的指法、气息、乐器声音和指导文案等教学内容,但不限于此。
通常,音乐教学***100面临传输带宽不稳定的问题,例如网络抖动、网络间歇中断等情况。然而,高质量的音乐教学对媒体数据的实时性、同步性和流畅性等方面有较高的要求。本发明针对音乐教学***的采集媒体数据环节,提出了一种新的媒体终端。下面结合图2对音乐教学***中的媒体终端进行进一步的示例性说明。当然,媒体终端可以是学生客户端或者老师客户端,为了简化描述,下文中不再区分媒体终端的具体类型。同样,学生客户端110和老师客户端130都可以被实现为媒体播放端。需要说明的是,根据本发明的媒体终端可以被应用在音乐教学***中,但并不限于此。例如,根据本发明的媒体终端也可以应用在例如视频会议、比赛直播等实时流媒体方案中。
图2示出了根据本发明一些实施例的媒体终端200的框图。这里,计算设备可以被配置为媒体终端200。而计算设备可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机,但不限于此。
如图2所示,媒体终端200包括视频采集单元210、视频缓冲区220、音频采集单元230、音频缓冲区240、发送缓冲区250、传输单元260和控制单元270。
视频采集单元210适于采集图像并编码为视频帧。例如,视频采集单元210对学生演奏乐器的场景进行拍摄,以获取视频帧序列。根据本发明一个实施例,视频采集单元210包括摄像头211和编码单元212。摄像头211适于采集原始图像帧。原始图像帧的采集参数例如为640*480尺寸和25帧/秒,但不限于此。另外,视频采集单元210还可以在每捕获一帧原始图像帧时,记录当前的时间值作为捕获该原始图像帧的第一时间戳。根据本发明一个实施例,原始图像帧的格式示例为:
{dwstamp videodata}
其中,dwstamp为第一时间戳,videodata为YUV420格式的图像帧。
编码单元212适于对原始图像帧进行编码。例如,编码单元212可以对原始图像帧进行H.264(由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准)格式的编码。编码单元212的编码参数包括完整画面组(GOP)。GOP的长度例如100帧,即一个图像组具有100帧视频帧。这里,GOP以I帧开始,随后跟随若干P帧。在相邻的P帧间还具有B帧。例如,一个GOP的部分序列为I P B P B P P P P B P。其中,I帧为帧内编码帧,包含了完整图像信息,并且在不参考任何附加信息来重建图像。P帧为前向预测编码帧,由在它前面的P帧或者I帧预测而来。B帧为双向预测的压缩帧。在将图像帧压缩成B帧时,编码单元212根据相邻的前一帧、本帧以及后一帧数据的不同点来压缩本帧。编码单元212的编码参数还可以包括编码帧率和编码尺寸,但不限于此。根据本发明一个实施例,编码单元212执行编码操作的代码示例如下:
Ret=CLDC_Open(width,height,bitrate,mode);
width:视频压缩的宽度
height:视频压缩的高度
bitrate:视频压缩的目标比特率
mode:视频压缩模式控制
//图像压缩引擎初始化
Ret=CLDC_Encode(pBuf,dwbase,m_pVideoBuffer,nEncoderLen);
pBuf:采集的图像数据缓冲
dwbase:原始图像数据的长度
m_pVideoBuffer:图像压缩的缓冲
nEncoderLen:图像压缩后的长度
//图像编码后产生包含SPS和PPS的H264图像码流
Ret=CLDC_Close();
//图像编码引擎关闭
视频缓冲区220适于存放视频采集单元210所生成的视频帧。这里,视频缓冲区220例如为环形缓冲区。例如,视频缓冲区220可以始终存储最新生成的20帧数据。
音频采集单元230适于采集声音并编码为音频帧。在根据本发明一个实施例中,音频采集单元230可以对所采集的声音进行ACC(Advanced Audio Coding,高级音频编码)格式的编码,生成码率为192kbps。这里,音频采集单元230可以采集乐器演奏时的音乐和气息,但不限于此。在根据本发明一个实施例中,音频采集单元230进行音频采集和编码操作的相关代码示例如下:
int nSamples=AUDIO_SAMPLERATE; //音频采样率
int nChannels=1; //声道数
int nBits=16; //音频采样的位数
int nAudioBitrate=192000; //音频输出的比特率
int nRet=0;
nRet=m_pFaacCodec->Open(nSamples,nChannels,nBits,nAudioBitrate);
//设置音频压缩参数,并打开音频压缩器
nCodecRet=m_pFaacCodec->Encode(pBuf,nLen,streamabuffer,nEncodeLen);
pBuf:原始的音频数据
nLen:音频数据的长度
streamabuffer:编码输出的缓冲
nEncodeLen:编码后的数据长度
//进行音频编码,编码后的数据为[ADTS头]+[音频压缩数据]
nRet=m_pFaacCodec->Close();
//音频编码结束
另外,音频采集单元230还可以捕获所采集音频帧的时间值,并记录为第二时间戳。每个音频帧对应的第二时间戳例如为该帧第一个音频采样点的采集时间。
音频缓冲区240适于存放音频采集单元230所生成的音频帧。这里,音频缓冲区240例如为环形缓冲区。每帧音频帧还可以包括与其对应的第二时间戳。这样,媒体播放端在获取到媒体终端200传输的音频帧和视频帧时,可以根据第一时间戳和第二时间戳对音频帧和视频帧进行同步处理。
发送缓冲区250适于存储一个或多个待发送的数据帧。其中每个待发送的数据帧为来自视频缓冲区220的视频帧或者来自音频缓冲区240的音频帧。
传输单元260适于将发送缓冲区250中待发送的数据帧依次传输到媒体服务器。这样,媒体服务器可以向媒体播放端传输待发送的数据帧。媒体播放端接收并播放视频数据和音频数据。
如上所述,发送缓冲区250中存放有等待传输单元260传输的数据帧。控制单元270适于从音频缓冲区220和视频缓冲区240提取数据帧并推送到发送缓冲区250。一般而言,在例如音乐教学等流媒体***中,声音的重要性要高于视频信息等数据。控制单元270在每次执行推送操作时,对音频缓冲区220进行优先检测。一种情况是,音频缓冲区240具有音频帧,控制单元270提取一帧音频帧推送到发送缓冲区250。另一种情况是,控制单元270检测到音频缓冲区240为空。换言之,控制单元270执行本次推送操作时音频缓冲区240没有需要发送的音频帧。控制单元270继续检测视频帧缓冲区220是否为空和检测发送缓冲区250中待发送的数据帧的数量是否超过阈值。阈值例如为5。这里,之所以要检测发送缓冲区250中数据帧是否超过阈值,是为了通过发送缓冲区250中数据帧数量判断当前传输单元260是否处于阻塞状态(即网络异常)。换言之,传输单元260在未处于阻塞状态时,可以及时将发送缓冲区250中数据帧进行网络传输。那么,发送缓冲区250不会积累有超过阈值的数据帧。反之,传输单元260在处于阻塞状态时,不能及时将发送缓冲区250中数据帧进行网络传输。发送缓冲区250中积累的数据帧的数量会超过阈值。需要说明的是,本发明对检测视频缓冲区220和检测发送缓冲区250的顺序不做过多限定。在一个实施例中,控制单元270首先检测视频缓冲区220是否为空,并在视频缓冲区220为空时不再检测发送缓冲区250中数据帧数据是否超阈值。换言之,如果视频缓冲区220为空,则结束本次推送操作。这里,两次相邻推送操作的时间间隔例如为10毫秒。另外,如果视频缓冲区220不为空,控制单元270检测发送缓冲区250中数据帧数据量是否超阈值。在又一个实施例中,控制单元270先检测发送缓冲区250,并在数据帧数量未超过阈值时,检测视频缓冲区220是否为空。在根据本发明一个实施中,控制单元270工作过程的代码示例如下:
如上所述,控制单元270在检测到视频缓冲区220不为空且待发送的数据帧数量未超过阈值时,从视频缓冲区220提取一帧视频帧并推送到发送缓冲区250。综上,根据本发明的控制单元270可以优先将音频缓冲区240中音频帧推送到发送缓冲区250,而在音频缓冲区240为空并且发送缓冲区中数据帧的数量没有超过阈值时,才会将视频缓冲区220中视频帧推送到发送缓冲区250。这样,根据本发明的媒体终端200可以始终优先对音频帧进行传输,而在传输音频帧的间隙对视频帧进行传输。特别是,在网络带宽较低时(即发送缓冲区250中数据帧的数量超过阈值),根据本发明的媒体终端200可以停止向发送缓冲区250推送视频帧,而正常地将音频缓冲区240中音频帧推送到发送缓冲区250中。这样的工作方式可以在网络带宽较低时有效减小传输单元260需要发送的数据量,从而有效的保证音频帧的实时传输。换言之,根据本发明的媒体终端200实现了对音频帧的优先传输,从而避免了媒体播放端所播放声音的卡断问题。应当注意,在音乐教学等声音重要性较高的场合中,根据本发明的媒体终端保证声音数据的实时传输,进而媒体播放端可以播放播放连续、不失真的音频数据。
另外,在发送缓冲区250中数据帧的数量大于阈值时,控制单元270确认当前网络异常。控制单元270还适于计算传输单元260对发送缓冲区中视频帧的发送码率,以便视频采集单元210根据该发送码率对视频帧的生成码率进行调节。根据本发明一个实施例,控制单元270可以统计预定时间(例如2秒)内,传输单元对发送缓冲区中视频帧的发送数量,进而计算发送码率。随后,视频采集单元210可以根据发送码率对图像采集参数和编码参数进行调节,以便调节视频帧的生成码率。例如,视频采集单元210可以对采集原始图像的尺寸(分辨率)或者采集帧率进行调节。又例如,视频采集单元220可以对对原始图像帧进行编码操作时的编码参数进行调节。编码参数例如包括编码帧率、生成视频帧的编码尺寸等。这样,视频采集单元210在调节生成码率后,使得生成码率与传输单元260对视频帧的发送码率相匹配。进一步,传输单元260可以对视频帧进行实时发送,并有效减小了发送缓冲区250中数据帧数量超过阈值的情况出现,并且避免了由于视频缓冲区220中视频帧码率过高而不能被及时传输的问题。另外,由于视频采集单元可以对编码帧率进行调节,使得传输单元260所传输的视频帧的序列在采集时间上是均匀的。这样,媒体播放端避免了所播放的视频帧延时过大和画面跳跃的问题。
图3示出了根据本发明一些实施例的采集媒体数据的方法300的流程图。方法300适于在根据本发明的媒体终端中执行。
如图3所示,方法300始于步骤S310。在步骤S310中,采集声音并编码为音频帧,并将该音频帧存放到音频缓冲区中。方法300还可以包括步骤S320,采集图像并编码为视频帧,并将该视频帧存放到视频缓冲区中。这里,音频缓冲区和视频缓冲区例如是环形缓冲。另外,在步骤S320中,还可以记录捕获到视频帧对应的原始图像的当前时间,作为第一时间戳。每个视频帧还可以包括对应的第一时间戳。在步骤S310中,还可以记录音频帧的采集时间,作为第二时间戳。这里第二时间戳例如为音频帧第一个采样点的时间戳。音频帧还可以包括第二时间戳。这样媒体播放端在获取到媒体终端200传输的音频帧和视频帧时,可以根据第一时间戳和第二时间戳对音频帧和视频帧进行同步处理。
根据本发明的媒体终端包括发送缓冲区。发送缓冲区适于存放一个或多个待发送的数据帧。每个待发送的数据帧为来自视频缓冲区的视频帧或来自音频缓冲区的音频帧。对于存放到音频缓冲区中的音频帧和存放在视频缓冲区中的视频帧,方法300通过执行步骤S330、S340和S350对音频帧和视频帧的网络传输进行控制。在步骤S330中,检测音频缓冲区并将其中的音频帧推送到发送缓冲区中。另外,如果在步骤S330中检测到音频缓冲区为空,则方法300执行步骤S340。在步骤S340中,判断是否发送缓冲区中待发送数据帧的数量未超过阈值且视频缓冲区不为空。具体而言,根据本发明的一个实施例,在步骤S340中,首先检测视频缓冲区是否为空。如果视频缓冲区为空,则当前没有需要发送的视频帧,方法300继续执行步骤S330。如果视频帧不为空,则继续检测发送缓冲区中待发送的数据帧的数量是否超过阈值。如果,待发送数据帧数量超过阈值,则说明当前传输网络阻塞。为了优先传输音频帧,则不会将视频帧推送到发送缓冲区,而是继续执行步骤S330。根据本发明又一个实施例,在步骤S340中,首先检测当前发送缓冲区中待发送的数据帧的数量是否超过阈值。如果超过阈值,则不再检测视频缓冲区,而是继续执行步骤S330。
另外,如果在步骤S340中,检测到待发送的数据帧的数量未超过阈值,并且视频缓冲区不为空,则执行步骤S350。在步骤S350中,从视频缓冲区中提取一帧视频帧并推送到发送缓冲区。
如上所述,根据本发明的方法300适于通过执行步骤S310和S320来生成音频帧和视频帧,并且通过执行步骤S330、S340和S350对所要发送的音频帧和视频帧进行选择,进而将待发送的数据帧存放到发送缓冲区中。对于发送缓冲区中数据帧,方法300通过执行步骤S360来进行网络传输。在步骤S360中,将发送缓冲区中待发送的数据帧传输到媒体服务器。根据本发明的方法300更具体的实施方式与图2中媒体终端200的工作方式一致,这里不再赘述。
A10、如A8或A9所述的方法,其中,所述视频缓冲区、所述音频缓冲区和所述发送缓冲区为环形缓冲。A11、如A8-A10中任一项所述的方法,其中,所述判断是否发送缓冲区中待发送数据帧的数量未超过阈值且视频缓冲区不为空的步骤包括:检测视频缓冲区是否为空,如果不为空,继续检测所述发送缓冲区中待发送数据帧的数量是否超过阈值。A12、如A8-A11中任一项所述的方法,其中,所述判断是否发送缓冲区中待发送数据帧的数量未超过阈值且视频缓冲区不为空的步骤包括:检测所述发送缓冲区中待发送数据帧的数量是否超过阈值,并在未超过阈值时,检测视频缓冲区是否为空。A13、如A8-A12中任一项所述的方法,其中,所述视频帧包括第一时间戳,该第一时间戳为该视频帧对应的图像的捕获时间值;所述音频帧包括第二时间戳,该第二时间戳为该音频帧对应的声音的捕获时间值。A14、如A8-A13中任一项所述的方法,其中所述阈值为5。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机***的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (13)
1.一种媒体终端,包括:
视频采集单元,适于采集图像并编码为视频帧;
视频缓冲区,适于存放来自所述视频采集单元的视频帧;
音频采集单元,适于采集声音并编码为音频帧;
音频缓冲区,适于存放来自所述音频采集单元的音频帧;
发送缓冲区,适于存放一个或多个待发送的数据帧,其中每个待发送数据帧为来自所述视频缓冲区的视频帧或来自所述音频缓冲区的音频帧;
传输单元,适于将所述一个或多个待发送的数据帧传输到媒体服务器;以及
控制单元,适于检测音频缓冲区并将其中的音频帧推送到发送缓冲区中,并在音频缓冲区为空时,判断是否发送缓冲区中待发送数据帧的数量未超过阈值且视频缓冲区不为空,
如果待发送数据帧的数量未超过阈值且视频缓冲区不为空,则从该视频缓冲区中提取一帧视频帧并推送到发送缓冲区中;
其中,所述控制单元还适于在检测到发送缓冲区中待发送数据帧的数量大于阈值时,检测传输单元对视频帧的发送码率,并根据该发送码率生成码率调整参数;以及
所述视频采集单元还适于根据该码率调整参数调节视频帧的生成码率。
2.如权利要求1所述的媒体终端,其中,所述视频缓冲区、所述音频缓冲区和所述发送缓冲区为环形缓冲。
3.如权利要求1或2所述的媒体终端,其中,所述控制单元适于根据下述方式判断是否发送缓冲区中待发送数据帧的数量未超过阈值且视频缓冲区不为空:
检测视频缓冲区是否为空,如果不为空,继续检测所述发送缓冲区中待发送数据帧的数量是否超过阈值。
4.如权利要求1或2所述的媒体终端,其中,所述控制单元适于根据下述方式判断是否发送缓冲区中待发送数据帧的数量未超过阈值且视频缓冲区不为空:
检测所述发送缓冲区中待发送数据帧的数量是否超过阈值,并在未超过阈值时,检测视频缓冲区是否为空。
5.如权利要求1或2所述的媒体终端,其中,
所述视频帧包括第一时间戳,该第一时间戳为该视频帧对应的图像的捕获时间值;
所述音频帧包括第二时间戳,该第二时间戳为该音频帧对应的声音的捕获时间值。
6.如权利要求1或2所述的媒体终端,其中,所述阈值为5。
7.一种采集媒体数据的方法,适于在媒体终端中执行,该媒体终端包括发送缓冲区,适于存放一个或多个待发送的数据帧,其中每个待发送的数据帧为视频帧或音频帧,该方法包括:
采集图像并编码为视频帧,并将该视频帧存放到视频缓冲区中;
采集声音并编码为音频帧,并将该音频帧存放音频缓冲区中;
检测音频缓冲区并将其中的音频帧推送到发送缓冲区中;
如果音频缓冲区为空,则判断是否发送缓冲区中待发送数据帧的数量未超过阈值且视频缓冲区不为空,
如果待发送的数据帧的数量未超过阈值且视频缓冲区不为空,则从该视频缓冲区中提取一帧视频帧并推送到发送缓冲区中;
在检测到发送缓冲区中待发送的数据帧的数量大于阈值时,检测传输单元对视频帧的发送码率,并根据该发送码率生成码率调整参数;
根据该码率调整参数调节视频帧的生成码率;以及
将所述一个或多个待发送的数据帧传输到媒体服务器。
8.如权利要求7所述的方法,其中,所述视频缓冲区、所述音频缓冲区和所述发送缓冲区为环形缓冲。
9.如权利要求7或8所述的方法,其中,所述判断是否发送缓冲区中待发送数据帧的数量未超过阈值且视频缓冲区不为空的步骤包括:
检测视频缓冲区是否为空,如果不为空,继续检测所述发送缓冲区中待发送数据帧的数量是否超过阈值。
10.如权利要求7或8所述的方法,其中,所述判断是否发送缓冲区中待发送数据帧的数量未超过阈值且视频缓冲区不为空的步骤包括:
检测所述发送缓冲区中待发送数据帧的数量是否超过阈值,并在未超过阈值时,检测视频缓冲区是否为空。
11.如权利要求7或8所述的方法,其中,
所述视频帧包括第一时间戳,该第一时间戳为该视频帧对应的图像的捕获时间值;
所述音频帧包括第二时间戳,该第二时间戳为该音频帧对应的声音的捕获时间值。
12.如权利要求7或8所述的方法,其中所述阈值为5。
13.一种音乐教学***,包括:
如权利要求1-6中任一项所述的媒体终端;
媒体服务器,适于接收所述媒体终端发送的音频帧和视频帧;以及
媒体播放端,适于从该媒体服务器获取并播放所述音频帧和视频帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510846324.1A CN105429983B (zh) | 2015-11-27 | 2015-11-27 | 采集媒体数据的方法、媒体终端及音乐教学*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510846324.1A CN105429983B (zh) | 2015-11-27 | 2015-11-27 | 采集媒体数据的方法、媒体终端及音乐教学*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105429983A CN105429983A (zh) | 2016-03-23 |
CN105429983B true CN105429983B (zh) | 2018-09-14 |
Family
ID=55507925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510846324.1A Active CN105429983B (zh) | 2015-11-27 | 2015-11-27 | 采集媒体数据的方法、媒体终端及音乐教学*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105429983B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106791575B (zh) * | 2016-12-22 | 2019-11-15 | 上海寰视网络科技有限公司 | 一种数据发送的控制方法及设备 |
CN107566769B (zh) * | 2017-09-27 | 2019-12-03 | 维沃移动通信有限公司 | 一种视频录制方法及移动终端 |
CN110535810A (zh) * | 2018-05-25 | 2019-12-03 | 视联动力信息技术股份有限公司 | 一种视频数据的处理方法和终端 |
CN109361945A (zh) * | 2018-10-18 | 2019-02-19 | 广州市保伦电子有限公司 | 一种快速传输及同步的会议视听***及其控制方法 |
CN111182220A (zh) * | 2020-01-09 | 2020-05-19 | 西安万像电子科技有限公司 | 图像处理装置、远端设备及通信*** |
CN111585684B (zh) * | 2020-05-14 | 2021-08-10 | 武汉大学 | 面向联网监控视频分析的多路摄像头时间对齐方法与*** |
CN112689160B (zh) * | 2020-11-27 | 2022-12-09 | 烟台艾睿光电科技有限公司 | 一种应用于图像采集设备的视频传输方法及装置 |
CN113131972B (zh) * | 2021-04-13 | 2022-04-15 | Oppo广东移动通信有限公司 | 接收和发送音频数据包的方法、装置、电子设备及存储介质 |
CN113905266B (zh) * | 2021-10-11 | 2024-04-30 | 杭州萤石软件有限公司 | 音视频数据的处理方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1481547A (zh) * | 2000-12-15 | 2004-03-10 | ���˹���Ѷ��� | 音频信号编码 |
CN1744592A (zh) * | 2005-09-29 | 2006-03-08 | 西安交通大学 | 多源流媒体传输QoS控制方法 |
CN101030938A (zh) * | 2007-02-05 | 2007-09-05 | 北京大学 | QoS自适应的P2P流媒体数据组织与传输***及方法 |
CN101340590A (zh) * | 2008-08-14 | 2009-01-07 | 北京创毅视讯科技有限公司 | 复用装置和复用方法 |
CN101479686A (zh) * | 2006-06-27 | 2009-07-08 | 皇家飞利浦电子股份有限公司 | 用于管理多个数据处理单元的功率消耗的设备和方法 |
CN102223516A (zh) * | 2010-04-14 | 2011-10-19 | 奥多比公司 | 连接的媒体通信设备间的媒体质量增强 |
-
2015
- 2015-11-27 CN CN201510846324.1A patent/CN105429983B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1481547A (zh) * | 2000-12-15 | 2004-03-10 | ���˹���Ѷ��� | 音频信号编码 |
CN1744592A (zh) * | 2005-09-29 | 2006-03-08 | 西安交通大学 | 多源流媒体传输QoS控制方法 |
CN101479686A (zh) * | 2006-06-27 | 2009-07-08 | 皇家飞利浦电子股份有限公司 | 用于管理多个数据处理单元的功率消耗的设备和方法 |
CN101030938A (zh) * | 2007-02-05 | 2007-09-05 | 北京大学 | QoS自适应的P2P流媒体数据组织与传输***及方法 |
CN101340590A (zh) * | 2008-08-14 | 2009-01-07 | 北京创毅视讯科技有限公司 | 复用装置和复用方法 |
CN102223516A (zh) * | 2010-04-14 | 2011-10-19 | 奥多比公司 | 连接的媒体通信设备间的媒体质量增强 |
Also Published As
Publication number | Publication date |
---|---|
CN105429983A (zh) | 2016-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105429983B (zh) | 采集媒体数据的方法、媒体终端及音乐教学*** | |
WO2016150317A1 (zh) | 直播视频的合成方法、装置及*** | |
KR101453239B1 (ko) | 인코딩된 비디오 데이터의 스트리밍 | |
CN1242623C (zh) | 视频编码方法、解码方法以及相关的编码器和解码器 | |
KR100800716B1 (ko) | 근거리 통신을 이용한 동영상 데이터 송수신 장치 및 그송수신 장치에서의 동영상 데이터 송수신 방법 | |
CN105429984B (zh) | 媒体播放方法、设备及音乐教学*** | |
CN105516090B (zh) | 媒体播放方法、设备及音乐教学*** | |
CN105430453B (zh) | 媒体数据采集方法、媒体终端及在线音乐教学*** | |
CN105072506B (zh) | 教学直播视频的传输方法及*** | |
CN106162199B (zh) | 带反向信道消息管理的视频处理的方法和*** | |
KR101065819B1 (ko) | 영상 부호화 장치, 영상 부호화 방법 | |
EP3792731A1 (en) | Multimedia information transmission method and apparatus, and terminal | |
CN112565224B (zh) | 一种视频处理方法及装置 | |
CN109040818B (zh) | 直播时的音视频同步方法、存储介质、电子设备及*** | |
EP2214413A2 (en) | Server and client selective video frame pathways | |
JP6319970B2 (ja) | 画像通信装置およびその制御方法 | |
JP6193569B2 (ja) | 受信装置、受信方法、及びプログラム、撮像装置、撮像方法、及びプログラム、送信装置、送信方法、及びプログラム | |
Hoppe et al. | Video Streaming over IP using the DASH Technique | |
JP2010011287A (ja) | 映像伝送方法および端末装置 | |
CN108124183A (zh) | 以同步获取影音以进行一对多影音串流的方法 | |
JP6400163B2 (ja) | 受信装置、受信方法、送信装置、送信方法、及びプログラム | |
JP5799958B2 (ja) | 映像処理サーバおよび映像処理方法 | |
JP2007324722A (ja) | 動画像データ配信装置及び動画像データ通信システム | |
WO2017092435A1 (zh) | 音视频实时传输方法及装置、传输流打包方法及复用器 | |
KR102184131B1 (ko) | 입체 오디오를 제공하는 다채널 전송 시스템 및 이의 제어 방법 |
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 |