Docker 启动 SRS
docker run -d --name srs -p 1935:11935 -p 1985:11985 -p 11248:8080 ossrs/srs
测试 RTMP 流是否可用
生成测试视频流推送到 RTMP 服务器:
ffmpeg -re -f lavfi -i testsrc=size=1280x720:rate=30 -c:v libx264 -preset ultrafast -f flv rtmp://localhost:11935/live/test
使用 ffprobe 测试:
ffprobe rtmp://localhost:11935/live/test
……
Input #0, flv, from 'rtmp://localhost:11935/live/test':
Metadata:
|RtmpSampleAccess: true
encoder : Lavf61.7.100
server : SRS/6.0.101(Hang)
server_version : 6.0.101
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Data: none
Stream #0:1: Video: h264 (Constrained Baseline), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 1k tbn
Unsupported codec with id 0 for input stream 0
使用 PotPlayer 或 VLC media player 播放rtmp://localhost:11935/live/test
。
尝试命令持续推送单张最新图片
推送单张图片到流:
ffmpeg -loop 1 -re -i "20250208081717.png" -c:v libx264 -tune stillimage -f flv rtmp://localhost:11935/live/test
使用 PotPlayer 播放正常。
尝试在 linux 上通过读取管道,但两次推送图片到管道之间间隔 0.1s 都会导致 ffmpeg 命令停止运行。
# 创建管道
mkfifo /tmp/img_pipe
# 从管道读取推送到 RTMP
ffmpeg -loop 1 -re -i /tmp/img_pipe -c:v libx264 -tune stillimage -f flv rtmp://localhost:1935/live/test
新终端推送图片到管道:
cat /tmp/20250208081717.png > /tmp/img_pipe
还尝试过实时修改固定文件内容也不行。
sad ending.
评论区