mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-23 03:10:04 +08:00
修复首帧不是I帧 导致花屏的问题
This commit is contained in:
parent
0980bde12d
commit
35c324b6b4
@ -79,6 +79,14 @@ void MP4Muxer::onTrackFrame(const Frame::Ptr &frame) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(frame->getTrackType() == TrackVideo){
|
||||
if(!_started && !frame->keyFrame()){
|
||||
//第一帧必须是I帧,防止花屏
|
||||
return;
|
||||
}
|
||||
_started = true;
|
||||
}
|
||||
|
||||
int with_nalu_size ;
|
||||
switch (frame->getCodecId()){
|
||||
case CodecH264:
|
||||
|
@ -80,6 +80,7 @@ private:
|
||||
uint32_t start_pts = 0;
|
||||
};
|
||||
map<CodecId,track_info> _codec_to_trackid;
|
||||
bool _started = false;
|
||||
};
|
||||
|
||||
|
||||
|
@ -89,11 +89,9 @@ void Mp4Maker::createFile() {
|
||||
try {
|
||||
_muxer = std::make_shared<MP4MuxerFile>(strFileTmp.data());
|
||||
for(auto &track :_tracks){
|
||||
if(track){
|
||||
//添加track
|
||||
_muxer->addTrack(track);
|
||||
}
|
||||
}
|
||||
_strFileTmp = strFileTmp;
|
||||
_strFile = strFile;
|
||||
_createFileTicker.resetTime();
|
||||
|
Loading…
Reference in New Issue
Block a user