物联网架构成长之路(41)-直播流媒体入门(RTSP篇)

1. 搭建RTSP服务
  首先现在音视频利器 ffmpeg,这个到http://www.ffmpeg.org/download.html 这里下载压缩包即可。
  文档参考:http://trac.ffmpeg.org/wiki/ffserver
  二进制下载地址:https://ffbinaries.com/downloads
  由于ffserver在4.0以上已经移除了,所以只能下载3.x功能,不过已经够用了。我们只是用来测试而已。
  新增ffserver.conf 配置

 1 RTSPPort 5454
 2 HTTPBindAddress 0.0.0.0
 3 RTSPBindAddress 0.0.0.0
 4 MaxHTTPConnections 2000
 5 MaxClients 1000
 6 MaxBandwidth 1000
 7 <Stream test.rtsp>
 8 File "./003.MOV"
 9 Format rtp
10 </Stream>

  启动RTSP服务


  利用ffplay 测试播放rtsp视频

ffplay rtsp://172.16.20.197:5454/test.rtsp

2. 搭建RTSP流媒体服务器
  注意这种与上面那一种的区别。
  我们使用开源 https://github.com/EasyDarwin/EasyDarwin 搭建一个流媒体服务。
  该方式的流程是,利用ffmpeg 以RTSP流方式推流到流媒体服务器EasyDarwin,然后再利用ffplay 以RTSP流方式拉流播放
  先到这里https://github.com/EasyDarwin/EasyDarwin/releases 下载EasyDarwin的二进制包。然后默认配置运行起来。

  启动后,访问http://172.16.23.241:10008 界面效果如下

  利用ffmpeg,将文件推流到EasyDarwin流媒体服务器上。

ffmpeg -re -i 003.MOV -rtsp_transport tcp -vcodec h264 -f rtsp rtsp://172.16.23.241:554/test.rtsp


  利用ffplay,从EasyDarwin流媒体服务器上拉流进行播放。

ffplay.exe -i rtsp://172.16.23.241:554/test.rtsp

  我们平时买的大华,海康等这些IPCamera,一般都是提供RTSP协议。参见的格式如下:

rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream

  这种方式就是我们的第一种方式。一般我们利用一个PC工具,就可以实现播放监控。
  EasyDarwin自带有RTSP拉流功能。

rtsp://172.16.20.197:5454/test.rtsp => rtsp://172.16.23.241/easydarwin


  利用这个功能实现从RTSP流到RTSP流,类似于转播功能。

参考资料:

  IPCamera RTSP格式: https://blog.csdn.net/hk121/article/details/83858480
  EasyDarwin提供PC工具:https://pan.baidu.com/s/1-7lZ3KM4wPl87OLx2tWjTQ

本文地址: https://www.cnblogs.com/wunaozai/p/11772060.html

原文地址:https://www.cnblogs.com/wunaozai/p/11772060.html

时间: 2024-08-01 14:54:13

物联网架构成长之路(41)-直播流媒体入门(RTSP篇)的相关文章

物联网架构成长之路(42)-直播流媒体入门(RTMP篇)

1. 安装RTMP流媒体服务器 以前其实我是利用Nginx-RTMP-module搭建过RTMP流媒体服务器,并实现了鉴权功能.参考https://www.cnblogs.com/wunaozai/p/9427730.html,看看发布时间,已经是一年多以前的事情了,感概时间过得好快啊. 先在Nginx官网[http://nginx.org/en/download.html]下载源码包,然后在github[https://github.com/arut/nginx-rtmp-module]下载插

物联网架构成长之路(16)-SpringCloud从入门到吹水

1.前言 Spring Cloud 现在比较流行,版本更新也是蛮快的,网上资料也是很多.很多参考网上资料就可以学到了.这里给个 http://blog.csdn.net/forezp/article/details/70148833 2.放弃 本来还想写一篇Spring Cloud 入门环境搭建的博客, 后来想了想,还是算了,网上资料一大堆.这里就不写了. 3.吹水 下面就简单聊聊天,吹吹水算了 2018.01.18 笔记 公司网速不行,在进行Maven项目以来更新,偷偷写一些经历. 现在开始学

