EasyDarwin流媒体服务器的简介和搭建

一:简介

EasyDarwin开源流媒体服务器(www.easydarwin.org)现在使用Go版本实现了。最新的代码提交,已经支持了推流(或者拉流 )的同时进行本地存储。
本地存储的原理,是在推流的同时启动ffmpeg作为一路Client来做存储。ffmpeg在demux和mux的工作方面已经十分成熟,我们 没必要再重复发明轮子。因此这种做法十分取巧而且简单有效,也不会侵入原来的代码架构。如下图所示:

官方链接:https://ffmpeg.zeranoe.com/builds/

二:搭建EasyDarwin流媒体服务

1.准备一台主机

192.168.175.200       vip

2.关闭防火墙和selinux

命令:[root@vip ~ ]# iptables -F && systemctl stop firewalld && setenforce 0

3.下载安装包(打开浏览器)

https://github.com/EasyDarwin/EasyDarwin/releases 

4.装包解包

命令:[root@vip ~]# tar -zvxf EasyDarwin-linux-8.1.0-1901141151.tar.gz

5.修改配置

命令:[root@vip ~]# cd EasyDarwin-linux-8.1.0-1901141151/

命令:[root@vip EasyDarwin-linux-8.1.0-1901141151]# vim  easydarwin.ini

[http]
port=10008
default_username=admin
default_password=admin

[rtsp]
port=554

; rtsp 超时时间,包括RTSP建立连接与数据收发。
timeout=28800

; 是否使能gop cache。如果使能,服务器会缓存最后一个I帧以及其后的非I帧,以提高播放速度。但是可能在高并发的情况下带来内存压力。
gop_cache_enable=1

; 是否使能向服务器推流或者从服务器播放时验证用户名密码. [注意] 因为服务器端并不保存明文密码,所以推送或者播放时,客户端应该输入密码的md5后的值。
; password should be the hex of md5(original password)
#authorization_enable=0    #关闭认证的话把这一行注释掉

; 是否使能推送的同事进行本地存储,使能后则可以进行录像查询与回放。
save_stream_to_local=1                  #1本地存储开启

;easydarwin使用ffmpeg工具来进行存储。这里表示ffmpeg的可执行程序的路径。
ffmpeg_path=/usr/bin/ffmpeg           #可以用yum安装的方式

;本地存储所将要保存的根目录。如果不存在,程序会尝试创建该目录。
m3u8_dir_path=/Users/ze/Downloads/EasyDarwinGoM3u8         #存储视频的路径可以手动提前创建

;切片文件时长。本地存储时,将以该时间段为标准来生成ts文件(该时间+一个I帧间隔),单位秒。
;如果需要直播,这个值设小点,但是这样会产生很多ts文件;如果不需要直播,只要存储的话,可设大些。
ts_duration_second=6

;key为拉流时的自定义路径,value为ffmpeg转码格式,比如可设置为-c:v copy -c:a copy,表示copy源格式;default表示使用ffmpeg内置的输出格式,会进行转码。
/stream_265=default                             #value为ffmpeg转码格式,536586.sdp 转码推送来源的路径

6.创建ffmpeg路径

命令:[root@vip ~]# mkdir /usr/bin/ffmpeg

7.启动服务

命令:[root@vip ~]# cd EasyDarwin-linux-8.1.0-1901141151/

命令:[root@vip EasyDarwin-linux-8.1.0-1901141151]# ./start.sh

启动成功后,在浏览器上面输入http://192.168.175.200:10008/apidoc/

账号密码都是admin

总结:。。。。。。。此处省略一万字

猜你喜欢

转载自www.cnblogs.com/zgqbky/p/12177207.html