1、局域网教室投屏软件项目介绍

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创建项目提交项目

相关推荐
乌萨奇也要立志学C++18 小时前
【Linux】Socket编程UDP Echo 服务器→翻译服务器→多人聊天室
linux·服务器·udp
春蕾夏荷_7282977253 天前
1、c++ acl udp服务器客户端简单实例-服务器端(1)
服务器·c++·udp
艾莉丝努力练剑3 天前
【Linux网络】Linux 网络编程入门:UDP Socket 编程(上)
linux·运维·服务器·网络·c++·udp
时空自由民.3 天前
计算机网络通信之TCP/UDP
网络协议·tcp/ip·udp
春蕾夏荷_7282977253 天前
1、c++ acl udp服务器客户端简单实例-客户器端(2)
服务器·c++·udp
stars-he3 天前
基于 Design Compiler 的 UDP Payload 追加控制模块综合与门级后仿真
笔记·fpga开发·udp
时空自由民.3 天前
蓝牙GAP/GATT协议和计算机网络TCP/UDP通信对比
tcp/ip·计算机网络·udp
HABuo3 天前
【linux(四)】套接字编程--基于UDP协议的客户端服务端
linux·服务器·c++·网络协议·ubuntu·udp·centos
艾莉丝努力练剑3 天前
【Linux网络】Linux 网络编程入门:UDP Socket 编程(下)
linux·运维·服务器·网络·计算机网络·安全·udp
WIZnet4 天前
W55MH32 RTThread+UDP通信测试
网络·网络协议·udp