一. 简介

SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT。

你可以用它实现视频推流,并且支持http回调事件(HTTPCallback),还可以保存视频流文件。支持本地化部署,操作简单。

二. SRS-HTTP服务部署实例

SRS内嵌了http服务器,支持分发hls流和文件。

以分发HLS为例,使用SRS分发RTMP和HLS流,不依赖于外部服务器。

假设服务器的IP是:192.168.1.152

第一步,获取SRS。

git clone https://github.com/ossrs/srs
cd srs/trunk

第二步,编译SRS。

./configure && make

第三步,启动服务器。

./objs/srs -c conf/srs.conf

检查SRS是否成功启动,可以打开 http://localhost:8080/ ,或者执行命令:

# 查看SRS的状态
./etc/init.d/srs status

第三步,编写SRS配置文件。

贴出我的配置文件

# main config for srs.
# @see full.conf for detail config.listen              1935;
max_connections     1000;
srs_log_tank        console;
srs_log_file        ./objs/srs.log;
daemon              off;
stats {network  0;
}
http_api {enabled         on;listen          1985;crossdomain       on;raw_api {enabled         on;allow_reload on;allow_query      on;allow_update on;}
}
http_server {enabled         on;listen          8080;dir             ./objs/nginx/html;
}vhost 192.168.1.152 {# http回调http_hooks{enabled        on;on_connect     http://xxx.com/api/live/srs_callback;on_close       http://xxx.com/api/live/srs_callback;on_publish     http://xxx.com/api/live/srs_callback;on_unpublish   http://xxx.com/api/live/srs_callback;on_play        http://xxx.com/api/live/srs_callback;on_stop        http://xxx.com/api/live/srs_callback;on_dvr         http://xxx.com/api/live/srs_callback;}hls {enabled         on;hls_path        ./objs/nginx/html;hls_fragment    3;hls_cleanup     on;hls_dispose      3;hls_window        12;}dvr {enabled             on;dvr_path            ./objs/nginx/html/[app]/[stream].[timestamp].mp4;dvr_plan            session;dvr_duration        30;dvr_wait_keyframe   on;time_jitter         full;}http_remux {enabled     on;mount       [vhost]/[app]/[stream].flv;}
}

三.HttpCallback回调

SRS总是开启HttpCallback

SRS的回调事件包括:

事件 数据 说明
on_connect {
"action": "on_connect",
"client_id": 1985,
"ip": "192.168.1.10",
"vhost": "video.test.com",
"app": "live",
"tcUrl": "rtmp://x/x?key=xxx",
"pageUrl": "http://x/x.html"
}
当客户端连接到指定的vhost时
on_close {
"action": "on_close",
"client_id": 1985,
"ip": "192.168.1.10",
"vhost": "video.test.com",
"app": "live",
"send_bytes": 10240,
"recv_bytes": 10240
}
当客户端关闭连接,或者SRS主动关闭连接时
on_publish {
"action": "on_publish",
"client_id": 1985,
"ip": "192.168.1.10",
"vhost": "video.test.com",
"app": "live",
"stream": "livestream"
}
当客户端发布流时,譬如flash/FMLE方式推流到服务器
on_unpublish {
"action": "on_unpublish",
"client_id": 1985,
"ip": "192.168.1.10",
"vhost": "video.test.com",
"app": "live",
"stream": "livestream"
}
当客户端停止发布流时
on_play {
"action": "on_play",
"client_id": 1985,
"ip": "192.168.1.10",
"vhost": "video.test.com",
"app": "live",
"stream": "livestream",
"pageUrl": "http://a.com/i.html",
"param":"?k=v"
}
当客户端开始播放流时
on_stop {
"action": "on_stop",
"client_id": 1985,
"ip": "192.168.1.10",
"vhost": "video.test.com",
"app": "live",
"stream": "livestream"
}
当客户端停止播放时。备注:停止播放可能不会关闭连接,还能再继续播放。
on_dvr {
"action": "on_dvr",
"client_id": 1985,
"ip": "192.168.1.10",
"vhost": "video.test.com",
"app": "live",
"stream": "livestream",
"cwd": "/opt",
"file": "./l.xxx.flv"
}
当DVR录制关闭一个flv文件时

其中,

  • 事件:发生该事件时,即回调指定的HTTP地址。
  • HTTP地址:可以支持多个,以空格分隔,SRS会依次回调这些接口。
  • 数据:SRS将数据POST到HTTP接口。
  • 返回值:SRS要求HTTP服务器返回HTTP200并且response内容为整数错误码(0表示成功),其他错误码会断开客户端连接。

当http接口获取到ssr回调数据时,就可以在PHP或者JAVA端展开你的工作了。

