添加模式2:HDMI采集卡方案说明

This commit is contained in:
2026-03-19 11:46:41 +08:00
parent f89db484a1
commit 8028990fb6

View File

@@ -134,6 +134,84 @@ with mss.mss() as sct:
- 在32台终端上运行 `auto_receive.py` 脚本 - 在32台终端上运行 `auto_receive.py` 脚本
- 脚本会自动打开Chrome并跳转到流地址 - 脚本会自动打开Chrome并跳转到流地址
## 模式2HDMI采集卡方案
本模式适用于服务器安装了视频采集卡可以接受外部HDMI信号的场景。
### 步骤1安装FFmpeg
- 下载FFmpeg`https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z`
- 解压到 `D:\ScreenCast\ffmpeg` 目录
- 确保 `D:\ScreenCast\ffmpeg\bin\ffmpeg.exe` 可用
### 步骤2列出DirectShow设备
在命令行执行以下命令,列出所有 DirectShow 设备:
```bat
ffmpeg -list_devices true -f dshow -i dummy
```
输出示例:
```
[dshow @ ...] DirectShow video devices
[dshow @ ...] "USB Video Device"
[dshow @ ...] "AVerMedia HD Capture"
```
记下要使用的设备名称。
### 步骤3配置MediaMTX
编辑 `mediamtx.yml`,添加 `hdmi` 路径配置:
```yaml
paths:
hdmi:
# source 不写,或者写 publisher表示"由客户端推流进来"
# source: publisher
# 局域网可以先不开认证
# publishUser: ""
# publishPass: ""
# 有读者时才拉源(这里用不到,因为是 publisher 模式)
sourceOnDemand: no
```
### 步骤4启动MediaMTX
```bat
./mediamtx
```
看到日志里 RTMP/RTSP/WebRTC 端口监听就表示启动成功。
### 步骤5用FFmpeg采集采集卡并推流
假设:
- MediaMTX 服务器 IP192.168.1.100
- 推流路径名hdmi
- DirectShow 设备名称:"AVerMedia HD Capture"
```bat
ffmpeg -f dshow -i video="AVerMedia HD Capture" ^
-c:v libx264 -preset ultrafast -tune zerolatency ^
-profile:v baseline -pix_fmt yuv420p ^
-b:v 4000k -maxrate 4000k -bufsize 8000k ^
-g 30 ^
-f flv rtmp://192.168.1.100/hdmi
```
### 步骤6客户端观看
在浏览器中直接访问:
```
http://192.168.1.100:8889/hdmi
```
MediaMTX 会返回内置的 WebRTC 播放页面浏览器会自动播放HDMI信号。
## 核心文件结构统一放在服务器D:\ScreenCast ## 核心文件结构统一放在服务器D:\ScreenCast
``` ```