完善Rtmp复用器,可以灵活设置sps pps等信息

This commit is contained in:
xiongziliang
2018-10-25 14:16:40 +08:00
parent 413b18521d
commit 186f4e4683
7 changed files with 64 additions and 22 deletions

View File

@@ -75,12 +75,23 @@ void AACRtmpDecoder::onGetAAC(const char* pcData, int iLen, uint32_t ui32TimeSta
}
/////////////////////////////////////////////////////////////////////////////////////
AACRtmpEncoder::AACRtmpEncoder(const Track::Ptr &track) {
_track = dynamic_pointer_cast<AACTrack>(track);
}
void AACRtmpEncoder::inputFrame(const Frame::Ptr &frame) {
RtmpCodec::inputFrame(frame);
if(frame->prefixSize() >= 7 && _aac_cfg.empty()){
//包含adts头
_aac_cfg = makeAdtsConfig(reinterpret_cast<const uint8_t *>(frame->data()));
makeAudioConfigPkt();
if(_aac_cfg.empty()){
if(frame->prefixSize() >= 7){
//包含adts头,从adts头获取aac配置信息
_aac_cfg = makeAdtsConfig(reinterpret_cast<const uint8_t *>(frame->data()));
makeAudioConfigPkt();
} else if(_track && _track->ready()){
//从track中和获取aac配置信息
_aac_cfg = _track->getAacCfg();
makeAudioConfigPkt();
}
}
if(!_aac_cfg.empty()){
@@ -149,6 +160,4 @@ void AACRtmpEncoder::makeAudioConfigPkt() {
inputRtmp(rtmpPkt, false);
}
}//namespace mediakit