diff --git a/src/Record/MP4Muxer.cpp b/src/Record/MP4Muxer.cpp index f4fda0ea..346d2cc8 100644 --- a/src/Record/MP4Muxer.cpp +++ b/src/Record/MP4Muxer.cpp @@ -319,14 +319,13 @@ bool MP4MuxerMemory::inputFrame(const Frame::Ptr &frame){ return false; } - bool key_frame = frame->keyFrame(); - if (_ticker.elapsedTime() > 50 || key_frame) { - //遇到关键帧或者超过50ms则切片 - _ticker.resetTime(); + auto key_frame = frame->keyFrame(); + auto data = _memory_file->getAndClearMemory(); + if (!data.empty()) { //flush切片 saveSegment(); //输出切片数据 - onSegmentData(_memory_file->getAndClearMemory(), frame->dts(), _key_frame); + onSegmentData(data, frame->dts(), _key_frame); _key_frame = false; } diff --git a/src/Record/MP4Muxer.h b/src/Record/MP4Muxer.h index 2d4c7a3e..6d51650f 100644 --- a/src/Record/MP4Muxer.h +++ b/src/Record/MP4Muxer.h @@ -141,7 +141,6 @@ protected: private: bool _key_frame = false; - Ticker _ticker; string _init_segment; MP4FileMemory::Ptr _memory_file; };