mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-25 20:27:34 +08:00
Update CMakeFiles for RTP Proxy
This commit is contained in:
parent
55d258fafc
commit
55814070f8
@ -34,6 +34,8 @@ LINK_DIRECTORIES(${LIBRARY_OUTPUT_PATH})
|
|||||||
#设置工程源码根目录
|
#设置工程源码根目录
|
||||||
set(ToolKit_Root ${CMAKE_CURRENT_SOURCE_DIR}/3rdpart/ZLToolKit/src)
|
set(ToolKit_Root ${CMAKE_CURRENT_SOURCE_DIR}/3rdpart/ZLToolKit/src)
|
||||||
set(MediaKit_Root ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
set(MediaKit_Root ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||||
|
set(MediaServer_Root ${CMAKE_CURRENT_SOURCE_DIR}/3rdpart/media-server)
|
||||||
|
|
||||||
|
|
||||||
#设置头文件目录
|
#设置头文件目录
|
||||||
INCLUDE_DIRECTORIES(${ToolKit_Root})
|
INCLUDE_DIRECTORIES(${ToolKit_Root})
|
||||||
@ -59,22 +61,8 @@ set(ENABLE_FAAC false)
|
|||||||
set(ENABLE_X264 false)
|
set(ENABLE_X264 false)
|
||||||
set(ENABLE_MP4RECORD true)
|
set(ENABLE_MP4RECORD true)
|
||||||
|
|
||||||
#添加两个静态库
|
set(LINK_LIB_LIST zlmediakit zltoolkit)
|
||||||
if(ENABLE_HLS)
|
|
||||||
message(STATUS "ENABLE_HLS defined")
|
|
||||||
add_definitions(-DENABLE_HLS)
|
|
||||||
set(MediaServer_Root ${CMAKE_CURRENT_SOURCE_DIR}/3rdpart/media-server)
|
|
||||||
set(LINK_LIB_LIST zlmediakit zltoolkit mpeg)
|
|
||||||
else()
|
|
||||||
set(LINK_LIB_LIST zlmediakit zltoolkit)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(ENABLE_MP4RECORD)
|
|
||||||
message(STATUS "ENABLE_MP4RECORD defined")
|
|
||||||
add_definitions(-DENABLE_MP4RECORD)
|
|
||||||
set(MediaServer_Root ${CMAKE_CURRENT_SOURCE_DIR}/3rdpart/media-server)
|
|
||||||
list(APPEND LINK_LIB_LIST mov flv)
|
|
||||||
endif()
|
|
||||||
#查找openssl是否安装
|
#查找openssl是否安装
|
||||||
find_package(OpenSSL QUIET)
|
find_package(OpenSSL QUIET)
|
||||||
if (OPENSSL_FOUND AND ENABLE_OPENSSL)
|
if (OPENSSL_FOUND AND ENABLE_OPENSSL)
|
||||||
@ -122,32 +110,42 @@ if (FAAC_FOUND AND ENABLE_FAAC)
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
#添加库
|
|
||||||
add_library(zltoolkit STATIC ${ToolKit_src_list})
|
|
||||||
add_library(zlmediakit STATIC ${MediaKit_src_list})
|
|
||||||
|
|
||||||
|
|
||||||
set(VS_FALGS "/wd4819 /wd4996 /wd4018 /wd4267 /wd4244 /wd4101 /wd4828 /wd4309 /wd4573" )
|
set(VS_FALGS "/wd4819 /wd4996 /wd4018 /wd4267 /wd4244 /wd4101 /wd4828 /wd4309 /wd4573" )
|
||||||
#libmpeg
|
|
||||||
|
#添加mpeg用于支持ts生成
|
||||||
if(ENABLE_HLS)
|
if(ENABLE_HLS)
|
||||||
|
message(STATUS "ENABLE_HLS defined")
|
||||||
|
add_definitions(-DENABLE_HLS)
|
||||||
|
|
||||||
aux_source_directory(${MediaServer_Root}/libmpeg/include src_mpeg)
|
aux_source_directory(${MediaServer_Root}/libmpeg/include src_mpeg)
|
||||||
aux_source_directory(${MediaServer_Root}/libmpeg/source src_mpeg)
|
aux_source_directory(${MediaServer_Root}/libmpeg/source src_mpeg)
|
||||||
include_directories(${MediaServer_Root}/libmpeg/include)
|
include_directories(${MediaServer_Root}/libmpeg/include)
|
||||||
|
|
||||||
add_library(mpeg STATIC ${src_mpeg})
|
add_library(mpeg STATIC ${src_mpeg})
|
||||||
|
list(APPEND LINK_LIB_LIST mpeg)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set_target_properties(mpeg PROPERTIES COMPILE_FLAGS ${VS_FALGS} )
|
set_target_properties(mpeg PROPERTIES COMPILE_FLAGS ${VS_FALGS} )
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
#添加mov、flv库用于MP4录制
|
||||||
if(ENABLE_MP4RECORD)
|
if(ENABLE_MP4RECORD)
|
||||||
|
message(STATUS "ENABLE_MP4RECORD defined")
|
||||||
|
add_definitions(-DENABLE_MP4RECORD)
|
||||||
|
|
||||||
aux_source_directory(${MediaServer_Root}/libmov/include src_mov)
|
aux_source_directory(${MediaServer_Root}/libmov/include src_mov)
|
||||||
aux_source_directory(${MediaServer_Root}/libmov/source src_mov)
|
aux_source_directory(${MediaServer_Root}/libmov/source src_mov)
|
||||||
include_directories(${MediaServer_Root}/libmov/include)
|
include_directories(${MediaServer_Root}/libmov/include)
|
||||||
|
|
||||||
aux_source_directory(${MediaServer_Root}/libflv/include src_flv)
|
aux_source_directory(${MediaServer_Root}/libflv/include src_flv)
|
||||||
aux_source_directory(${MediaServer_Root}/libflv/source src_flv)
|
aux_source_directory(${MediaServer_Root}/libflv/source src_flv)
|
||||||
include_directories(${MediaServer_Root}/libflv/include)
|
include_directories(${MediaServer_Root}/libflv/include)
|
||||||
add_library(mov STATIC ${src_mov})
|
|
||||||
|
add_library(mov STATIC ${src_mov})
|
||||||
add_library(flv STATIC ${src_flv})
|
add_library(flv STATIC ${src_flv})
|
||||||
|
list(APPEND LINK_LIB_LIST mov flv)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set_target_properties(mov flv PROPERTIES COMPILE_FLAGS ${VS_FALGS} )
|
set_target_properties(mov flv PROPERTIES COMPILE_FLAGS ${VS_FALGS} )
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
@ -163,6 +161,19 @@ if(${CMAKE_BUILD_TYPE} MATCHES "Release")
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
#添加rtp库用于rtp转ps/ts
|
||||||
|
aux_source_directory(${MediaServer_Root}/librtp/include src_rtp)
|
||||||
|
aux_source_directory(${MediaServer_Root}/librtp/source src_rtp)
|
||||||
|
aux_source_directory(${MediaServer_Root}/librtp/payload src_rtp)
|
||||||
|
include_directories(${MediaServer_Root}/librtp/include)
|
||||||
|
add_library(rtp STATIC ${src_rtp})
|
||||||
|
list(APPEND LINK_LIB_LIST rtp)
|
||||||
|
|
||||||
|
#添加库
|
||||||
|
add_library(zltoolkit STATIC ${ToolKit_src_list})
|
||||||
|
add_library(zlmediakit STATIC ${MediaKit_src_list})
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
list(APPEND LINK_LIB_LIST WS2_32 Iphlpapi shlwapi)
|
list(APPEND LINK_LIB_LIST WS2_32 Iphlpapi shlwapi)
|
||||||
set_target_properties(zltoolkit PROPERTIES COMPILE_FLAGS ${VS_FALGS} )
|
set_target_properties(zltoolkit PROPERTIES COMPILE_FLAGS ${VS_FALGS} )
|
||||||
@ -172,7 +183,6 @@ elseif(NOT ANDROID OR IOS)
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#测试程序
|
#测试程序
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
||||||
|
@ -46,6 +46,7 @@
|
|||||||
#include "WebApi.h"
|
#include "WebApi.h"
|
||||||
#include "WebHook.h"
|
#include "WebHook.h"
|
||||||
#include "Thread/WorkThreadPool.h"
|
#include "Thread/WorkThreadPool.h"
|
||||||
|
#include "Rtp/RtpSelector.h"
|
||||||
|
|
||||||
#if !defined(_WIN32)
|
#if !defined(_WIN32)
|
||||||
#include "FFmpegSource.h"
|
#include "FFmpegSource.h"
|
||||||
@ -692,6 +693,19 @@ void installWebApi() {
|
|||||||
invoker.responseFile(headerIn,StrCaseMap(),exePath());
|
invoker.responseFile(headerIn,StrCaseMap(),exePath());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
API_REGIST(api,getSsrcInfo,{
|
||||||
|
CHECK_SECRET();
|
||||||
|
CHECK_ARGS("ssrc");
|
||||||
|
auto process = RtpSelector::Instance().getProcess(allArgs["ssrc"],false);
|
||||||
|
if(!process){
|
||||||
|
val["exist"] = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
val["exist"] = true;
|
||||||
|
val["peer_ip"] = process->get_peer_ip();
|
||||||
|
val["peer_port"] = process->get_peer_port();
|
||||||
|
});
|
||||||
|
|
||||||
// 开始录制hls或MP4
|
// 开始录制hls或MP4
|
||||||
API_REGIST(api,startRecord,{
|
API_REGIST(api,startRecord,{
|
||||||
CHECK_SECRET();
|
CHECK_SECRET();
|
||||||
|
64
tests/test_rtp.cpp
Normal file
64
tests/test_rtp.cpp
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
* MIT License
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016-2019 Gemfield <gemfield@civilnet.cn>
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <map>
|
||||||
|
#include <iostream>
|
||||||
|
#include "Util/MD5.h"
|
||||||
|
#include "Util/File.h"
|
||||||
|
#include "Util/logger.h"
|
||||||
|
#include "Util/SSLBox.h"
|
||||||
|
#include "Util/util.h"
|
||||||
|
#include "Network/TcpServer.h"
|
||||||
|
#include "Common/config.h"
|
||||||
|
#include "Rtsp/RtspSession.h"
|
||||||
|
#include "Rtmp/RtmpSession.h"
|
||||||
|
#include "Http/HttpSession.h"
|
||||||
|
#include "Rtp/RtpFileLoader.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using namespace toolkit;
|
||||||
|
using namespace mediakit;
|
||||||
|
|
||||||
|
int main(int argc,char *argv[]) {
|
||||||
|
{
|
||||||
|
//设置日志
|
||||||
|
Logger::Instance().add(std::make_shared<ConsoleChannel>("ConsoleChannel"));
|
||||||
|
//启动异步日志线程
|
||||||
|
Logger::Instance().setWriter(std::make_shared<AsyncLogWriter>());
|
||||||
|
loadIniConfig((exeDir() + "config.ini").data());
|
||||||
|
TcpServer::Ptr rtspSrv(new TcpServer());
|
||||||
|
TcpServer::Ptr rtmpSrv(new TcpServer());
|
||||||
|
TcpServer::Ptr httpSrv(new TcpServer());
|
||||||
|
rtspSrv->start<RtspSession>(554);//默认554
|
||||||
|
rtmpSrv->start<RtmpSession>(1935);//默认1935
|
||||||
|
httpSrv->start<HttpSession>(80);//默认80
|
||||||
|
RtpFileLoader::loadFile(argv[1]);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user