物联网架构成长之路(36)-Vue前端入门

1. 前言 物联网平台,需要有一个类似大屏看板的功能. 找了一圈,发现阿里已经有对应的DataV产品,但是那个价格有点贵啊.所以找了这个[http://datav.jiaminghi.com/demo/],这看起来也是挺不错的.就是需要了解一些前端Vue.说到前端,我之前好久就想入门了.断断续续看视频,写Demo,写小程序.但都处于入门阶段.而且前端变化太快了.半年没看,就各种更新了.不过还是迟早要学的. 2. 安装环境 安装IDE,这里推荐VSCode,然后安装Vetur 插件 Google

物联网架构成长之路(40)-Bladex开发框架入门

0. 前言 前一小节,讲了如何入门,这里就简单讲一下如何自定义查询和权限控制配置. 1. 配置多租户 如果要启用该表的多租户功能,需要在application.yml 这里配置. 2. 配置模糊匹配 1 @GetMapping(value="/list2") 2 public R<IPage<Wunaozai>> list2(@RequestParam Map<String, Object> wunaozai, Query query){ 3 IPa

物联网架构成长之路(56)-SpringCloudGateway+JWT实现网关鉴权

0. 前言 结合前面两篇博客,前面博客实现了Gateway网关的路由功能.此时,如果每个微服务都需要一套帐号认证体系就没有必要了.可以在网关处进行权限认证.然后转发请求到后端服务.这样后面的微服务就可以直接调用,而不需要每个都单独一套鉴权体系.参考了Oauth2和JWT,发现基于微服务,使用JWT会更方便一些,所以准备集成JWT作为微服务架构的认证方式. [https://www.cnblogs.com/wunaozai/p/12512753.html] 物联网架构成长之路(54)-基于Naco

物联网架构成长之路(0)-目录

一.基础 [http://www.cnblogs.com/wunaozai/p/8067621.html] 物联网架构成长之路(1)-前言 [http://www.cnblogs.com/wunaozai/p/8075640.html] 物联网架构成长之路(2)-脚手架工具准备 [http://www.cnblogs.com/wunaozai/p/8082332.html] 物联网架构成长之路(3)-EMQ消息服务器了解

物联网架构成长之路(24)-Docker练习之Compose容器编排

0.前言 一开始学的之后,是想一步到位直接上Kubernetes(K8s)的,后面没想到,好像有点复杂,有些概念不是很懂.因此学习东西还是要循序渐进,慢慢来.先了解单机编排技术Docker Compose,了解一些技术细节及原理后,在入手K8s.还是不能一口吃成胖子,要多吃几口才可以.而且目前公司都是一些小项目,能用得上DockerCompose已经很不错了,还想要上K8s,估计是不现实的. 1. 安装 可以通过运行下面命令进行安装, 1 curl -L https://github.com/d

物联网架构成长之路(35)-利用Netty解析物联网自定义协议

一.前言 前面博客大部分介绍了基于EMQ中间件,通信协议使用的是MQTT,而传输的数据为纯文本数据,采用JSON格式.这种方式,大部分一看就知道是熟悉Web开发.软件开发的人喜欢用的方式.由于我也是做web软件开发的,也是比较喜欢这种方式.阿里的物联网平台,也是推荐这种方式.但是,但是做惯硬件开发,嵌入式开发就比较喜欢用裸TCP-Socket连接.采用的是二进制协议.基于此大部分应用场合为了兼容旧设备,就需要单独开发一个TCP服务器的网关.这里使用以前学过的,也是比较流行的Netty框架. 话不

物联网架构成长之路(11)-Redis缓存主从复制

1. 说明 在我的物联网平台框架框架中,会用到Redis这个中间件.作为EMQ权限认证的缓存.https://www.cnblogs.com/think-in-java/p/5123884.html 2. 编译&运行 1 wget http://download.redis.io/releases/redis-4.0.6.tar.gz 2 make && make test && make PREFIX=/home/user/workspace/redis inst