概述
metaRTC7.0最新版本完善了mac/ios支持,ios语音使用audioUnit实现,mac语音使用纯CoreAudio实现,新增了videoToolBox视频编码和解码的支持。
库编译
iOS编译
sh cmake_lib_ios.sh
#cmake_lib_ios.sh
cd libmetartccore7
./cmake_ios64.sh
cd ../libyangwhip7
./cmake_ios64.sh
cd ../libmetartc7
./cmake_ios64.sh
MAC编译
#cmake arch
SET(CMAKE_C_COMPILER /usr/bin/clang)
SET(CMAKE_CXX_COMPILER /usr/bin/clang++)
# 编译器设置
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# macOS/Xcode特定设置
set(CMAKE_OSX_ARCHITECTURES "arm64")
set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0")
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_compile_options(mylib PRIVATE
-Wdocumentation
-Wdeprecated
)
endif()
demo编译
demo/metapushstream7 和 demo/metaplayer7已经支持qt6
推流demo metapushstream7

qt打开文件CMakeLists.txt,mac下需用cmake编译
拉流demo metaplayer7
qt打开文件metaplayer7.pro,拉流demo qmake可以用。
MAC/iOS视频编码和解码
视频编码
if(videoInfo->videoEncHwType==0){//软编码
if (vcodec == Yang_VED_H264){
#if Yang_Enable_Openh264
return new YangOpenH264Encoder();
#else
return new YangH264EncoderSoft();
#endif
}else if (vcodec == Yang_VED_H265){
return new YangH265EncoderSoft();
}
}else{//硬编码
//videoToolBox
return new YangVideoEncoderMac();
}
视频解码
if(videoInfo->videoDecHwType==0){//软解码
#if Yang_Enable_H264Decoder
return new YangH264DecoderSoft();
#else
return new YangVideoDecoderFfmpeg(videoInfo,vcodec);
#endif
}else{//硬解码
return new YangVideoDecoderMac();
}