news 2026/6/15 17:48:42

FFmpeg 使用RTSP服务器录屏并推流

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FFmpeg 使用RTSP服务器录屏并推流

FFmpeg本身不支持直接输出RTSP流作为服务器,但你可以使用:

ffmpeg -f gdigrab -framerate 15 -video_size 1920x1080 -i desktop -c:v libx264 -preset ultrafast -f rtsp rtsp://localhost:8554/mystream

需要先安装并运行RTSP服务器https://github.com/aler9/rtsp-simple-server

如果想使用本地MP4文件作为视频源推RTSP流,将命令修改如下:

ffmpeg -re -i 1.mp4 -c copy -f rtsp rtsp://localhost:8554/mystream

1.基础推流(保持原编码)

ffmpeg -re -i 1.mp4 -c copy -f rtsp rtsp://localhost:8554/mystream
  • -re:以原始帧率读取输入文件(重要!否则会极速播放)

  • -i 1.mp4:指定输入文件

  • -c copy:流复制,不重新编码(高效)

  • -f rtsp:指定输出格式为RTSP

2.重新编码推流(需要转码时)

ffmpeg -re -i 1.mp4 -c:v libx264 -preset ultrafast -c:a aac -f rtsp rtsp://localhost:8554/mystream

3.带优化的完整命令

ffmpeg -re -i 1.mp4 \ -c:v libx264 -preset ultrafast -tune zerolatency \ -c:a aac -ar 44100 -b:a 128k \ -f rtsp -rtsp_transport tcp rtsp://localhost:8554/mystream

4.循环播放推流

ffmpeg -re -stream_loop -1 -i 1.mp4 -c copy -f rtsp rtsp://localhost:8554/mystream

-stream_loop -1:无限循环播放

5.指定分辨率/帧率推流

ffmpeg -re -i 1.mp4 \ -vf "scale=1280:720" -r 25 \ -c:v libx264 -preset ultrafast \ -c:a aac \ -f rtsp rtsp://localhost:8554/mystream

常见使用场景

场景1:简单的文件推流

ffmpeg -re -i 1.mp4 -c copy -f rtsp rtsp://192.168.1.100:554/live

场景2:推流到远程RTSP服务器(TCP传输)

ffmpeg -re -i 1.mp4 \ -c:v libx264 -preset ultrafast \ -c:a aac \ -f rtsp -rtsp_transport tcp rtsp://192.168.1.244:554/live/test

场景3:多文件连续推流

ffmpeg -re -f concat -safe 0 -i filelist.txt -c copy -f rtsp rtsp://localhost:8554/mystream

创建filelist.txt

file '1.mp4'
file '2.mp4'
file '3.mp4'

场景4:带水印推流

ffmpeg -re -i 1.mp4 -i watermark.png \ -filter_complex "overlay=10:10" \ -c:v libx264 -preset ultrafast \ -c:a aac \ -f rtsp rtsp://localhost:8554/mystream

重要参数对比

原屏幕录制命令参数文件推流对应参数说明
-f gdigrab-re文件推流需要-re保持正常帧率
-i desktop-i 1.mp4输入源改为文件
-video_size 1920x1080(可选)-vf "scale=1920:1080"如果需要缩放
-framerate 15(可选)-r 15如果需要调整帧率

验证推流是否成功

使用FFplay播放测试

ffplay rtsp://localhost:8554/mystream

使用VLC播放测试

打开VLC → 媒体 → 打开网络串流 → 输入rtsp://localhost:8554/mystream

常见问题解决

问题1:推流速度太快

原因:缺少-re参数
解决:添加-re参数

问题2:音频不同步

解决:

ffmpeg -re -i 1.mp4 -async 1 -c copy -f rtsp rtsp://localhost:8554/mystream

问题3:连接被拒绝

解决

  • 确保RTSP服务器正在运行

  • 检查端口是否开放

  • 尝试使用TCP传输:-rtsp_transport tcp

  • 最简单的命令就是:

  • ffmpeg -re -i 1.mp4 -c copy -f rtsp rtsp://localhost:8554/mystream

    解析

