文章详情
1935(RTMP 推流) 8080(HTTP-FLV / HLS 播放)
【直播】使用ffmpeg实现画面推流
Posted on 2026-05-02 07:25:24 by 主打一个C++
测试系统环境:Linux stream9 + Windows
1. 更新系统 + 装依赖
sudo dnf clean all
sudo dnf makecache
sudo dnf -y update
# 安装必要工具
sudo dnf -y install yum-utils device-mapper-persistent-data lvm22.安装 Docker(Stream9 亲测)
- 添加 Docker 源(阿里)
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo2. 安装 Docker
sudo dnf -y install docker-ce docker-ce-cli containerd.io3.启动 Docker + 开机自启
sudo systemctl enable docker
sudo systemctl start docker
sudo systemctl status docker
看到 active (running) 就成功。4.把当前用户加入 docker 组(免 sudo)
sudo groupadd -f docker
sudo usermod -aG docker $USER
newgrp docker3.开放防火墙端口(关键!不然连不上)
# 永久开放端口
sudo firewall-cmd --permanent --add-port=1935/tcp
sudo firewall-cmd --permanent --add-port=8080/tcp
# 重载生效
sudo firewall-cmd --reload
# 查看是否开放成功
sudo firewall-cmd --list-ports4.Docker 启动 SRS(流媒体服务器不存在会自动下载)
docker run -d --name srs -p 1935:1935 -p 8080:8080 -p 1985:1985 --restart=always registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5
检查是否启动
docker ps看到类似就成功:registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5 ... 0.0.0.0:1935->1935/tcp, 0.0.0.0:8080->8080/tcp ...
5.ffmpeg直接推流(参数自己修改,关键xy和size)
ffmpeg -y -f gdigrab -draw_mouse 1 -framerate 30 -offset_x 200 -offset_y 100 -video_size 1280x720 -i desktop -c:v libx264 -crf 26 -preset ultrafast -pix_fmt yuv420p -g 60 -b:v 3M -maxrate 5M -bufsize 10M -c:a aac -b:a 128k -ar 44100 -f flv rtmp://你的公网IP:1935/live/mystream6.拉流方案
HTTP-FLV(低延迟): http://公网IP:8080/live/mystream.flv
HLS: http://公网IP:8080/live/mystream.m3u8
7.最终测试建议
使用 VLC / PotPlayer 等播放器,直接打开 RTMP 地址: rtmp://公网IP:1935/live/mystream