流媒体服务器 客户端播放器方案推荐

https://github.com/jacke121/stream-rtsp

使用说明:

貌似把rtsp转为webrtc,但是没有把图片编码为webrtc:

Example config.json

{
  "server": {
    "httpPort": 8000,
    "httpsPort": 8001,
    "encoderPort": ":8002",
    "iceServers": [], // not needed for local network access
    "webrtcMinPort": 32768,
    "webrtcMaxPort": 65535,
    "retryConnectSec": 5,
    "startStreamServer": true // automatically start rtsp to webrtc stream server, disable for hls or dash
  },
  "streams": {
    "reowhite": {
      "VOD": false,
      "disableAudio": true,
      "debug": false,
      "url": "rtsp://user:passowd@url:port/stream"
    }
  },
  "client": {
    "debug": true,
    "defaultStream": "reowhite"
  }
}

以前的笔记:

  • 流媒体解决方案 Live555 (C++)
  • 流媒体平台框架 EasyDarwin (C++,国产精品)
  • 实时流媒体播放服务器程序DarwinStreamingSrvr (C++)
  • Flash流媒体服务器 Red5 (Java)
  • 流媒体服务器 Open Streaming Server (Java)
  • FMS流媒体服务器 (Adobe,收费的)
  • Wowza流媒体服务器(Java)
  • 开源流媒体平台FreeCast(Java)
  • FFServer

性能最好的是国产系统NTV Media Server G3

参考:

https://www.zhihu.com/question/31160392

客户端播放有两种方式

一种是flash播放器,一种是流播放

web:

1.浏览器嵌入vlc播放,不过可能需要安装activex插件

2.把rtsp转换websocket再用video标签就可以播放,可以参考mse技术方案
SpecForge/html5_rtsp_player

移动端可以搜索rtsp player

比如:easyplayer

下面附上 EasyDarwin服务器搭建及客户端推流完整示例

Windows下环境搭建

一、准备工作,需要先下载我们需要的程序
1、EasyDarwin  下载地址: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构建出了一套基础的流媒体云视频平台架构!
2、ffmpeg         下载地址:FFmpeg
3、nginx            下载地址:nginx: download


二、搭建WEB服务
1、修改nginx配置文件,

一个是WEB服务监听的端口,之后EasyDarwin服务端会用到;
另一个是WEB服务根目录,也是HLS切片和视频存放的位置。为了测试方便新建一个test.txt文件,里面随便录入内容,如:good luck
2、启动WEB服务
开启命令:start nginx.exe
停止命令:nginx.exe -s stop

三、编译源程序,修改配置文件
1、编译下载下来的EasyDarwin,用VS 打开 .\EasyDarwin-master\EasyDarwin\WinNTSupport\EasyDarwin.sln,编译。正常情况下不会出错,如果出错了检查下是否丢失文件。
2、拷贝必要动态库到运行目录下,将EasyDarwin-master\EasyDarwin\Lib下所有文件拷贝到你的运行目录下,默认是\EasyDarwin-master\EasyDarwin\WinNTSupport\Debug
3、手动新建目录,在运行目录下,新建目录 Movies(存放视频文件和切片等) 和 Logs(日志目录)
4、修改配置文件,

HTTP_ROOT_DIR是WEB服务地址;LOCAL_IP_ADDRESS是服务器IP地址

如果是采用HLS,需要将参数设置为true。

其他的一些参数可以根据个人需要做修改。

四、系统测试

1、首先启动WEB服务(命令:start nginx.exe),浏览器中访问:http://192.168.1.107:8088/test.txt,如果没看到”good luck“,那就在检查下端口是否被占用(命令:netstat -ano)。
2、启动EasyDarwin服务器(命令:EasyDarwin.exe -d -c easydarwin.xml)

启动成功后,输出是这样子,说明运行的动态库加载,端口设置都没有问题。(EasyDarwin服务器端口是554,有可能和系统的一个media服务冲突,需要关闭掉此服务)
3、启动ffmpeg.exe,开始推流
推流命令:E:\ffmpeg\bin>ffmpeg.exe -i rtsp://192.168.1.100:10554/udp/av0_1 -vcodec copy -acodec copy -rtsp_transport tcp -f rtsp rtsp://192.168.1.107/live2.sdp
注:rtsp://192.168.1.100:10554/udp/av0_1,是我们IPCamera的RTSP地址;
后面rtsp://192.168.1.107/live2.sdp 是我们推送到服务端,用于外部访问的RTSP地址;



正常情况下FFMPEG输出是这样的,说明推送成功。


4、验证推送的视频流
测试RTSP地址:用客户端程序VLC或者EasyPlayer,打开地址 rtsp://192.168.1.107/live2.sdp
测试HLS地址:
可以先请求获得真正的HLS地址,再访问。(请求链接:http://192.168.1.107:8081/api/easyhlsmodule?name=live&url="RTSP://192.168.1.107/live2.sdp")

用客户端程序VLC或者EasyPlayer,打开地址 http://192.168.1.107:8088/live/live.m3u8





LINUX系统上除了EasyDarwin编译不同,其他配置基本是一样的,之后我再把LINUX上需要的命令都贴下。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI算法网奇

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

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

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

打赏作者

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

抵扣说明:

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

余额充值