前言
在项目开发过程中,由于采购的AI边缘服务器,实现智能识别相关的功能,需要视频流的输入,调试过程中单独去搞一台能开启RTSP服务的摄像头进行调试,就挺麻烦的。
为了方便在本地开发调试,以及现场调试,需要实现的功能有两点:
在本地开发时,用笔记本自带的摄像头完成推流
使用台式机的时候可能没有摄像头,需要使用视频文件进行推流
本文结合了网上的资料,实现了以上两点功能,希望对你能有所帮助。
环境搭建
系统:WIN10
推流服务:EasyDarwin
推流工具:ffmpeg
安装推流工具
这里我们选择ffmpeg进行推流,参考以下文章进行安装:
【配置环境】安装Ffmpeg音视频编解码工具和搭建EasyDarwin开源流媒体服务器_拉伊卜的博客-CSDN博客
安装推流服务
使用EasyDarwin,我们可以很便捷的在本地搭建一套rtsp推流服务,它支持linux和windows版本,这里我们直接去下载系统对应的,最新的release版本即可。
下载对应系统的应用,并执行EasyDarwin.exe
获取推流服务地址

记住这个地址rtsp://172.22.128.1,后续推流的时候会用到。
该应用自带Web服务,可通过该服务可视化的管理流,服务地址: http://localhost:10008
推流
摄像头推流
查找推流设备
使用ffmpeg查看有哪些可用于推流的摄像头设备:

上面打印的这些信息 我们只需要关注输出的这个设备名称就好,记住该名称,LRCP USB2.0,一会儿推流会用到
推流
参数解释:
-s要推流的分辨率video参数为上面指令执行后,看到的设备名称-vcodec视频编码格式,这里使用264的库rtsp是指执行EasyDarwin.exe的服务地址 + 自定义推流路经
C:\Users\Administrator>ffmpeg -s 1920x1080 -f dshow -i video="LRCP USB2.0" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -rtsp_transport tcp -f rtsp rtsp://172.22.128.1/pushStream视频文件推流
高帧率推流
D:\FFOutput>ffmpeg -stream_loop -1 -i 人员逗留.mp4 -c:v libx264 -preset veryfast -b:v 2000k -f rtsp rtsp://172.22.128.1/pushStream默认帧率推流
慢
D:\FFOutput>ffmpeg -re -stream_loop -1 -i 抽烟.mp4 -c copy -f rtsp rtsp://172.22.128.1/pushStream快
D:\FFOutput>ffmpeg -re -stream_loop -1 -i 抽烟.mp4 -c:v libx264 -preset veryfast -b:v 2000k -f rtsp rtsp://172.22.128.1/pushStream测试
使用安装ffmpeg套件中提供的ffplay可以播放视频流
C:\Users\Administrator>ffplay -rtsp_transport tcp rtsp://172.22.128.1/pushStream