C/C++音视频高级开发-开源流媒体服务器SRS环境搭建
一、环境搭建
1.1 C++环境
sudo apt-get update# 更新软件包
sudo apt-get install build-essential -y # 安装C++开发环境
sudo apt-get install gdb -y#安装gdb
sudo apt-get install libtool -y
sudo apt-get install pkg-config -y
sudo apt-get install automake -y
sudo apt-get install autoconf -y
1.2 golang环境
下载go二进制包
下载地址,如果懒得去找最新的版本,或者使用go1.16.5就行的也可以直接执行下列命令下载。
wget https://dl.google.com/go/go1.16.5.linux-amd64.tar.gz -O ~/go1.16.5.linux-amd64.tar.gz
相关视频
SRS4.0与WebRTC一对一音视频通话
解压并重命名文件夹,方便不同版本区分
cd ~
tar -xvf go1.16.5.linux-amd64.tar.gz
mv go go1.16.5
配置环境变量
tee -a $HOME/.bashrc <<'EOF'
# Go envs
export GOVERSION=go1.16.5 # Go 版本设置
export GO_INSTALL_DIR=$HOME/go1.16.5 # Go 安装目录
export GOROOT=$GO_INSTALL_DIR # GOROOT 设置
export GOPATH=~/workspace/golang # GOPATH 设置
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 将 Go 语言自带的和通过 go install 安装的二进制文件加入到 PATH 路径中
export GO111MODULE="on" # 开启 Go moudles 特性
export GOPROXY=https://goproxy.cn,direct # 安装 Go 模块时,代理服务器设置
EOF
验证配置
go version
二、编译和启动srs
git clone -b v4.0.146 https://gitee.com/winlinvip/srs.oschina.git srs.4.0.146
cd srs.4.0.146/trunk
./configure
make -j4
./objs/srs -c conf/rtc.conf
三、启动信令服务器
cd 3rdparty/signaling
make -j4
cd objs
./signaling
四、启动web服务器
cd 3rdparty/httpx-static
make -j4
./objs/httpx-static -http 80 -https 443 -ssk server.key -ssc server.crt \-proxy http://127.0.0.1:1989/sig -proxy http://127.0.0.1:1985/rtc \-proxy http://127.0.0.1:8080/
音视频免费学习地址:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
分享一个音视频高级开发交流群,群文件有最新音视频学习文件和视频~点击788280672加入自取(或者联系管理员领取最新资料)。部分音视频开发资料一览图
参数说明:
-http: http监听的端口
-https: https监听的端口
-domain: https域名
-root: 万维网根路径
-cache: letsencrypt缓存
lets:
-ssk: https key
-ssc: https cert
proxy: 代理服务器地址 -> srs
sdomain: ssl域名
skey: 域名的SSLkey
scert: 域名证书
生成证书:
openssl genrsa -out server.key 2048
openssl req -new -x509 -key server.key -out server.crt -days 3650
端口说明
1935: rtmp服务
1985: http api服务
8080: http-flv、hls服务
1989: 信令服务
五、rtc.conf说明
# RTMP监听端口,使用ip:port分割
# eg. 192.168.3.249:1935 10.10.10.100:1935
# 默认0.0.0:1935
listen 1935;
# 最大连接数,如果超出最大连接数,服务器将会拒绝新的连接,默认值1000
max_connections 1000;
# 是否启动守护进程,默认开启
daemon off;
# # the log tank, console or file.
# if console, print log to console.
# if file, write log to file. requires srs_log_file if log to file.
# default: file.
# 日志输出的目标,console或者file,如果设置成file需要配置srs_log_file
srs_log_tank console;# HTTP配置
http_server {enabled on;listen 8080;dir ./objs/nginx/html;
}# srs api配置
# the http api config, export for external program to manage srs.
# user can access http api of srs in browser directly, for instance, to access by:
# curl http://192.168.1.170:1985/api/v1/reload
# which will reload srs, like cmd killall -1 srs, but the js can also invoke the http api,
# where the cli can only be used in shell/terminate.
http_api {# 是否启用HTTP api,默认offenabled on;listen 1985;
}stats {network 0;
}
rtc_server {enabled on;# Listen at udp://8000listen 8000;## The $CANDIDATE means fetch from env, if not configed, use * as default.## The * means retrieving server IP automatically, from all network interfaces,# @see https://github.com/ossrs/srs/wiki/v4_CN_RTCWiki#config-candidate#candidate $CANDIDATE;candidate 42.192.181.115;
}vhost __defaultVhost__ {rtc {enabled on;}http_remux {enabled on;mount [vhost]/[app]/[stream].flv;}
}
C/C++音视频高级开发-开源流媒体服务器SRS环境搭建相关推荐
- 开源流媒体服务器SRS环境搭建
一.环境搭建 1.1 C++环境 sudo apt-get update# 更新软件包 sudo apt-get install build-essential -y # 安装C++开发环境 sudo ...
- 5G时代很火的音视频高级开发学习路线及知识点总结
我们先假设某人在音视频方面是零基础,也没学过任何数字信号处理相关知识,数学基础基本是高中水准,但是熟悉 C/C++ 开发,至少熟悉某一个平台下的编译调试IDE. 着重研究两个开源项目 ffmpeg 和 ...
- SRS流媒体服务器——单机环境搭建和源码目录介绍
SRS流媒体服务器--单机环境搭建和源码目录介绍 1. 目录 环境搭建 源码目录介绍 1. 环境搭建 srs官⽹:https://github.com/ossrs/srs 码云的源速度快:https: ...
- 开源流媒体服务器SRS学习笔记(1) - 安装、推流、拉流
SRS(Simple RTMP Server) 是国人写的一款非常优秀的开源流媒体服务器软件,可用于直播/录播/视频客服等多种场景,其定位是运营级的互联网直播服务器集群. 1.安装 官网提供了3种安装 ...
- 音视频高级开发——如何快速学习FFmpeg丨ffplay、ffmpeg命令如何编程实现
如何更快速地掌握FFmpeg 1.为什么要学FFmpeg 2.FFmpeg面向对象思想分析 3.ffplay.ffmpeg命令如何编程实现 4.流媒体服务器要怎么学 [技术分享篇]音视频开发--如何快 ...
- 实时监控、直播流、流媒体、视频网站开发方案流媒体服务器搭建及配置详解:使用nginx搭建rtmp直播、rtmp点播、,hls直播服务配置详解
注意:这里不会讲到nginx流媒体模块如何安装的问题,只研究rtmp,hls直播和录制相关的nginx服务器配置文件的详细用法和说明.可以对照这些命令详解配置nginx -rtmp服务 一.nginx ...
- webrtc 判断是否支持_5G时代-WebRTC音视频高级开发
目录 1,自定义摄像头分辨率 2,码率限制 3,调整编码器顺序 4,Mesh模型多方通话 5,Janus框架分析 6,Janus Web源码分析 7,Janus Android源码分析 8,基于Jan ...
- 【音视频开发系列】srs-webrtc-janus开源流媒体服务器分析
全球最牛开源流媒体服务器源码分析 1.如何学习流媒体服务器 2.全球最牛流媒体服务器架构分析 3.我们能从全球最牛流媒体服务器得到什么 [音视频开发系列]srs-webrtc-janus流媒体服务器分 ...
- LiveVideoStack线上分享第五季(七):开源流媒体服务器:为何一定得再撸个新的...
视频技术的主要场景是直播和RTC,2020年IoT和5G的快速发展,以及全球居家隔离,促进了视频行业的大规模发展,也促进了直播和RTC的融合,将带来更加丰富的业务场景.开源社区也在不断进步,而直播.R ...
最新文章
- 安防工程商必须知道的PoE供电真相
- 官方宣布:谷歌开发者中国网站正式发布!
- JAVA第六章第6题,java第六章例题源代码
- php数组排序综合例子,php数组实例之数组排序
- 【数据库】Windows安装redis全流程
- 1使用技巧_【掘金使用技巧1】合成长周期k线的函数
- 【汇编语言】,值得学习的“编程世界的常青树”
- android系统启动自动启动不了,怎么在android系统开机就运行某个应用
- oracle 连接字符串备份
- WinRAR去除广告
- MultiTracker 多目标跟踪算法
- Unity学习01-unity物体移动三种方式
- 原型工具Axure:学习路线及资源
- 银行对公业务和对私业务
- centos Unison+Inotify双向同步
- 第四章:网络安全体系与网络安全模型
- okhttp3与okhttp的区别
- 【Linux命令】《鸟哥Linux基础》第十六章 进程管理与SELinux初探
- kafka发送消息的三种方式
- android print service,Mopria Print Service
热门文章
- 看过《非你莫属》那期,因为刘俐俐,说说陈鸥
- Harmonizome数据库 – 一个集合多种pathway(or other)的网站
- Xtreme9.0 - Mr. Pippo's Pizza 数学
- 耶路撒冷圣城起源笔记
- BERT-MRC论文笔记
- 【Unity】动作游戏开发实战详细分析-16-敌人AI设计
- 什么是认知?什么是认知科学?
- ops电脑属于微型计算机吗,泽创触摸一体机OPS电脑是什么?
- 分布式锁-这一篇全了解(Redis实现分布式锁完美方案)
- matlab 图像中加入高斯白噪声,MATLAB——如何给图像添加高斯白噪声