添加模式2:HDMI采集卡方案说明
This commit is contained in:
78
README.md
78
README.md
@@ -134,6 +134,84 @@ with mss.mss() as sct:
|
||||
- 在32台终端上运行 `auto_receive.py` 脚本
|
||||
- 脚本会自动打开Chrome并跳转到流地址
|
||||
|
||||
## 模式2:HDMI采集卡方案
|
||||
|
||||
本模式适用于服务器安装了视频采集卡,可以接受外部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 服务器 IP:192.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)
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user