采集媒体数据的方法、媒体终端及音乐教学系统的制作方法_2

文档序号:9670796阅读:来源:国知局
例,视频采集单元210 包括摄像头211和编码单元212。摄像头211适于采集原始图像帖。原始图像帖的采集参 数例如为640*480尺寸和25帖/秒,但不限于此。另外,视频采集单元210还可W在每捕 获一帖原始图像帖时,记录当前的时间值作为捕获该原始图像帖的第一时间戳。根据本发 明一个实施例,原始图像帖的格式示例为:
[0019] Idwstampvideodata}
[0020] 其中,dwstamp为第一时间戳,videodata为YUV420格式的图像帖。
[0021] 编码单元212适于对原始图像帖进行编码。例如,编码单元212可W对原始图像 帖进行H. 264 (由ITU-T视频编码专家组(VCEG)和IS0/IEC动态图像专家组(MPEG)联合 组成的联合视频组(JVT,化intVideoTeam)提出的高度压缩数字视频编解码器标准)格 式的编码。编码单元212的编码参数包括完整画面组(GOP)。GOP的长度例如100帖,即一 个图像组具有100帖视频帖。运里,GOPWI帖开始,随后跟随若干P帖。在相邻的P帖间 还具有B帖。例如,一个GOP的部分序列为IPBPBPPPPBP。其中,I帖为帖内编 码帖,包含了完整图像信息,并且在不参考任何附加信息来重建图像。P帖为前向预测编码 帖,由在它前面的P帖或者I帖预测而来。B帖为双向预测的压缩帖。在将图像帖压缩成B 帖时,编码单元212根据相邻的前一帖、本帖W及后一帖数据的不同点来压缩本帖。编码单 元212的编码参数还可W包括编码帖率和编码尺寸,但不限于此。根据本发明一个实施例, 编码单元212执行编码操作的代码示例如下:
[0022] Ret=CLDC-Open(width,hei曲t,bitrate,mode);
[0023] wi化h:视频压缩的宽度
[0024] hei曲t:视频压缩的高度 阳0巧]Mtrate:视频压缩的目标比特率 [00%] mode:视频压缩模式控制
[0027] //图像压缩引擎初始化
[0028] Ret = CLDC-Encode (pBuf, dwbase, m_pVideoBuffe;r,址ncoderLen);
[0029] pBuf:采集的图像数据缓冲
[0030] dwbase:原始图像数据的长度
[0031] m_pVideoBuffe;r :图像压缩的缓冲
[0032] 址ncoderLen :图像压缩后的长度
[0033] //图像编码后产生包含SPS和PPS的肥64图像码流
[0034]Ret=CLDC-Close0;
[0035] //图像编码引擎关闭
[0036] 视频缓冲区220适于存放视频采集单元210所生成的视频帖。运里,视频缓冲区 220例如为环形缓冲区。例如,视频缓冲区220可W始终存储最新生成的20帖数据。
[0037] 音频采集单元230适于采集声音并编码为音频帖。在根据本发明一个实施例中, 音频采集单元230可W对所采集的声音进行ACC(AdvancedAudioCoding,高级音频编码) 格式的编码,生成码率为192化ps。运里,音频采集单元230可W采集乐器演奏时的音乐和 气息,但不限于此。在根据本发明一个实施例中,音频采集单元230进行音频采集和编码操 作的相关代码示例如下:
[0038]intnSamples=AUDIO_SAMPLERATE;// 音频采样率
[0039]intnOiannels= 1 ; // 声道数 |;0040] intnBits=16;//音频采样的位数
[0041] intnAudioBitrate =192000;// 音频输出的比特率
[0042]intnRet=0;
[0043] nRet = m_pFaacCodec->0pen(nSamples, nChannels, nBits, nAudioBitrate);
[0044] //设置音频压缩参数,并打开音频压缩器
[0045]nCodecRet=m_pFaacCodec->Encode(pBuf,nLen,streamabuffer,nEncodeLen);
[0046]pBuf:原始的音频数据
[0047]nLen:音频数据的长度
[0048]streamabuffer:编码输出的缓冲
[0049] 址ncodeLen:编码后的数据长度
[0050] //进行音频编码,编码后的数据为[ADTS头]+ [音频压缩数据]
[0051] nRet = IH-Pl^acCodec-乂lose0;
[0052] //音频编码结束
[0053] 另外,音频采集单元230还可W捕获所采集音频帖的时间值,并记录为第二时间 戳。每个音频帖对应的第二时间戳例如为该帖第一个音频采样点的采集时间。
[0054] 音频缓冲区240适于存放音频采集单元230所生成的音频帖。运里,音频缓冲区 240例如为环形缓冲区。每帖音频帖还可W包括与其对应的第二时间戳。运样,媒体播放端 在获取到媒体终端200传输的音频帖和视频帖时,可W根据第一时间戳和第二时间戳对音 频帖和视频帖进行同步处理。 阳化5] 发送缓冲区250适于存储一个或多个待发送的数据帖。其中每个待发送的数据帖 为来自视频缓冲区220的视频帖或者来自音频缓冲区240的音频帖。
[0056] 传输单元260适于将发送缓冲区250中待发送的数据帖依次传输到媒体服务器。 运样,媒体服务器可W向媒体播放端传输待发送的数据帖。媒体播放端接收并播放视频数 据和音频数据。
[0057] 如上所述,发送缓冲区250中存放有等待传输单元260传输的数据帖。控制单元 270适于从音频缓冲区220和视频缓冲区240提取数据帖并推送到发送缓冲区250。一般而 言,在例如音乐教学等流媒体系统中,声音的重要性要高于视频信息等数据。控制单元270 在每次执行推送操作时,对音频缓冲区220进行优先检测。一种情况是,音频缓冲区240具 有音频帖,控制单元270提取一帖音频帖推送到发送缓冲区250。另一种情况是,控制单元 270检测到音频缓冲区240为空。换言之,控制单元270执行本次推送操作时音频缓冲区 240没有需要发送的音频帖。控制单元270继续检测视频帖缓冲区220是否为空和检测发 送缓冲区250中待发送的数据帖的数量是否超过阔值。阔值例如为5。运里,之所W要检测 发送缓冲区250中数据帖是否超过阔值,是为了通过发送缓冲区250中数据帖数量判断当 前传输单元260是否处于阻塞状态(即网络异常)。换言之,传输单元260在未处于阻塞状 态时,可W及时将发送缓冲区250中数据帖进行网络传输。那么,发送缓冲区250不会积累 有超过阔值的数据帖。反之,传输单元260在处于阻塞状态时,不能及时将发送缓冲区250 中数据帖进行网络传输。发送缓冲区250中积累的数据帖的数量会超过阔值。需要说明的 是,本发明对检测视频缓冲区220和检测发送缓冲区250的顺序不做过多限定。在一个实 施例中,控制单元270首先检测视频缓冲区220是否为空,并在视频缓冲区220为空时不再 检测发送缓冲区250中数据帖数据是否超阔值。换言之,如果视频缓冲区220为空,则结束 本次推送操作。运里,两次相邻推送操作的时间间隔例如为10毫秒。另外,如果视频缓冲 区220不为空,控制单元270检测发送缓冲区250中数据帖数据量是否超阔值。在又一个 实施例中,控制单元270先检测发送缓冲区250,并在数据帖数量未超过阔值时,检测视频 缓冲区220是否为空。在根据本发明一个实施中,控制单元270工作过程的代码示例如下:
[005
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1