当前位置: 首页 > news >正文

Windows上用FFmpeg推流及拉流的流程概览

1. 视频采集与推流(Windows + FFmpeg)

  • 采集设备:Windows上的摄像头,比如“Integrated Camera”。

  • 采集方式:FFmpeg通过 dshow 设备接口读取摄像头。

  • 推流协议:你可以选择推到 RTMP 或 RTSP 服务器。

  • 推流命令示例

    • 推RTMP流:

      ffmpeg -rtbufsize 100M -f dshow -video_size 1280x720 -framerate 30 -i video="Integrated Camera" -c:v libx264 -f flv rtmp://localhost/live/stream

    • 推RTSP流(前提服务器支持接收RTSP推流):

      ffmpeg -rtbufsize 100M -f dshow -video_size 1280x720 -framerate 30 -i video="Integrated Camera" -c:v libx264 -f rtsp rtsp://localhost:8554/live/stream


2. 服务器转发(MediaMTX 或其他)

  • 服务监听端口和协议

    • RTMP监听默认1935端口

    • RTSP监听默认8554端口

  • 服务器角色

    • 接收推送的流(RTMP或RTSP)

    • 将流转发给客户端(可支持RTMP、RTSP、HLS、WebRTC等协议)

  • 关键点

    • 服务器需要配置支持你推的协议和对应路径。

    • 如果推的是RTMP流,但客户端要用RTSP拉流,服务器必须支持RTMP->RTSP转发。

    • 否则客户端必须用相同协议拉流。


3. 客户端拉流

  • 协议必须对应推流协议或服务器转协议后的协议

  • 例子:

    • 你推的是RTMP流,客户端用:

      ffplay rtmp://localhost/live/stream

    • 你推的是RTSP流,客户端用:

      ffplay rtsp://localhost:8554/live/stream

    • 如果用OpenCV读取流,也要用对应的协议URL。

http://www.xdnf.cn/news/747163.html

相关文章:

  • 操作系统学习(八)——同步
  • 【python深度学习】Day 41 简单CNN
  • STM32F103通过Zigbee实现多分用户向主用户发送信息
  • LeetCode Hot100 (贪心)
  • VS Code / Cursor 将默认终端设置为 CMD 完整指南
  • 算法打卡12天
  • Leetcode LCR 187. 破冰游戏
  • cuda_fp8.h错误
  • Python 中Vector类的格式化实现,重点拆解其超球面坐标系的设计精髓
  • C# 面向对象特性
  • 吉林第三届全国龙舟邀请赛(大安站)激情开赛
  • 打卡day41
  • Kanass入门教程- 事项管理
  • 科普:Linux `su` 切换用户后出现 `$` 提示符,如何排查和解决?
  • 山东大学软件学院项目实训-基于大模型的模拟面试系统-面试官和面试记录的分享功能(2)
  • InfluxDB 高级函数详解:DERIVATIVE、INTEGRAL、SPREAD、HISTOGRAM 与 DIFFERENCE
  • [SC]SystemC在CPU/GPU验证中的应用(五)
  • 22睿抗省赛真题
  • DAY41
  • 【SLAM自救笔记1】:苟活
  • 【Netty系列】消息编码解码框架
  • LeetCode[110]平衡二叉树
  • 第6章 放大电路的反馈
  • AI Agent、Function Calling 与 MCP 协议的原理与实践
  • Linux系统-基本指令(4)
  • 评标专家随机抽选系统-建设方案——仙盟创梦IDE
  • WEB3——简易NFT铸造平台之nft.storage
  • 【知识点进阶】
  • Java 中 Redis 过期策略深度解析(含拓展-redis内存淘汰策略列举)
  • TI MSPM0G3507 简易PID项目显示和按键控制