diff --git a/ZLToolKit b/ZLToolKit index 4a8615d6..b92dd89e 160000 --- a/ZLToolKit +++ b/ZLToolKit @@ -1 +1 @@ -Subproject commit 4a8615d63ac1c2b910cb016e6462635d375b6497 +Subproject commit b92dd89e81146312b7a0c96071ceb0c394b7c4d6 diff --git a/src/Extension/H265.h b/src/Extension/H265.h index 44c330a4..4e86744c 100644 --- a/src/Extension/H265.h +++ b/src/Extension/H265.h @@ -173,7 +173,6 @@ public: _vps = vps.substr(vps_prefix_len); _sps = sps.substr(sps_prefix_len); _pps = pps.substr(pps_prefix_len); - onReady(); } /** @@ -204,30 +203,6 @@ public: return CodecH265; } - /** - * 返回视频高度 - * @return - */ - int getVideoHeight() const override { - return _width; - } - - /** - * 返回视频宽度 - * @return - */ - int getVideoWidth() const override { - return _height; - } - - /** - * 返回视频fps - * @return - */ - float getVideoFps() const override { - return _fps; - } - bool ready() override { return !_vps.empty() && !_sps.empty() && !_pps.empty(); } @@ -313,20 +288,8 @@ public: } break; } - - if(_width == 0 && ready() ){ - onReady(); - } } private: - /** - * 解析sps获取宽高fps - * @param sps sps不含头数据 - */ - void onReady() { -// getAVCInfo(sps,_width,_height,_fps); - } - Track::Ptr clone() override { return std::make_shared::type>(*this); } @@ -335,9 +298,6 @@ private: string _vps; string _sps; string _pps; - int _width = 0; - int _height = 0; - float _fps = 0; H265Frame::Ptr _vpsFrame; H265Frame::Ptr _spsFrame; diff --git a/src/Extension/Track.h b/src/Extension/Track.h index 47a15c90..1961a1fa 100644 --- a/src/Extension/Track.h +++ b/src/Extension/Track.h @@ -81,19 +81,19 @@ public: * 返回视频高度 * @return */ - virtual int getVideoHeight() const = 0; + virtual int getVideoHeight() const {return 0;}; /** * 返回视频宽度 * @return */ - virtual int getVideoWidth() const = 0; + virtual int getVideoWidth() const {return 0;}; /** * 返回视频fps * @return */ - virtual float getVideoFps() const = 0; + virtual float getVideoFps() const {return 0;}; }; /** @@ -109,19 +109,19 @@ public: * 返回音频采样率 * @return */ - virtual int getAudioSampleRate() const = 0; + virtual int getAudioSampleRate() const {return 0;}; /** * 返回音频采样位数,一般为16或8 * @return */ - virtual int getAudioSampleBit() const = 0; + virtual int getAudioSampleBit() const {return 0;}; /** * 返回音频通道数 * @return */ - virtual int getAudioChannel() const = 0; + virtual int getAudioChannel() const {return 0;}; }; diff --git a/src/RtmpMuxer/RtmpMetedata.h b/src/RtmpMuxer/RtmpMetedata.h index f0851579..d65c0ee3 100644 --- a/src/RtmpMuxer/RtmpMetedata.h +++ b/src/RtmpMuxer/RtmpMetedata.h @@ -92,10 +92,16 @@ public: typedef std::shared_ptr Ptr; VideoMete(const VideoTrack::Ptr &video,int datarate = 5000){ - _metedata.set("width", video->getVideoWidth()); - _metedata.set("height", video->getVideoHeight()); + if(video->getVideoWidth() > 0 ){ + _metedata.set("width", video->getVideoWidth()); + } + if(video->getVideoHeight() > 0 ){ + _metedata.set("height", video->getVideoHeight()); + } + if(video->getVideoFps() > 0 ){ + _metedata.set("framerate", video->getVideoFps()); + } _metedata.set("videodatarate", datarate); - _metedata.set("framerate", video->getVideoFps()); _codecId = video->getCodecId(); _metedata.set("videocodecid", Factory::getAmfByCodecId(_codecId)); } @@ -127,10 +133,16 @@ public: AudioMete(const AudioTrack::Ptr &audio,int datarate = 160){ _metedata.set("audiodatarate", datarate); - _metedata.set("audiosamplerate", audio->getAudioSampleRate()); - _metedata.set("audiosamplesize", audio->getAudioSampleBit()); - _metedata.set("audiochannels", audio->getAudioChannel()); - _metedata.set("stereo", audio->getAudioChannel() > 1); + if(audio->getAudioSampleRate() > 0){ + _metedata.set("audiosamplerate", audio->getAudioSampleRate()); + } + if(audio->getAudioSampleBit() > 0){ + _metedata.set("audiosamplesize", audio->getAudioSampleBit()); + } + if(audio->getAudioChannel() > 0){ + _metedata.set("audiochannels", audio->getAudioChannel()); + _metedata.set("stereo", audio->getAudioChannel() > 1); + } _codecId = audio->getCodecId(); _metedata.set("audiocodecid", Factory::getAmfByCodecId(_codecId)); }