一、环境搭建

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环境

  1. 下载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环境搭建相关推荐

  1. 开源流媒体服务器SRS环境搭建

    一.环境搭建 1.1 C++环境 sudo apt-get update# 更新软件包 sudo apt-get install build-essential -y # 安装C++开发环境 sudo ...

  2. 5G时代很火的音视频高级开发学习路线及知识点总结

    我们先假设某人在音视频方面是零基础,也没学过任何数字信号处理相关知识,数学基础基本是高中水准,但是熟悉 C/C++ 开发,至少熟悉某一个平台下的编译调试IDE. 着重研究两个开源项目 ffmpeg 和 ...

  3. SRS流媒体服务器——单机环境搭建和源码目录介绍

    SRS流媒体服务器--单机环境搭建和源码目录介绍 1. 目录 环境搭建 源码目录介绍 1. 环境搭建 srs官⽹:https://github.com/ossrs/srs 码云的源速度快:https: ...

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

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

  5. 音视频高级开发——如何快速学习FFmpeg丨ffplay、ffmpeg命令如何编程实现

    如何更快速地掌握FFmpeg 1.为什么要学FFmpeg 2.FFmpeg面向对象思想分析 3.ffplay.ffmpeg命令如何编程实现 4.流媒体服务器要怎么学 [技术分享篇]音视频开发--如何快 ...

  6. 实时监控、直播流、流媒体、视频网站开发方案流媒体服务器搭建及配置详解:使用nginx搭建rtmp直播、rtmp点播、,hls直播服务配置详解

    注意:这里不会讲到nginx流媒体模块如何安装的问题,只研究rtmp,hls直播和录制相关的nginx服务器配置文件的详细用法和说明.可以对照这些命令详解配置nginx -rtmp服务 一.nginx ...

  7. webrtc 判断是否支持_5G时代-WebRTC音视频高级开发

    目录 1,自定义摄像头分辨率 2,码率限制 3,调整编码器顺序 4,Mesh模型多方通话 5,Janus框架分析 6,Janus Web源码分析 7,Janus Android源码分析 8,基于Jan ...

  8. 【音视频开发系列】srs-webrtc-janus开源流媒体服务器分析

    全球最牛开源流媒体服务器源码分析 1.如何学习流媒体服务器 2.全球最牛流媒体服务器架构分析 3.我们能从全球最牛流媒体服务器得到什么 [音视频开发系列]srs-webrtc-janus流媒体服务器分 ...

  9. LiveVideoStack线上分享第五季(七):开源流媒体服务器:为何一定得再撸个新的...

    视频技术的主要场景是直播和RTC,2020年IoT和5G的快速发展,以及全球居家隔离,促进了视频行业的大规模发展,也促进了直播和RTC的融合,将带来更加丰富的业务场景.开源社区也在不断进步,而直播.R ...

最新文章

  1. 安防工程商必须知道的PoE供电真相
  2. 官方宣布:谷歌开发者中国网站正式发布!
  3. JAVA第六章第6题,java第六章例题源代码
  4. php数组排序综合例子,php数组实例之数组排序
  5. 【数据库】Windows安装redis全流程
  6. 1使用技巧_【掘金使用技巧1】合成长周期k线的函数
  7. 【汇编语言】,值得学习的“编程世界的常青树”
  8. android系统启动自动启动不了,怎么在android系统开机就运行某个应用
  9. oracle 连接字符串备份
  10. WinRAR去除广告
  11. MultiTracker 多目标跟踪算法
  12. Unity学习01-unity物体移动三种方式
  13. 原型工具Axure:学习路线及资源
  14. 银行对公业务和对私业务
  15. centos Unison+Inotify双向同步
  16. 第四章:网络安全体系与网络安全模型
  17. okhttp3与okhttp的区别
  18. 【Linux命令】《鸟哥Linux基础》第十六章 进程管理与SELinux初探
  19. kafka发送消息的三种方式
  20. android print service,Mopria Print Service

热门文章

  1. 看过《非你莫属》那期,因为刘俐俐,说说陈鸥
  2. Harmonizome数据库 – 一个集合多种pathway(or other)的网站
  3. Xtreme9.0 - Mr. Pippo's Pizza 数学
  4. 耶路撒冷圣城起源笔记
  5. BERT-MRC论文笔记
  6. 【Unity】动作游戏开发实战详细分析-16-敌人AI设计
  7. 什么是认知?什么是认知科学?
  8. ops电脑属于微型计算机吗,泽创触摸一体机OPS电脑是什么?
  9. 分布式锁-这一篇全了解(Redis实现分布式锁完美方案)
  10. matlab 图像中加入高斯白噪声,MATLAB——如何给图像添加高斯白噪声