ffmpeg直播推拉流实现

基本命令

ffmpeg获取摄像头信息

ffmpeg -list_devices true -f dshow -i dummy

-list_devices true: 这个参数告诉FFmpeg列出设备列表。true表示要显示详细信息,包括设备名称和描述。

-f dshow: 这个参数指定要使用DirectShow框架,它是Windows平台上的多媒体框架。dshow是DirectShow的缩写。

-i dummy: -i参数表示输入文件或设备。在这个命令中,dummy表示一个虚拟设备。使用虚拟设备可以获取系统中可用的音视频设备列表,而不是实际读取设备的内容。

ffplay 读取摄像头

ffplay -f dshow -i video=" name " -s 1280x720

name 是Alternative name,在摄像头信息中获取替换

推流

UDP推流
ffmpeg -re -i input.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/stream

TCP推流
ffmpeg -re -i input.mp4 -c copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream

循环推流
ffmpeg -re -stream_loop -1 -i input.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/stream

-re  以流的方式读取
-stream_loop  循环读取视频源次数,-1为无限循环
-i 输入的文件
-f 指定的格式

ffmpeg拉流

# ffmpeg:
ffmpeg -stimeout 30000000 -i rtsp://127.0.0.1:8554/stream -c copy output.mp4

-stimeout 30000000 为等待RTSP 流连接的时间,单位为us微秒,30000000 为等待 30 秒,如果连接失败则退出。特别注意该字段要放在rtsp地址之前,否者无效。

ffplay

ffplay rtsp://127.0.0.1:8554/stream

rtsp-simple-server工具

mediamtx
直接下载,双击打开,就能直接在Windows上搭建一个rtsp或rtmp服务器
在这里插入图片描述

实现直播效果

获取摄像头数据,推流到rtsp服务器

ffmpeg -f dshow -i video="@device_pnp_\\?\usb#vid_04f2&pidmi_00#6&1c9259a2&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtsp rtsp:127.0.0.1:8554/stream

拉流

ffplay -i rtsp:127.0.0.1:8554/stream
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值