FFmpeg 推流 + EasyDarwin 转发 + vlc 播放 实现 RTSP 直播
部署 EasyDarwin 流媒体服务器
EasyDarwin 是一款开源的 RTSP 流媒体服务器。基于 golang 语言开发,支持 Windows、Linux、macOS 平台。支持 RTSP 推流分发(推模式转发)、RTSP拉流分发(拉模式转发)、服务端录像、服务端录像检索与回放、关键帧缓存、秒开画面、Web后台管理、分布式负载均衡。
官网地址 http://www.easydarwin.org/
Github 地址 https://github.com/EasyDarwin/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 官网 http://ffmpeg.org/
直接下载编译好的可执行文件,随后使用命令行调用
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
推流成功后,可以在网页上看到推流列表中新增了该项;推流结束,该项则会自动被删除!
vlc / ffplay 播放 rtsp 流
使用 vlc
媒体 ——> 打开网络串流,然后贴入 rtsp 地址
ffplay 播放
直接在命令行键入 ffplay <rtsp地址>
例如:ffplay rtsp://localhost/test
EasyDarwin 转发 RTSP
- 服务器每转发一条 RTSP,都会在命令行下留下一条记录(开始、结束)
- 由于 RTSP 是实时传输的,当推流结束后,网页中的推流列表也会随之删除该条记录
第三方接入
EasyDarwin 采用 http 的形式暴露其接口
按照接口说明的,访问 http://localhost:10008/api/v1/pushers 获取推送列表
{
"total": 1,
"rows": [
{
"id": "y0-muK7Gg",
"inBytes": 1753255,
"onlines": 0,
"outBytes": 435,
"path": "/test",
"source": "rtsp://localhost:554/test",
"startAt": "2020-07-15 19:12:38",
"transType": "TCP",
"url": "rtsp://localhost/test"
}
]
}
当没有 rtsp 流的时候,数据是这样的
{
"total": 0,
"rows": []
}
- 点赞
- 收藏
- 关注作者
评论(0)