From f6a97af55c7b8d888c98a7f955297b2ce3240f8b Mon Sep 17 00:00:00 2001 From: xia-chu <771730766@qq.com> Date: Sat, 25 Nov 2023 11:27:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dmp4=E5=BD=95=E5=88=B6?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9B=B8=E5=AF=B9=E6=97=B6=E9=97=B4=E6=88=B3?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E4=B8=8D=E5=90=8C=E6=AD=A5=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Record/MP4Muxer.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/Record/MP4Muxer.cpp b/src/Record/MP4Muxer.cpp index 5458a31d..340681ac 100644 --- a/src/Record/MP4Muxer.cpp +++ b/src/Record/MP4Muxer.cpp @@ -169,11 +169,15 @@ void MP4MuxerInterface::stampSync() { } Stamp *audio = nullptr, *video = nullptr; - for(auto &pr : _codec_to_trackid){ - switch (getTrackType((CodecId) pr.first)){ - case TrackAudio : audio = &pr.second.stamp; break; - case TrackVideo : video = &pr.second.stamp; break; - default : break; + for (auto &pr : _codec_to_trackid) { + auto &stamp = pr.second.stamp; + // mp4录制时间戳不允许回退,最大跳跃幅度500ms + stamp.enableRollback(false); + stamp.setMaxDelta(500); + switch (getTrackType((CodecId)pr.first)) { + case TrackAudio: audio = &stamp; break; + case TrackVideo: video = &stamp; break; + default: break; } }