From afa64651785bb3c77755c3e7a859ae3e9d8f60ce Mon Sep 17 00:00:00 2001 From: Alexandr Date: Fri, 30 Dec 2022 08:56:57 +0300 Subject: [PATCH] Changes to MP4Muxer for CodecJPEG --- src/Record/MP4Muxer.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/Record/MP4Muxer.cpp b/src/Record/MP4Muxer.cpp index 1dfa3a95..51270919 100644 --- a/src/Record/MP4Muxer.cpp +++ b/src/Record/MP4Muxer.cpp @@ -15,6 +15,7 @@ #include "Extension/G711.h" #include "Extension/H264.h" #include "Extension/H265.h" +#include "Extension/JPEG.h" #include "Common/config.h" using namespace std; @@ -145,6 +146,7 @@ static uint8_t getObject(CodecId codecId) { case CodecAAC : return MOV_OBJECT_AAC; case CodecH264 : return MOV_OBJECT_H264; case CodecH265 : return MOV_OBJECT_HEVC; + case CodecJPEG : return MOV_OBJECT_JPEG; default : return 0; } } @@ -302,6 +304,28 @@ bool MP4MuxerInterface::addTrack(const Track::Ptr &track) { break; } + case CodecJPEG: { + auto jpeg_track = dynamic_pointer_cast(track); + if (!jpeg_track) { + WarnL << "不是JPEG Track"; + return false; + } + + auto track_id = mp4_writer_add_video(_mov_writter.get(), + mp4_object, + jpeg_track->getVideoWidth(), + jpeg_track->getVideoHeight(), + nullptr, + 0); + if (track_id < 0) { + WarnL << "添加JPEG Track失败:" << track_id; + return false; + } + _codec_to_trackid[track->getCodecId()].track_id = track_id; + _have_video = true; + break; + } + default: WarnL << "MP4录制不支持该编码格式:" << track->getCodecName(); return false; }