Commit 949640d4 by xiongziliang

Track可以不设置视频宽高、音频采样率等信息

parent 81541705
Subproject commit 4a8615d63ac1c2b910cb016e6462635d375b6497 Subproject commit b92dd89e81146312b7a0c96071ceb0c394b7c4d6
...@@ -173,7 +173,6 @@ public: ...@@ -173,7 +173,6 @@ public:
_vps = vps.substr(vps_prefix_len); _vps = vps.substr(vps_prefix_len);
_sps = sps.substr(sps_prefix_len); _sps = sps.substr(sps_prefix_len);
_pps = pps.substr(pps_prefix_len); _pps = pps.substr(pps_prefix_len);
onReady();
} }
/** /**
...@@ -204,30 +203,6 @@ public: ...@@ -204,30 +203,6 @@ public:
return CodecH265; 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 { bool ready() override {
return !_vps.empty() && !_sps.empty() && !_pps.empty(); return !_vps.empty() && !_sps.empty() && !_pps.empty();
} }
...@@ -313,20 +288,8 @@ public: ...@@ -313,20 +288,8 @@ public:
} }
break; break;
} }
if(_width == 0 && ready() ){
onReady();
}
} }
private: private:
/**
* 解析sps获取宽高fps
* @param sps sps不含头数据
*/
void onReady() {
// getAVCInfo(sps,_width,_height,_fps);
}
Track::Ptr clone() override { Track::Ptr clone() override {
return std::make_shared<std::remove_reference<decltype(*this)>::type>(*this); return std::make_shared<std::remove_reference<decltype(*this)>::type>(*this);
} }
...@@ -335,9 +298,6 @@ private: ...@@ -335,9 +298,6 @@ private:
string _vps; string _vps;
string _sps; string _sps;
string _pps; string _pps;
int _width = 0;
int _height = 0;
float _fps = 0;
H265Frame::Ptr _vpsFrame; H265Frame::Ptr _vpsFrame;
H265Frame::Ptr _spsFrame; H265Frame::Ptr _spsFrame;
......
...@@ -81,19 +81,19 @@ public: ...@@ -81,19 +81,19 @@ public:
* 返回视频高度 * 返回视频高度
* @return * @return
*/ */
virtual int getVideoHeight() const = 0; virtual int getVideoHeight() const {return 0;};
/** /**
* 返回视频宽度 * 返回视频宽度
* @return * @return
*/ */
virtual int getVideoWidth() const = 0; virtual int getVideoWidth() const {return 0;};
/** /**
* 返回视频fps * 返回视频fps
* @return * @return
*/ */
virtual float getVideoFps() const = 0; virtual float getVideoFps() const {return 0;};
}; };
/** /**
...@@ -109,19 +109,19 @@ public: ...@@ -109,19 +109,19 @@ public:
* 返回音频采样率 * 返回音频采样率
* @return * @return
*/ */
virtual int getAudioSampleRate() const = 0; virtual int getAudioSampleRate() const {return 0;};
/** /**
* 返回音频采样位数,一般为16或8 * 返回音频采样位数,一般为16或8
* @return * @return
*/ */
virtual int getAudioSampleBit() const = 0; virtual int getAudioSampleBit() const {return 0;};
/** /**
* 返回音频通道数 * 返回音频通道数
* @return * @return
*/ */
virtual int getAudioChannel() const = 0; virtual int getAudioChannel() const {return 0;};
}; };
......
...@@ -92,10 +92,16 @@ public: ...@@ -92,10 +92,16 @@ public:
typedef std::shared_ptr<VideoMete> Ptr; typedef std::shared_ptr<VideoMete> Ptr;
VideoMete(const VideoTrack::Ptr &video,int datarate = 5000){ VideoMete(const VideoTrack::Ptr &video,int datarate = 5000){
_metedata.set("width", video->getVideoWidth()); if(video->getVideoWidth() > 0 ){
_metedata.set("height", video->getVideoHeight()); _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("videodatarate", datarate);
_metedata.set("framerate", video->getVideoFps());
_codecId = video->getCodecId(); _codecId = video->getCodecId();
_metedata.set("videocodecid", Factory::getAmfByCodecId(_codecId)); _metedata.set("videocodecid", Factory::getAmfByCodecId(_codecId));
} }
...@@ -127,10 +133,16 @@ public: ...@@ -127,10 +133,16 @@ public:
AudioMete(const AudioTrack::Ptr &audio,int datarate = 160){ AudioMete(const AudioTrack::Ptr &audio,int datarate = 160){
_metedata.set("audiodatarate", datarate); _metedata.set("audiodatarate", datarate);
_metedata.set("audiosamplerate", audio->getAudioSampleRate()); if(audio->getAudioSampleRate() > 0){
_metedata.set("audiosamplesize", audio->getAudioSampleBit()); _metedata.set("audiosamplerate", audio->getAudioSampleRate());
_metedata.set("audiochannels", audio->getAudioChannel()); }
_metedata.set("stereo", audio->getAudioChannel() > 1); 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(); _codecId = audio->getCodecId();
_metedata.set("audiocodecid", Factory::getAmfByCodecId(_codecId)); _metedata.set("audiocodecid", Factory::getAmfByCodecId(_codecId));
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论