From 17423828ce50e77695c0004767a4bd5f1d081317 Mon Sep 17 00:00:00 2001 From: xiongziliang <771730766@qq.com> Date: Fri, 31 Aug 2018 15:38:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0flv=E5=BD=95=E5=88=B6?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- c_wrapper/src/flvrecorder.cpp | 30 ++++++++++++++++ c_wrapper/src/flvrecorder.h | 67 +++++++++++++++++++++++++++++++++++ c_wrapper/src/mediakit.h | 1 + 3 files changed, 98 insertions(+) create mode 100644 c_wrapper/src/flvrecorder.cpp create mode 100644 c_wrapper/src/flvrecorder.h diff --git a/c_wrapper/src/flvrecorder.cpp b/c_wrapper/src/flvrecorder.cpp new file mode 100644 index 00000000..dbad196c --- /dev/null +++ b/c_wrapper/src/flvrecorder.cpp @@ -0,0 +1,30 @@ +// +// Created by xzl on 2018/8/31. +// + +#include "flvrecorder.h" +#include "Rtmp/FlvMuxer.h" + +using namespace ZL::Rtmp; + +API_EXPORT FlvRecorderContex API_CALL createFlvRecorder(){ + DebugL; + FlvRecorder::Ptr *ret = new FlvRecorder::Ptr(new FlvRecorder); + return ret; +} +API_EXPORT void API_CALL releaseFlvRecorder(FlvRecorderContex ctx){ + DebugL; + FlvRecorder::Ptr *record = (FlvRecorder::Ptr *)(ctx); + delete record; +} +API_EXPORT int API_CALL flvRecorder_start(FlvRecorderContex ctx,const char *appName,const char *streamName, const char *file_path){ + DebugL << appName << " " << streamName << " " << file_path; + FlvRecorder::Ptr *record = (FlvRecorder::Ptr *)(ctx); + try { + (*record)->startRecord(DEFAULT_VHOST,appName,streamName,file_path); + return 0; + }catch (std::exception &ex){ + WarnL << ex.what(); + return -1; + } +} \ No newline at end of file diff --git a/c_wrapper/src/flvrecorder.h b/c_wrapper/src/flvrecorder.h new file mode 100644 index 00000000..ccf1e6a7 --- /dev/null +++ b/c_wrapper/src/flvrecorder.h @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2016 xiongziliang <771730766@qq.com> + * + * This file is part of ZLMediaKit(https://github.com/xiongziliang/ZLMediaKit). + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef MEDIAKITWRAPPER_FLVMUXER_H +#define MEDIAKITWRAPPER_FLVMUXER_H + +#include "common.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef void* FlvRecorderContex; + +/** + * 创建flv录制器 + * @return + */ +API_EXPORT FlvRecorderContex API_CALL createFlvRecorder(); + +/** + * 释放flv录制器 + * @param ctx + */ +API_EXPORT void API_CALL releaseFlvRecorder(FlvRecorderContex ctx); + +/** + * 开始录制flv + * @param ctx flv录制器 + * @param appName 绑定的RtmpMediaSource的 app名 + * @param streamName 绑定的RtmpMediaSource的 stream名 + * @param file_path 文件存放地址 + * @return 0:开始超过,-1:失败,打开文件失败或该RtmpMediaSource不存在 + */ +API_EXPORT int API_CALL flvRecorder_start(FlvRecorderContex ctx,const char *appName,const char *streamName, const char *file_path); + + + +#ifdef __cplusplus +} +#endif + +#endif /* MEDIAKITWRAPPER_FLVMUXER_H */ diff --git a/c_wrapper/src/mediakit.h b/c_wrapper/src/mediakit.h index c61c19ba..84efab1f 100755 --- a/c_wrapper/src/mediakit.h +++ b/c_wrapper/src/mediakit.h @@ -32,6 +32,7 @@ #include "media.h" #include "player.h" #include "proxyplayer.h" +#include "flvrecorder.h" #endif /* SRC_RTSPAPI_H_ */