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上需要的命令都贴下。

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

  1. 海康大华安防监控网络摄像头网页无插件直播流媒体RTSP专用播放器方案之EasyPlayer-RTSP-Android如何获取拉流的回调?

    EasyPlayer是一个RTSP流媒体播放器,在GitHub上开源大部分源码,其主要功能有播放.抓图.录制视频.实时静音/取消静音. EasyPlayer-RTSP-Android回调InitCal ...

  2. 【Android工具】更新手机视频流媒体客户端播放器OPlayer

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 之前分享的"安卓魔力播放器moliplayer绿色无广告(2.8.10.83 ...

  3. 微博客户端播放器的演进之路

    近年来新浪微博围绕着快速上线.快速启播.成本节约.稳定性等问题对客户端播放器进行了一系列优化,以求为用户提供更好的服务体验.本文来自新浪微博高级多媒体工程师刘文在LiveVideoStackCon 2 ...

  4. EasyPlayer开源流媒体移动端播放器推出RTSP-RTMP-HTTP-HLS全功能Pro版

    EasyPlayerPro介绍 Android EasyPlayerPro专业版全功能播放器,是由EasyDarwin开源团队维护的一款支持RTSP.RTMP.HTTP.HLS多种流媒体协议的播放器版 ...

  5. linux dlna 客户端,UPNP/DLNA(客户端)播放器推荐?

    问题描述 由于VLC稳定/VLC夜间构建/Totem与Coherence插件都没有正常工作我正在寻找一种替代方案来观看使用minidlna作为服务器从我的希捷dockstar流式传输的媒体. 唯一有效 ...

  6. rtmp服务器与播放器的交互

    转载于:http://www.cnblogs.com/haibindev/archive/2012/04/16/2450989.html RTMP(Real Time Messaging Protoc ...

  7. 基于RTMP协议的Flash流媒体网页直播播放器

    本文记录一些基于Flash技术的网页播放器.基于Flash的网页播放器相比于其他网页播放器来说最大的优势就是"免插件安装"了,这一点可以很大的提高用户的体验质量. 主要是几种常用的 ...

  8. 最简单的基于Flash的流媒体示例 网页播放器(HTTP,RTMP,HLS)

    ===================================================== Flash流媒体文章列表: 最简单的基于Flash的流媒体示例:RTMP推送和接收(Acti ...

  9. 在线音乐播放器的推荐机制

    对于我这样一个音乐控来说,学习工作时没有音乐是万万不行的.在网易云音乐云音乐面世之前,我总是在QQ音乐,百度音乐等播放器之间徘徊,当时也不够文艺,不知道豆瓣FM的存在. 第一次接触云音乐被其吸引的原因 ...

最新文章

  1. spark—3(Spark Scheduler)
  2. 005_Buzz播放音频
  3. C#中删除目录以及目录下文件的方法
  4. 最新linux面试题
  5. 因为权限缺乏导致SAP CRM AET字段删除失败
  6. 全志A33-串口的使用
  7. python slice是共享内存吗_python共享内存实现进程通信
  8. asp.net mvc批量删除的实现
  9. 计算机专业教学工作小结,计算机专业教学的工作总结
  10. UDP方式的网络通信【示例】
  11. 那些做Android开发必须知道的ADB命令
  12. matlab pn码捕获,直扩系统PN码捕获和跟踪的FPGA实现
  13. 强势破圈!时尚COSMO联合百度与小红书发布中国美妆地图、美妆种草度白皮书
  14. 渠道商用假流量冒充真实用户
  15. Android实现高德地图轨迹回放
  16. Linux 安装node.js 16
  17. 配置伪分布式hadoop集群(附常见配置问题)
  18. 达梦DM8之使用dmmdf恢复误删除的undo/redo文件
  19. 《中华百寺》专题片开机 江苏13古刹入选百大名寺
  20. mini车f和r的区别_MINI 是一种怎样的车?

热门文章

  1. mybatis一对多关联 创建_MyBatis多对多关联查询(级联查询)
  2. 分层和分段用什么符号_如何划分段落层次,如何给段落分层
  3. 用极大似然法估计因子载荷矩阵_第7章-因子分析.ppt
  4. 服务器支持最大连接数,Horizon 连接服务器最大连接数和配置
  5. 查看linux中的sh指向哪,什么是Linux的Shell脚本和怎么执行脚本?
  6. 皮一皮:论圈子的重要性!
  7. 微信继续加持上班摸鱼功能!网友:离被开除更进一步...
  8. 奇奇怪怪的大佬:理发店小弟到阿里P10
  9. 每日一皮:无良商家,难怪头发越来越少了!
  10. 还剩10天,赶紧登下百度网盘,拯救你的2T存储空间吧!