搭建USB摄像头转RTSP服务器的多种方法

本文详细介绍了如何利用FFmpeg和ffserver将USB摄像头数据转化为RTSP流,实现远程访问。首先,通过配置ffserver.conf文件设置服务器参数和流媒体格式。然后,使用ffmpeg将USB摄像头的视频流推送到ffserver,并启动服务。最后,通过VLC等客户端工具,使用RTSP地址访问摄像头直播。整个过程包括安装、配置、启动、转发流和客户端读取等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址::https://blog.youkuaiyun.com/aiq8620/article/details/101265706

相关文章

1、搭建USB摄像头转RTSP服务器的多种方法----https://www.cnblogs.com/chay/p/10553787.html

2、搭建USB摄像头转RTSP服务器的多种方法----https://www.cnblogs.com/enumx/p/12345036.html

3、搭建RTSP转发服务器----https://www.jianshu.com/p/a287e4e9fec3

4、搭建USB摄像头转RTSP服务器的多种方法----http://t.zoukankan.com/enumx-p-12345036.html

5、Hi3518采集摄像头图片并把Hi3518当作RTSP服务器,用VLC请求视频直播----https://download.youkuaiyun.com/download/zhanshenrui/10324783

6、一个基于Live555的RTSP服务器软件,有采集摄像头视频的功能----https://download.youkuaiyun.com/download/zhoubotong2012/10242403?utm_source=iteye_new

7、我在内网环境下有个IP摄像头(rtsp://192.168.0.1:554/123456.sdp),我想在一台公网IP的电脑上访问这个IP摄像头。请问什么方法可以实现上面的需求(编程实现)?或者哪位高手做过TCP NAT穿透的也可以指点一下实现方法。----https://www.zhihu.com/question/20671869

8、网络摄像头Rtsp直播方案(一)----https://blog.youkuaiyun.com/weixin_36983723/article/details/85070064

9、网络摄像头Rtsp直播方案(二)----https://blog.youkuaiyun.com/weixin_36983723/article/details/85125161

10、网络摄像头RTSP直播方案(三)----https://blog.youkuaiyun.com/weixin_36983723/article/details/86537218

11、使用树莓派专用摄像头实现rtsp流的方法总结----https://blog.youkuaiyun.com/secho1997/article/details/53526784

12、RTSP摄像头如何实现全平台拉RTSP流推RTMP直播流----https://baijiahao.baidu.com/s?id=1649533322935749625&wfr=spider&for=pc

USB摄像头与网络摄像头相比,可选择范围广、种类多、成本低,但是实际使用时需要通过rtsp流来访问,起到直播的效果,因此在摄像头采集终端上构建rtsp流媒体服务器,将USB摄像头数据转化为rtsp,可以多个客户端访问。

ffserver

关键概念

  • ffserver,负责响应客户端的流媒体请求,把流媒体数据发送给客户端。
  • ffserver.conf,ffserver启动时的配置文件,在这个文件中主要是对网络协议,缓存文件feed1.ffm和要发送的流媒体文件的格式参数做具体的设定。
  • feed1.ffm,可以看成是一个流媒体数据的缓存文件,ffserver启动后会自动生成。ffmpeg把转码好的数据发送给ffserver,如果没有客户端连接请求,ffserver把数据缓存到该文件中。
  • ffmpeg,负责媒体文件的转码工作,把你服务器上的源媒体文件转换成要发送出去的流媒体文件。

819930-20190318175228753-1438522858.jpg


大致流程为:通过ffmpeg将usb摄像头数据推送到ffserver服务器,终端设备通过rtsp地址访问,达到远程访问的效果。

安装与配置

sudo apt install ffmpeg libx264-dev

在终端中打开配置文件:

sudo gedit /etc/ffserver.conf

然后修改为以下内容:

 
  1. HTTPPort 8090 #绑定端口号

  2. HTTPBindAddress 0.0.0.0 #绑定IP

  3. MaxHTTPConnections 2000 #最大HTTP连接数

  4. MaxClients 1000 #最大客户端连接数

  5. MaxBandwidth 1000 #最大带宽

  6. CustomLog - #日志文件,- 为直接打印

  7. <Feed feed1.ffm> #feed:每一个输入都建立一个feed

  8. File /tmp/feed1.ffm #feed缓存文件位置和名称

  9. FileMaxSize 10M #缓存文件最大值

  10. ACL allow 127.0.0.1 #允许写入feed的IP

  11. ACL allow 192.168.0.0 192.168.255.255 #允许写入feed的IP范围

  12. </Feed>

  13. RTSPPort 8554 #rtsp端口号

  14. RTSPBindAddress 0.0.0.0 #rtsp IP地址

  15. <Stream live1.h264> #

  16. Format rtp #视频流的格式

  17. Feed feed1.ffm #视频流的种子来源

  18. VideoCodec libx264 #

  19. VideoFrameRate 24 #视频帧率

  20. VideoBitRate 128 #视频比特率

  21. VideoBufferSize 100 #视频缓冲区大小

  22. VideoSize 640x480 #视频帧大小

  23. VideoQMin 1 #

  24. VideoQMax 31 #

  25. NoAudio #无音频

  26. AVPresetVideo default

  27. AVPresetVideo baseline

  28. AVOptionVideo flags +global_header

  29. ACL allow localhost

  30. ACL allow 192.168.0.0 192.168.255.255

  31. </Stream>

  32. <Stream stat.html>

  33. Format status

  34. ACL allow localhost

  35. ACL allow 192.168.0.0 192.168.255.255

  36. </Stream>

  37. <Redirect index.html>

  38. URL http://www.ffmpeg.org/

  39. </Redirect>

关于ffserver.conf的具体介绍,可参考官方给的配置文件说明,如果有多个USB摄像头,参考feed1的写法,再写一个缓存文件即可。

启动服务与转发流

启动ffserver服务终端直接运行:

ffserver

转发rtsp流

ffmpeg -f v4l2 -i /dev/video1  -s 640x480 -r 24 -vcodec libx264 -an http://127.0.0.1:8090/feed1.ffm

注意:其中/dev/video1表示USB摄像头对应的名称,要根据自己的设备情况对应更改。

客户端读取

在另外一台终端设备上,如windows的电脑上,用VLC软件,打开网络串流,输入如下rtsp地址,即可打开摄像头:

rtsp://192.168.xx.xx:8554/live1.h264

vlc

安装

sudo apt-get install vlc

转流

cvlc -vvv v4l2:///dev/video1 --sout '#transcode{vcodec=h264,vb=800,acodec=mp4a}:rtp{sdp=rtsp://:8554/live.ts}' -I dummy

其中:

 
  1. v4l2:// - Video4Linux is the interface to webcams on Linux

  2. /dev/video1 - device number assigned to webcam by Linux

  3. vcodec=h264 video codec

  4. vb=800 - 800 kb/s video bit rate

  5. acodec=mp4a

  6. sdp=rtsp://:8554/ - URL/port advertised by RTSP

客户端读取

同样的,可在windows电脑上的VLC软件中,输入如下rtsp地址打开摄像头,注意将IP地址改为服务器的地址

rtsp://192.168.xx.xx:8554/live.ts

转载于:https://www.cnblogs.com/chay/p/10553787.html

相关资源:基于Live555从多个摄像头获取数据并Rtsp服务器

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值