手把手教你如何实现自己的RTSP直播

采用FFmpeg 推流 + EasyDarwin 转发 + vlc 播放 实现 RTSP 直播

部署 EasyDarwin 流媒体服务器

EasyDarwin 是一款开源的 RTSP 流媒体服务器。基于 golang 语言开发,支持 Windows、Linux、macOS 平台。支持 RTSP 推流分发(推模式转发)、RTSP拉流分发(拉模式转发)、服务端录像、服务端录像检索与回放、关键帧缓存、秒开画面、Web后台管理、分布式负载均衡。

官网地址 EasyDarwin 开源流媒体服务器 Open Source Streaming Server
Github 地址 GitHub - 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构建出了一套基础的流媒体云视频平台架构!

 

 

下面以 window 为例,下载后的目录如下


easydarwin.ini 为它的配置文件

  • http的端口号默认为 10008
  • 默认的用户名、密码 均为 admin
  • rtsp的端口号默认为 554


双击 EasyDarwin.exe 打开服务器,待其启动后,打开如下链接 http://localhost:10008 【是否登录都没关系】

至此,服务器部署完毕!

FFmpeg 推流到 EasyDarwin

安装FFmpeg

  • Ubuntu sudo apt install ffmpeg
  • Windows 进入FFmpeg官网下载release版本解压即可使用

ffmpeg 官网 FFmpeg


直接下载编译好的可执行文件,随后使用命令行调用
 

ffmpeg 推流命令:
ffmpeg -re -i <视频地址> -rtsp_transport <传输方式 tcp/udp> -vcodec h264 -f rtsp rtsp://<服务器IP>/<子路径>

