Commit 124cce34 by zqsong

mp4录制全部替换mp4v2为media-server

parent 7e92a0b7
Subproject commit e399b93802610dcf574ff64bcb7677572cd028c1 Subproject commit a32fe104c0290bc01a7ee73d50b568e8d9ded931
...@@ -2,6 +2,14 @@ ...@@ -2,6 +2,14 @@
cmake_minimum_required(VERSION 3.1.3) cmake_minimum_required(VERSION 3.1.3)
#使能c++11 #使能c++11
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD 11)
SET(CMAKE_C_COMPILER aarch64-himix100-linux-gcc)
SET(CMAKE_CXX_COMPILER aarch64-himix100-linux-g++)
#SET(CMAKE_LINKER aarch64-himix100-linux-ld)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
#加载自定义模块 #加载自定义模块
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake")
...@@ -14,6 +22,7 @@ set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) ...@@ -14,6 +22,7 @@ set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
set(ToolKit_Root ${CMAKE_SOURCE_DIR}/3rdpart/ZLToolKit/src) set(ToolKit_Root ${CMAKE_SOURCE_DIR}/3rdpart/ZLToolKit/src)
set(MediaKit_Root ${CMAKE_SOURCE_DIR}/src) set(MediaKit_Root ${CMAKE_SOURCE_DIR}/src)
#设置头文件目录 #设置头文件目录
INCLUDE_DIRECTORIES(${ToolKit_Root}) INCLUDE_DIRECTORIES(${ToolKit_Root})
INCLUDE_DIRECTORIES(${MediaKit_Root}) INCLUDE_DIRECTORIES(${MediaKit_Root})
...@@ -32,11 +41,14 @@ endif () ...@@ -32,11 +41,14 @@ endif ()
set(ENABLE_HLS true) set(ENABLE_HLS true)
set(ENABLE_OPENSSL true) set(ENABLE_OPENSSL true)
set(ENABLE_MYSQL true) set(ENABLE_MYSQL false)
set(ENABLE_MP4V2 true) set(ENABLE_MP4V2 true)
set(ENABLE_FAAC true) set(ENABLE_FAAC false)
set(ENABLE_X264 true) set(ENABLE_X264 false)
set(MP4_H265RECORD true) set(ENABLE_MP4RECORD true)
#添加两个静态库 #添加两个静态库
if(ENABLE_HLS) if(ENABLE_HLS)
...@@ -48,19 +60,28 @@ else() ...@@ -48,19 +60,28 @@ else()
set(LINK_LIB_LIST zlmediakit zltoolkit) set(LINK_LIB_LIST zlmediakit zltoolkit)
endif() endif()
if(MP4_H265RECORD) if(ENABLE_MP4RECORD)
message(STATUS "MP4_H265RECORD defined") message(STATUS "ENABLE_MP4RECORD defined")
add_definitions(-DMP4_H265RECORD) add_definitions(-DENABLE_MP4RECORD)
set(MediaServer_Root ${CMAKE_SOURCE_DIR}/3rdpart/media-server) set(MediaServer_Root ${CMAKE_SOURCE_DIR}/3rdpart/media-server)
list(APPEND LINK_LIB_LIST mov flv) list(APPEND LINK_LIB_LIST mov flv)
endif() endif()
set(OPENSSL_INCLUDE_DIR /nand/hi3559/openssl/include/)
set(OPENSSL_LIBRARIES /nand/hi3559/openssl/lib/)
#set(OPENSSL_CRYPTO_LIBRARIES /nand/hi3559/openssl/lib/libcrypto.so)
set(MP4V2_INCLUDE_DIR /nand/hi3559/mp4v2/include/)
#set(MP4V2_LIBRARY /nand/hi3559/mp4v2/lib/libmp4v2.a)
set(MP4V2_LIBRARY /nand/hi3559/mp4v2/lib/libmp4v2.so)
#查找openssl是否安装 #查找openssl是否安装
find_package(OpenSSL QUIET) find_package(OpenSSL QUIET)
if (OPENSSL_FOUND AND ENABLE_OPENSSL) if (1)
message(STATUS "found library:${OPENSSL_LIBRARIES},ENABLE_OPENSSL defined") message(STATUS "found library:${OPENSSL_LIBRARIES},ENABLE_OPENSSL defined")
include_directories(${OPENSSL_INCLUDE_DIR}) include_directories(/nand/hi3559/openssl/include/)
add_definitions(-DENABLE_OPENSSL) add_definitions(-DENABLE_OPENSSL)
list(APPEND LINK_LIB_LIST ${OPENSSL_LIBRARIES}) list(APPEND LINK_LIB_LIST /nand/hi3559/openssl/lib/libssl.so /nand/hi3559/openssl/lib/libcrypto.so)
endif () endif ()
#查找mysql是否安装 #查找mysql是否安装
...@@ -111,14 +132,14 @@ set(VS_FALGS "/wd4819 /wd4996 /wd4018 /wd4267 /wd4244 /wd4101 /wd4828 /wd4309 /w ...@@ -111,14 +132,14 @@ set(VS_FALGS "/wd4819 /wd4996 /wd4018 /wd4267 /wd4244 /wd4101 /wd4828 /wd4309 /w
if(ENABLE_HLS) if(ENABLE_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})
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()
if(MP4_H265RECORD) if(ENABLE_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)
......
...@@ -27,11 +27,10 @@ ...@@ -27,11 +27,10 @@
#ifndef MP4MAKER_H_ #ifndef MP4MAKER_H_
#define MP4MAKER_H_ #define MP4MAKER_H_
#ifdef ENABLE_MP4V2 #ifdef ENABLE_MP4RECORD
#include <mutex> #include <mutex>
#include <memory> #include <memory>
#include <mp4v2/mp4v2.h>
#include "Player/PlayerBase.h" #include "Player/PlayerBase.h"
#include "Util/util.h" #include "Util/util.h"
#include "Util/logger.h" #include "Util/logger.h"
...@@ -41,10 +40,10 @@ ...@@ -41,10 +40,10 @@
#include "Extension/Track.h" #include "Extension/Track.h"
#ifdef MP4_H265RECORD
#include "mov-writer.h" #include "mov-writer.h"
#include "mpeg4-hevc.h" #include "mpeg4-hevc.h"
#endif #include "mpeg4-avc.h"
using namespace toolkit; using namespace toolkit;
...@@ -66,17 +65,15 @@ public: ...@@ -66,17 +65,15 @@ public:
class MovH265Info { class MovH265Info {
public: public:
#ifdef MP4_H265RECORD
mov_writer_t* pMov; mov_writer_t* pMov;
struct mpeg4_hevc_t hevc; struct mpeg4_hevc_t hevc;
struct mpeg4_avc_t avc;
int videoTrack; int videoTrack;
int audioTrack; int audioTrack;
int width; int width;
int height; int height;
const uint8_t* ptr; uint32_t startPts;
FILE * pFile; FILE * pFile;
#endif
}; };
class Mp4Maker : public MediaSink{ class Mp4Maker : public MediaSink{
...@@ -109,19 +106,16 @@ private: ...@@ -109,19 +106,16 @@ private:
//时间戳:参考频率1000 //时间戳:参考频率1000
void inputAAC(void *pData, uint32_t ui32Length, uint32_t ui32TimeStamp); void inputAAC(void *pData, uint32_t ui32Length, uint32_t ui32TimeStamp);
void inputH264_l(void *pData, uint32_t ui32Length, uint32_t ui64Duration); void inputH264_l(void *pData, uint32_t ui32Length, uint32_t ui32TimeStamp);
void inputH265_l(void *pData, uint32_t ui32Length, uint32_t ui32TimeStamp); void inputH265_l(void *pData, uint32_t ui32Length, uint32_t ui32TimeStamp);
void inputAAC_l(void *pData, uint32_t ui32Length, uint32_t ui64Duration); void inputAAC_l(void *pData, uint32_t ui32Length, uint32_t ui32TimeStamp);
private: private:
MovH265Info _movH265info; MovH265Info _movH265info;
int _h265Record = 0; int _h265Record = 0;
uint32_t _startPts;
uint8_t _sBbuffer[2 * 1024 * 1024]; uint8_t _sBbuffer[2 * 1024 * 1024];
MP4FileHandle _hMp4 = MP4_INVALID_FILE_HANDLE;
MP4TrackId _hVideo = MP4_INVALID_TRACK_ID;
MP4TrackId _hAudio = MP4_INVALID_TRACK_ID;
string _strPath; string _strPath;
string _strFile; string _strFile;
string _strFileTmp; string _strFileTmp;
...@@ -141,6 +135,6 @@ private: ...@@ -141,6 +135,6 @@ private:
} /* namespace mediakit */ } /* namespace mediakit */
#endif ///ENABLE_MP4V2 #endif ///ENABLE_MP4RECORD
#endif /* MP4MAKER_H_ */ #endif /* MP4MAKER_H_ */
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论