推流到远程RTSP服务器(TCP传输 ffmpeg -re -i 1.mp4 \ -c:v libx264 -preset ultrafast \ -c:a aac \ -f rtsp -rtsp_transport tcp rtsp://192.168.1.244:554/live/test
组成部分含义说明
rtsp://协议使用RTSP(实时流协议)
192.168.1.244服务器IP地址这是你要推流到的目标服务器
:554端口号RTSP默认端口(可选,默认就是554)
/live/test流路径/名称流的访问路径,服务器端定义的

详细说明

目标服务器

  • IP地址192.168.1.244

  • 这是局域网内的一个设备(192.168.x.x是私有IP段)

  • 可能是:另一台电脑、NAS、监控NVR、媒体服务器、路由器等

2.端口

  • 554是RTSP标准端口

  • 如果你的服务器使用其他端口,需要相应修改

3.流路径

  • /live/test是流的标识符

  • 不同服务器可能有不同的路径格式:

    • rtsp://192.168.1.244/live(无具体流名)

    • rtsp://192.168.1.244/stream1

    • rtsp://192.168.1.244/channel1

常见RTSP服务器类型

1.专业的媒体服务器

  • Wowza、Nginx-rtmp-module(带RTSP支持)

  • 路径通常是自定义的

2.监控/NVR设备

  • 海康威视:rtsp://192.168.1.244:554/Streaming/Channels/101

  • 大华:rtsp://192.168.1.244:554/cam/realmonitor?channel=1&subtype=0

3.开源RTSP服务器

  • RtspSimpleServerrtsp://192.168.1.244:8554/mystream

  • Live555rtsp://192.168.1.244/live/test

4.软件应用程序

  • VLC(作为服务器)

  • FFmpeg(配合其他组件)

如何确定服务器地址和路径?

方法1:查看服务器配置

登录到192.168.1.244设备的管理界面,查看:

  • RTSP服务是否启用

  • 端口号是多少

  • 流路径格式是什么

方法2:尝试常见路径

# 尝试几种常见路径 ffmpeg -re -i 1.mp4 -c copy -f rtsp rtsp://192.168.1.244/live ffmpeg -re -i 1.mp4 -c copy -f rtsp rtsp://192.168.1.244/stream ffmpeg -re -i 1.mp4 -c copy -f rtsp rtsp://192.168.1.244:8554/live

方法3:先测试连接

# 使用FFprobe检测服务器 ffprobe rtsp://192.168.1.244:554 # 或尝试播放(如果服务器已有流) ffplay rtsp://192.168.1.244:554/live

命令执行流程

你的电脑(运行FFmpeg) ↓ 推送RTSP流(TCP协议) ↓ 192.168.1.244:554(远程服务器) ↓ 其他设备可以从服务器拉流观看 ↓ 播放地址:rtsp://192.168.1.244:554/live/test

验证服务器是否可达

1.Ping测试

ping 192.168.1.244

2.端口测试

telnet 192.168.1.244 554 # 或 nc -zv 192.168.1.244 554

3.查看服务器日志

192.168.1.244服务器上查看是否有连接请求

常见错误及解决

错误1:连接拒绝

Connection refused

原因:服务器未运行RTSP服务或端口错误

错误2:认证失败

401 Unauthorized

解决:添加用户名密码

rtsp://username:password@192.168.1.244:554/live/test

错误3:路径不存在

404 Not Found

原因:流路径不正确,需要确认服务器要求的路径格式

总结

你的命令是推流到:

  • 服务器192.168.1.244(局域网内的设备)

  • 端口:554(RTSP默认端口)

  • 流路径/live/test

如果你不知道这个服务器是否支持RTSP,需要:

  1. 确认该IP的设备确实运行了RTSP服务

  2. 确认端口和路径格式正确

  3. 或者先在自己电脑上搭建RTSP服务器测试(localhost)

最简单测试方法:

# 先推流到本地测试 ffmpeg -re -i 1.mp4 -c copy -f rtsp rtsp://localhost:8554/test # 再用播放器测试 ffplay rtsp://localhost:8554/test

确认本地工作正常后,再尝试推流到远程服务器192.168.1.244

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 13:45:39

[Materials] np density 和 temperature index perturbation 仿真对象

这里写目录标题 引言 正文 从 CHARGE 和 HEAT 导出折射率扰动网格属性 np 密度网格属性 温度网格属性 导入温度折射率扰动网格属性到 FDTD 或者 MODE 中 添加 np density 对象 导入数据 创建一个折射率扰动材料模型 Author: JiJi \textrm{Author: JiJi} Author: JiJi Created …

作者头像 李华
网站建设 2026/6/15 16:26:00

文本分块完全指南:提升大模型RAG效果的底层原理与实践

本文详细介绍了文本分块的原理、方法和实现技巧,是提升大模型RAG效果的关键技术。文章探讨了分块大小对检索精度的影响,并系统讲解了多种分块方法(如字符分块、递归分块、语义分块等)及其适用场景,同时提供了高级索引技…

作者头像 李华
网站建设 2026/6/14 1:36:06

PMP考证三本书,实际就200条考点,小白一次过!

2026年7月PMP又要改版啦,新增图形题跟案例题,难度飙升,各位备考的友友抓紧时间考3月跟6月的考试吧,目前的考纲参考教材三本书,考点归纳起来也就200条考点,小白不用担心,跟着学上岸很容易&#x…

作者头像 李华
网站建设 2026/6/15 6:27:21

.NET运行时核心仓库的治理架构解析:责任分配与协作机制

核心协作机制标签系统与通知机制文档明确了 Pull Request 和 Issue 的标签策略:当需要在问题或 PR 中标记相关人员时,应该标记区域责任人(Owners)而非领导者(Lead)。这种设计体现了扁平化的协作理念&#x…

作者头像 李华
网站建设 2026/6/15 9:12:27

中科大团队揭秘一分钟高清视频的生成秘诀

这项由中国科学技术大学的贾维南、黄孟琦团队与字节跳动FanqieAI、香港科技大学、武汉大学等机构联合完成的研究,于2025年10月22日发表在arXiv预印本平台,论文编号为arXiv:2510.18692v1。有兴趣深入了解的读者可以通过该编号查询完整论文。这项研究首次实…

作者头像 李华