ffmpeg编译部分可参考另一篇文章
ffmpeg win10编译及命令详解_wangbuji的博客-CSDN博客_ffmpeg win10编译
1 安装vscode
https://code.visualstudio.com/Download
//若ubuntu20桌面版双击安装失败,命令行安装
//sudo dpkg -i code_1.63.2-1639562499_amd64.deb
sudo apt install ssh git g++ gcc gdb cmake
推荐win10 安装vscode,配合remote ssh,linux c++开发
(踩坑记录:本人虚拟机损毁,重装虚拟机后,ip不变,ssh无法连接,config配置文件所在目录C:\Users\34348\.ssh中的文件可删除,重新添加ssh连接)
chmod -Rf 777 MediaServer //设置目录最高访问权限
安装c++插件
快捷键F1,选择gcc
生成三个json配置文件launch.json,,c_cpp_properties.json,
tasks.json需要配置 "-std=c++14", 和 "-pthread" //支持多线程
安装gitlens插件
git config --global user.name "your_username" # 配置用户名
$ git config --global user.email "your_email" # 配置邮箱
2 安装log4cplus日志系统
3 安装websocket
基于c++ websocket库有libwebsocket,websocketpp,uwebsocket等,此处选择websocketpp,调用简单,不过需要先安装boost库
3.1需要先安装boost
https://www.boost.org/users/download/
sudo tar -xvf boost_1_78_0.tar.bz2
//看情况是否要带上工具集--with-toolset=gcc ,默认gcc;带上sudo
sudo ./bootstrap.sh
sudo ./b2 install
设置环境变量,/etc/profile文件尾追加
export CPLUS_INCLUDE_PATH=/usr/local/boost/include:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=/usr/local/boost/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/boost/lib:$LD_LIBRARY_PATH
source /etc/profile //使环境变量生效
踩坑记录:libndi.so.5一直提示找不到路径,环境变量未生效。
3.2 安装websocketpp
git clone https://github.com/zaphoyd/websocketpp.git
cd websocketpp #进入目录
cmake CMakeLists.txt #执行cmake
sudo make
sudo make install
3.3测试websocketpp提供的官方接口
//准备启动server端
cd websocketpp/examples/echo_server
#编译链接echo_server
g++ -o echo_server echo_server.cpp -lboost_system -lpthread -std=c++11
./echo_server
#启动服务器端
//准备启动client端
cd websocketpp/examples/echo_client
#编译链接echo_client
g++ -o echo_client echo_client.cpp -lboost_system -lpthread -std=c++11
#启动客户端
./echo_client
4 ffmpeg编译,带x264,x265
git clone http://git.videolan.org/git/x264.git
sudo apt-get install nasm
./configure
make
sudo make install
cd x265/build/linux
sudo apt-get install mercurial cmake cmake-curses-gui build-essential yasm
./make-Makefiles.bash
make
sudo make install
编解码用到avcodec
混流,混音需要用到avfilter滤镜功能
5 ndi sdk
ndi推拉流需要用到ndi sdk。
解压,
Install_NDI_Advanced_SDK_v5_Linux.sh
NDI Advanced SDK for Linux/examples/C++ make编译,NDIlib_Recv项目中包含编译结果libndi.so.5
c_cpp_properties.json includePath设置头文件路径/home/buji/Downloads/NDI Advanced SDK for Linux/include
libndi.so.5拷贝到调用代码当前目录
6 cmake生成makefile