-re 表示按照帧率发送,否则ffmpeg会按照最高速率向流媒体服务器发送数据
-i filename 指定输入文件名
-vcodec codec 强制使用codec编解码('copy’代表不进行重新编码)
-f fmt 指定视频或音频的格式

例如:

ffmpeg -re -i D:\Downloads\QQ20200524211316.mp4 -rtsp_transport tcp -vcodec h264 -f rtsp rtsp://localhost/test

这里的播放地址,就是之前设置的 rtsp://localhost/test

推流成功后,可以在网页上看到推流列表中新增了该项;推流结束,该项则会自动被删除!

播放方式有三种:

使用自己的播放器播放,例如我自己开发的,免费下载:

基于QT+ffmpeg+SDL2的流媒体播放器_欣欣芜湖的博客-CSDN博客_qt ffmpeg sdl2

使用vlc / ffplay 播放 rtsp 流

使用 vlc

媒体 ——> 打开网络串流,然后贴入 rtsp 地址

 

使用ffplay 播放

直接在命令行键入 ffplay <rtsp地址>

例如:ffplay rtsp://localhost/test

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一款免费的流媒体直播软件,主要用于流媒体直播,视频直播,视频点播,视频录制等应用,与FMS、WOWZA、RED5一道,作为用户流媒体直播应用的可选方案。 1、支持Windows/Linux等多种操作系统; 2、采用开发的流媒体协议,而非私有协议,可以与主流系统对接,至少支持RTMP推流,RTMP拉流,RTSP拉流三种方式获取直播流,支持对获取的直播流再按照TS组播或者单播,RTMP,RTSP,HLS,TS OVER HTTP,FLV OVER HTTP等标准流媒体协议的方式进行对外直播转发; 3、支持录制,可定时录制或手动录制,能录制MP4或者FLV格式文件,录制时支持生成新文件或者追加文件两种方式,支持录制超过4G的文件; 4、单台服务器可支持1000个以上并发用户,直播延时小于2秒; 5、支持RTMP转发功能,能够把AMS上的直播流转发给其它AMS服务器或者第三方的RTMP服务器,例如RED5,FMS,WOWZA流媒体服务器; 6、 支持PC/手机/平板电脑等多终端访问,无论是windows,linux,或者andriod以及IOS系统访问收看直播时都无需下载插件,直接观看; 7、响应点播时间控制在100ms以内,支持暂停、拖动等特技操作; 8、支持文件直播,可把硬盘上存在的FLV文件编目后,按设定好的任务和顺序进行直播; 9、内置Web应用系统,无需复杂配置,可直接部署到用户服务器使用,也可以选配更复杂的媒资管理系统,完成类似优酷土豆的应用模式; 10、开放的系统架构,提供二次开发接口,可轻松的融入到用户已有的平台或网站平台中、或在此基础上进行二次开放等 ------------------------------------------------------------------------- 使用说明: 1、关于安装运行:软件解压到硬盘上后,执行AokuMServiceManager,即可完成AMS服务的安装,安装完成后,在Windows系统服务中会出现一个AokuMService服务; 2、关于端口:AMS默认的管理端口是9001,可通过浏览器登陆http://127.0.0.1:9001/main.html进行管理;AMS默认的RTMP端口是1935,默认的rtsp端口是5554,默认的flv over http端口是7000,默认的ts over http端口是8008,默认的hls端口也是9001; 3、关于推流:使用直播你需要有一个支持rtmp推流的编码器,建议用奥酷全接口高清编码器,当然你也可以通过FME进行软编码来实现; 4、关于接收直播:AMS正常启动并发布上直播流后,你可以在网络内的任一电脑上打开http://ip:9001,通过浏览器观看直播,若开启了hls功能,通过iphone或者ipad登陆http://ip:9001即可观看直播。 5、若开启了TS组播,请确认防火墙是否允许组播,另外您网络内的路由器是否支持组播,接收组播是需要用VLC播放器来完成; 6、接收flv over http也是通过VLC播放器或者支持类似协议的播放器来测试。 7、若使用中出现问题,你可以查看logs目录下的rtmpserver.log文件,里面有详细的错误日志描述。
### 回答1: 实现RTSP客户端主要需要以下步骤: 1. 建立连接:RTSP客户端需要连接到RTSP服务器,并通过发送OPTIONS请求来获取服务器支持的方法,以确定如何与服务器交互。 2. 发送DESCRIBE请求:客户端将发送一个DESCRIBE请求,以获取服务器提供的URL连接的详细信息。该信息包括流的编码格式、从哪里开始播放和音频视频的数据格式等。 3. 发送SETUP请求:客户端通过发送SETUP请求来建立客户端和服务器之间的RTP/RTCP端口连接。客户端会发出SETUP请求,获得前面DESCRIBE请求中获得的流信息。 4. 发送PLAY请求:客户端需要发送PLAY请求来开始播放媒体流。该请求将触发服务器向客户端发送媒体流的数据。 5. 监听流:客户端需要通过相关技术监视流并从服务器中接收流的数据,同时将从服务器中接收到的数据解码并播放出来。 6. 发送TEARDOWN请求:当客户端结束播放时,应该发送一个TEARDOWN请求以告诉服务器关闭该流。 以上是RTSP客户端的实现步骤,具体实现可以使用Java、C++或Python等编程语言实现实现时需要注意错误处理和异常情况。 ### 回答2: 实现一个RTSP客户端需要具备以下步骤: 1. 了解RTSP协议:RTSP协议是一个实时流式传输协议,需要深入了解其协议结构、命令和状态码等相关知识。 2. 创建交互连接:使用原始套接字,创建与RTSP服务器之间的TCP连接。 3. 发送RTSP请求:客户端需要构造适当格式的RTSP请求,包括请求方法、URI、协议版本等信息,并使用TCP发送给服务器。 4. 接收RTSP响应:等待服务器响应并监听TCP套接字,将从服务器接收到的RTSP响应信息解析,包括状态行、header以及消息体。 5. 解析SDP:RTSP客户端获取session描述协议(SDP)信息,需要解析服务器在RTSP响应中返回的SDP报文。 6. 建立RTP连接:解析SDP信息后,程序就会知道RTP和RTCP端口号等信息,客户端要在相应端口打开UDP socket以建立RTP连接和RTCP连接。 7. 播放实时流:通过RTP连接获取实时流数据,使用合适的技术播放数据,例如使用ffmpeg库解码和渲染。 实现一个RTSP客户端需要考虑到不同平台的API、TCP/IP网络编程、音视频流媒体等不同领域的知识。需要耐心、细心地调试和实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

美丽的欣情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值