SRS 简单高效的实时视频服务器相关推荐

  1. docker部署SRS实时视频服务器,rtmp推流,用WebRTC播放

    SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181 大家可以先去gitub上面看使用说明,地址是:v4_CN_Home · ossrs/ ...

  2. cvm服务器虚拟化,云服务器cvm简单高效便于处理能力提升

    在虚拟服务器的成熟技术面前,各行业的网络应用都得到了明显的改善,毕竟简单高效的特点已经极为明显,在不同领域所发挥的作用也为用户的网络体验带来了明显的改善,这也是云服务器cvm能够备受青睐的原因所在,毕 ...

  3. 简单高效的直播直播系统源码需要的服务器

    简单高效的直播直播系统源码需要的服务器: 安装和使用非常简单: 纯 Golang 编写,性能高,跨平台: 支持常用的传输协议.文件格式.编码格式:支持的传输协议 RTMP AMF HLS HTTP-F ...

  4. 虚拟化---简单高效的IT管理模型

    很多人认为云计算就是虚拟化,虚拟化就是云计算.笔者虽然并不认同这个观点,但绝对赞同虚拟化技术在云计算众多关键技术中有一席之地,而且是非常重要的关键技术. 维基百科对虚拟化的定义是:虚拟化是表示计算机资 ...

  5. 最简单去水印工具免服务器域名源码搭建,

    现如今在线副业已经成为一种趋势,越来越多的人选择副业作为起步.小程序凭借不占内存.无论前期投入还是后期维护,成本都较低:如果你想副业来赚钱,选择小程序是非常不错的选择,有很多人可能会问,我不会做小程序 ...

  6. 转52破解jiangwei212Android爆破应用签名的一种全新高效方式(Native+服务器验证)

    原文地址:Android爆破应用签名的一种全新高效方式(Native+服务器验证) http://www.52pojie.cn/thread-606272-1-1.html (出处: 吾爱破解论坛) ...

  7. nodejs爬虫实战_简单高效的 nodejs 爬虫模型

    这篇文章讲解一下yunshare项目的爬虫模型. 使用 nodejs 开发爬虫很简单,不需要类似 python 的 scrapy 这样的爬虫框架,只需要用 request 或者 superagent ...

  8. 简单高效压缩图片,保持图片高质量的神仙网站

    简单高效压缩图片,保持图片高质量的神网站 前言 我们在做网站前端的时候常常会遇到这样一个场景 我有一张超高清的图片,要在首页作为封面图来展示,图片大小达到了 1.23MB,而我们此时需要要求我们前端页 ...

  9. HiLink LiteOS IoT芯片 让IoT开发简单高效

    HiLink & LiteOS & IoT芯片 让IoT开发简单高效 华为HiLink & LiteOS & IoT芯片使能三件套,让IoT开发更简单高效.下一代智能手 ...

最新文章

  1. 机器视觉资料汇总(2)
  2. jsp输入限制正则表达式
  3. SAP UI5 应用的 OData XML 格式的元数据请求解析原理,基于 DOMParser
  4. 【python】生成器
  5. jsp自定义标签详解(2)
  6. PHP学习总结(5)——PHP入门篇之PHP字符串
  7. 操作系统思考 第一章 编译
  8. PHP如何大幅度提升运行效率? -- 把它编译成机器码!
  9. Web前端:7大Web开发趋势和技术
  10. 计算机麦克地址,WO Mic Client
  11. 学习Dart语言,看这一篇文章就够了!(详细介绍)
  12. php 覆盖写入txt文件内容,PHP使用内置函数file_put_contents覆盖写入文件及追加内容的方法...
  13. Navicat定期备份MySQL数据库,定期清理备份文件
  14. 2017百度AI开发者大会召开,智能云计算分论坛聚焦ABC
  15. Makefile中的CFLAGS、$^、$< 、$@
  16. 小程序_动态设置tabBar主题皮肤
  17. 微信小程序和uniapp开发工具
  18. 名帖380 张弼 草书《草书帖选》
  19. matlab上万大型矩阵求逆,要好好总结一下超大矩阵求逆的技巧了
  20. 上海亚商投顾:信创概念掀涨停潮

热门文章

  1. python爬取学校教务管理系统_python爬虫模拟登陆学校教务处
  2. 凡灵物语-浪漫仙侠回合手游
  3. access汇总含义_如何用access进行分类汇总?
  4. CompletableFuture(异步编程)
  5. VMware虚拟机安装Ubuntu以及Linux入门基础
  6. Retrofit2源码解读
  7. 《程序员做饭指南》霸榜 GitHub:不仅有量筒、烧杯,还用上了数学公式?
  8. 火车票退票费计算(函数专题)
  9. 《人工智能的明天,中国去哪儿》---汤晓鸥
  10. 抗旋转matlab算法,抗旋转核心训练:2个动作推荐