前言

在项目开发过程中,由于采购的AI边缘服务器,实现智能识别相关的功能,需要视频流的输入,调试过程中单独去搞一台能开启RTSP服务的摄像头进行调试,就挺麻烦的。

为了方便在本地开发调试,以及现场调试,需要实现的功能有两点:

  1. 在本地开发时,用笔记本自带的摄像头完成推流

  1. 使用台式机的时候可能没有摄像头,需要使用视频文件进行推流

本文结合了网上的资料,实现了以上两点功能,希望对你能有所帮助。

环境搭建

系统:WIN10

推流服务:EasyDarwin

推流工具:ffmpeg

安装推流工具

这里我们选择ffmpeg进行推流,参考以下文章进行安装:

【配置环境】安装Ffmpeg音视频编解码工具和搭建EasyDarwin开源流媒体服务器_拉伊卜的博客-CSDN博客

安装推流服务

使用EasyDarwin,我们可以很便捷的在本地搭建一套rtsp推流服务,它支持linux和windows版本,这里我们直接去下载系统对应的,最新的release版本即可。

下载应用:EasyDarwin/EasyDarwin: open source、high performance、industrial rtsp streaming server,a lot of optimization on streaming relay,KeyFrame cache,RESTful,and web management,also EasyDarwin support distributed load balancing,a simple streaming media cloud platform architecture.高性能开源RTSP流媒体服务器,基于go语言研发,维护和优化:RTSP推模式转发、RTSP拉模式转发、录像、检索、回放、关键帧缓存、秒开画面、RESTful接口、WEB后台管理、分布式负载均衡,基于EasyDarwin构建出了一套基础的流媒体云视频平台架构!

下载对应系统的应用,并执行EasyDarwin.exe

获取推流服务地址

记住这个地址rtsp://172.22.128.1,后续推流的时候会用到。

该应用自带Web服务,可通过该服务可视化的管理流,服务地址: http://localhost:10008

推流

摄像头推流

查找推流设备

使用ffmpeg查看有哪些可用于推流的摄像头设备:

上面打印的这些信息 我们只需要关注输出的这个设备名称就好,记住该名称,LRCP USB2.0,一会儿推流会用到

推流

参数解释:

  1. -s 要推流的分辨率

  2. video 参数为上面指令执行后,看到的设备名称

  3. -vcodec 视频编码格式,这里使用264的库

  4. 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
​