From 3f37ef618dad01710f1ce0720c2481b92a01257a Mon Sep 17 00:00:00 2001 From: xiongziliang <771730766@qq.com> Date: Sat, 5 Dec 2020 12:25:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=E5=A4=AA?= =?UTF-8?q?=E5=B0=8F=E7=9A=84=E5=BD=95=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Record/MP4Recorder.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Record/MP4Recorder.cpp b/src/Record/MP4Recorder.cpp index b9922b17..431ed8ca 100644 --- a/src/Record/MP4Recorder.cpp +++ b/src/Record/MP4Recorder.cpp @@ -11,6 +11,7 @@ #ifdef ENABLE_MP4 #include #include +#include "Util/File.h" #include "Common/config.h" #include "MP4Recorder.h" #include "Thread/WorkThreadPool.h" @@ -77,12 +78,19 @@ void MP4Recorder::asyncClose() { const_cast(info).time_len = ::time(NULL) - info.start_time; //关闭mp4非常耗时,所以要放在后台线程执行 muxer->closeMP4(); - //临时文件名改成正式文件名,防止mp4未完成时被访问 - rename(strFileTmp.data(),strFile.data()); + //获取文件大小 struct stat fileData; - stat(strFile.data(), &fileData); - const_cast(info).file_size = fileData.st_size; + stat(strFileTmp.data(), &fileData); + const_cast(info).file_size = fileData.st_size; + if (fileData.st_size < 1024) { + //录像文件太小,删除之 + File::delete_file(strFileTmp.data()); + return; + } + //临时文件名改成正式文件名,防止mp4未完成时被访问 + rename(strFileTmp.data(),strFile.data()); + /////record 业务逻辑////// NoticeCenter::Instance().emitEvent(Broadcast::kBroadcastRecordMP4,info); });