1.1 项目目标
开发一个类似InletexEMC的跨平台投屏软件,支持从Ubuntu系统投屏到接收端(Windows/Linux/Mac)
1.2 技术栈
-
系统: Ubuntu 18.04 LTS
-
网络: UDP协议(快速实时传输)
-
界面: GTK3.0(C语言)
-
编码: FFmpeg(视频编码)
-
截图: X11/XCB/XDamage(屏幕捕获)
1.3 开发环境搭建
安装Ubuntu 18.04并配置开发环境
sudo apt update
sudo apt install build-essential git gcc gdb
sudo apt install libgtk-3-dev libavcodec-dev libavformat-dev libavutil-dev
sudo apt install libx11-dev libxdamage-dev libxfixes-dev
1.4 创建项目目录
创建screen_cast文件夹,在文件夹下创建该项目目录:

在screen_cast文件夹下添加创建目录脚本文件:create_dir.sh
#!/bin/bash
# 创建投屏软件项目目录结构
echo "正在创建投屏软件项目目录结构..."
# 创建src目录及其子目录
mkdir -p src
mkdir -p src/common
mkdir -p src/network
mkdir -p src/capture
mkdir -p src/encode
mkdir -p src/gui
# 创建其他目录
mkdir -p build
mkdir -p scripts
# 创建必要的空文件
touch src/main.c
touch README.md
# 创建.gitignore文件
cat > .gitignore << 'EOF'
# 构建输出
build/
*.o
*.so
*.a
# 可执行文件
screen_cast
# IDE文件
.vscode/
.idea/
*.swp
*~
# 临时文件
*.tmp
*.log
EOF
echo "目录结构创建完成!"
echo ""
echo "创建的结构:"
echo "screen_cast/"
echo "├── src/"
echo "│ ├── common/"
echo "│ ├── network/"
echo "│ ├── capture/"
echo "│ ├── encode/"
echo "│ ├── gui/"
echo "│ └── main.c"
echo "├── build/"
echo "├── scripts/"
echo "└── README.md"
echo ""
echo "当前目录位置:$(pwd)"
运行:
chmod u+x create_dir.sh
./create_dir.sh
1.5 gitee创建项目提交项目