原文出处: https://xugaoxiang.com/2019/12/06/hls-srs/

软硬件环境

  • ubuntu 16.04 64bit
  • srs 2.0release

SRS简介

SRS,即Simple-RTMP-Server,是一个开源的视频服务器,出自国人之手。release版本下载地址https://github.com/ossrs/srs/releases,目前的最高版本是v2.0-r2

源码编译

tar xvf v2.0-r2.tar.bz2
cd srs-2.0-r2/trunk
mkdir build
./configure --prefix=/home/longjing/srs/srs-2.0-r2/trunk/build --with-http-api --with-hls --with-http-server --with-ssl --with-stat --with-research --with-dvr --with-http-callback
make
make install

如果出现错误

rm -f LINUX_4.4.0-116-generic_DBG/md-pic.o; ln -s md.o LINUX_4.4.0-116-generic_DBG/md-pic.o
ld -shared -soname=libst.so.1 -lc LINUX_4.4.0-116-generic_DBG/sched-pic.o LINUX_4.4.0-116-generic_DBG/stk-pic.o LINUX_4.4.0-116-generic_DBG/sync-pic.o LINUX_4.4.0-116-generic_DBG/key-pic.o LINUX_4.4.0-116-generic_DBG/io-pic.o LINUX_4.4.0-116-generic_DBG/event-pic.o LINUX_4.4.0-116-generic_DBG/md-pic.o -o LINUX_4.4.0-116-generic_DBG/libst.so.1.9
LINUX_4.4.0-116-generic_DBG/sched-pic.o: In function `st_poll':
/root/srs/trunk/objs/st-1.9/sched.c:108: undefined reference to `__stack_chk_fail_local'
LINUX_4.4.0-116-generic_DBG/sync-pic.o: In function `st_utime':
/root/srs/trunk/objs/st-1.9/sync.c:70: undefined reference to `__stack_chk_fail_local'
LINUX_4.4.0-116-generic_DBG/io-pic.o: In function `_st_io_init':
/root/srs/trunk/objs/st-1.9/io.c:106: undefined reference to `__stack_chk_fail_local'
LINUX_4.4.0-116-generic_DBG/io-pic.o: In function `_st_netfd_new':
/root/srs/trunk/objs/st-1.9/io.c:166: undefined reference to `__stack_chk_fail_local'
LINUX_4.4.0-116-generic_DBG/io-pic.o: In function `st_netfd_poll':
/root/srs/trunk/objs/st-1.9/io.c:241: undefined reference to `__stack_chk_fail_local'
LINUX_4.4.0-116-generic_DBG/io-pic.o:/root/srs/trunk/objs/st-1.9/io.c:438: more undefined references to `__stack_chk_fail_local' follow
Makefile:356: recipe for target 'LINUX_4.4.0-116-generic_DBG/libst.so.1.9' failed
make[1]: *** [LINUX_4.4.0-116-generic_DBG/libst.so.1.9] Error 1
make[1]: Leaving directory '/root/srs/trunk/objs/st-1.9'
Makefile:441: recipe for target 'linux-debug' failed
make: *** [linux-debug] Error 2
build st-1.9 failed, ret=2

修改auto/depends.sh,搜索关键字st-1.9,找到

_ST_MAKE=linux-debug && _ST_EXTRA_CFLAGS="-DMD_HAVE_EPOLL

并将其修改为

_ST_MAKE=linux-debug && _ST_EXTRA_CFLAGS="-DMD_HAVE_EPOLL -fno-stack-protector"

再重新configuremake即可。

HLS配置文件

listen              2935;
max_connections     1000;
daemon              on;
srs_log_tank        file;
srs_log_level        error;
srs_log_file        ./objs/srs.log;http_server {enabled         on;listen          8081;dir             ./objs/nginx/html;
}vhost __defaultVhost__ {hls {enabled         on;hls_fragment    10;hls_window      60;hls_path        ./objs/nginx/html;hls_m3u8_file   [app]/[stream].m3u8;hls_ts_file     [app]/[stream]-[seq].ts;hls_cleanup     on;hls_dispose     30;hls_on_error    continue;hls_storage     disk;hls_wait_keyframe       on;hls_acodec      aac;hls_vcodec      h264;}
}

启动服务

./objs/srs -c conf/http.hls.conf

reload

killall -1 srs

开机自动启动

sudo ln -sf /home/xugaoxiang/build/etc/init.d/srs /etc/init.d/srs

修改srs中的ROOT和CONFIG

ROOT="/home/xugaoxiang/build"
CONFIG="./conf/http.hls.conf"

然后在命令行下执行

sudo update-rc.d srs defaults

可以先用

sudo /etc/init.d/srs start/stop/restart/status/reload

测试一下,正确无误后再重启系统。需要注意的是,只有runlevel是2、3、5、6才可以启动。需要的话,可以到/etc/rc*.d/下进行相应的修改。

如果想要删除srs服务,可以执行

sudo update-rc.d -f srs remove

javascript访问出现的跨域问题

修改源码src/app/srs_app_http_conn.cpp,大概是292行

hdr->set("Access-Control-Allow-Origin", "*");
hdr->set("Access-Control-Allow-Methods", "GET, POST, HEAD, PUT, DELETE");
hdr->set("Access-Control-Allow-Headers", "Cache-Control,X-Proxy-Authorization,X-Requested-With,Content-Type");

并发测试工具

srs-bench是专门用来测试srs并发的工具,基于state-threads

git clone https://github.com/ossrs/srs-bench.git
cd srs-bench
./configure
make

参考资料

  • https://github.com/ossrs/srs
  • https://github.com/ossrs/srs-bench
  • http://www.ossrs.net/srs.release/releases/

HLS视频服务器SRS简介相关推荐

  1. 音视频开发-SRS 4.0流媒体服务器系列

    0 SRS 4.0流媒体服务器入门系列 结合SRS官方Wiki以及本人对SRS的理解,推出<SRS 4.0流媒体服务器入门系列>,包括内容: SRS 4.0 开发环境搭建 SRS 4.0 ...

  2. 运维初学者必备之SRS音视频服务器搭建

    运维初学者必备之SRS音视频服务器搭建 什么是srs音视频服务器? 答:SRS是一个流媒体集群,支持RTMP/HLS/HTTP-FLV/RTSP/DASH/WebRTC/SRT/GB28181,高效. ...

  3. 音视频开发-SRS 4.0开发环境搭建丨webrtc丨FFmpeg丨SRS流媒体服务器开发

    SRS 4.0开发环境搭建 视频讲解如下,点击观看: 音视频开发-SRS 4.0开发环境搭建丨webrtc丨FFmpeg丨SRS流媒体服务器开发 音视频高级开发学习学习资料链接:FFmpeg/WebR ...

  4. srs视频服务器搭建与使用

    搭建   git地址 https://github.com/ossrs/srs 配置文件 修改推流端口listen  默认1935 修改视频保存目录 dvr_path 启动视频服务器 ./objs/s ...

  5. C语言从头开始写一次hls视频转发服务器,支持H264和H265

    由于2020年后,谷歌浏览器将不再支持flashplay了,从而网页视频的播放,在谷歌浏览器上,不得不像其他办法,而hls是一个不错的方式,前端H5有现成的js标签,能直接支持苹果的hls,并且不用下 ...

  6. SRS视频服务器-docker部署srs4.0.198-ubuntu系统:配置低时延实现srt推流和拉流

    一.docker安装srs4.0.198 推荐使用docker来安装srs视频服务器,简单方便 我使用的是ubuntu18.04系统. 1.1.docker的安装 我参考的是:https://blog ...

  7. 流媒体(视频)服务器调研

    这篇文章主要向大家介绍流媒体(视频)服务器调研,主要内容包括基础应用.实用技巧.原理机制等方面,希望对大家有所帮助. 标签:javascriptphphtmljavapythonlinuxandroi ...

  8. 开源流媒体服务器SRS学习笔记(1) - 安装、推流、拉流

    SRS(Simple RTMP Server) 是国人写的一款非常优秀的开源流媒体服务器软件,可用于直播/录播/视频客服等多种场景,其定位是运营级的互联网直播服务器集群. 1.安装 官网提供了3种安装 ...

  9. 基于mjpg-streamer网络视频服务器移植

    MJPG简介: MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名. MJPEG 全名为 "Motion Joint Photographic Experts Group&q ...

最新文章

  1. [ACM] hdu 1228 A+B (字符串处理)
  2. JDBC入门(4)--- 批处理
  3. c语言在程序中显示现在星期几,C语言程序设计: 输入年月日 然后输出是星期几...
  4. javascript使用闭包模拟私有属性和方法
  5. 【Python】实现文章字符频次排序(文件IO、列表排序、字典操作和字符串join方法)
  6. 另一个flutter-go
  7. C:\Windows\System32\drivers\etc下的hosts修改方法
  8. 狂神说Java之Springboot整合Shiro
  9. 蜀门一直显示连接服务器,蜀门自身状态增加不召唤仙宠BUG玩法全解 利用的服务器自身...
  10. WakeOnLAN下载
  11. 计算机程序扩展名是什么,LOG文件扩展名 - 什么是.log以及如何打开? - ReviverSoft...
  12. 【opencv】高频低频滤波
  13. java图书馆自习室找座占座位系统
  14. 2019清华计算机考研名单,2019年清华大学硕士研究生拟录取名单公示(清华MBA,考生编号排序)...
  15. 搭积木(block)
  16. 网吧无盘服务器为什么玩地下城和穿越火线卡其它游戏不卡,为什么网吧的电脑配置更低,玩游戏却更快更爽?...
  17. TVS管防护电路的典型应用原理,这些你必须了解
  18. Android播放本地音频文件
  19. 备份win7 便签 sticky notes
  20. android 背影模糊,Android透明背景的高斯模糊一点记录

热门文章

  1. Teamcenter Folder
  2. IOS9禁用UIWebView的放大镜
  3. Excel 2016 做线性回归分析【高尔顿数据集】与【Anscombe四重奏数据集】
  4. 千万不要死于无知——心理状态
  5. 程序员们,再不行动就来不及了!
  6. 手动标记用例状态_界面测试用例.doc
  7. 六轴机器人直角坐标系建立_知识篇-六轴机器人坐标
  8. 海银财富领军人物:韩宏伟(军人企业家)
  9. 计算机维修工技能培训课程,计算机维修工基本技能培训大纲.doc
  10. OS X El Capitan 10.11开启性能模式