Ubuntu 安装SRT
Ubuntu 安装SRT
- SRT
- 安装操作
- 下载ffmpeg4.1,并覆盖文件
- 安装ffmpeg与srt依赖包
- libx264
- libx265
- libfdk_aac
- libsrt
- ffmpeg
- 安装SRS服务器
- 下载SRS服务器
- 编译
- 编写一个配置文件
- 启动SRS并进行测试
SRT
SRT Encoder基于srt自适应bitrate的直播编码器。
SRT_ENCODER
安装操作
下载ffmpeg4.1,并覆盖文件
编码器是基于ffmpeg4.1开发的,只需要把SRT_ENCODER中的ffmpeg-4.1/fftools目录下的ffmpeg.c和srt_header.h拷贝替换到对应ffmpeg4.1版本对应的目录下。 ffmpeg4.1的官方打包源码地址: ffmpeg-4.1.tar.xz
覆盖后搁置,等待之后编译安装
安装ffmpeg与srt依赖包
libx264
wget https://johnvansickle.com/ffmpeg/release-source/libx264-git.tar.xz
xz -d libx264-git.tar.xz
tar -xvf libx264-git.tar
cd ./libx264-git
./configure --disable-asm
make -j 2
make install
libx265
sudo apt-get install cmake
wget https://johnvansickle.com/ffmpeg/release-source/libx265-git.tar.xz
xz -d libx265-git.tar.xz
tar -xvf libx265-git.tar
cd libx265-git/source/
mkdir build
cd build/
cmake …
make -j 2
make install
如果报错,就直接跳过libx265吧,等下编译ffmpeg的时候把它的依赖给删除
libfdk_aac
wget https://downloads.sourceforge.net/opencore-amr/fdk-aac-2.0.1.tar.gz
tar -xzvf fdk-aac-2.0.1.tar.gz
cd fdk-aac-2.0.1
./configure
make -j 2
make install
libsrt
sudo apt-get install git
git clone https://github.com/Haivision/srt.git
cd srt
./configure
make && make install
ffmpeg
回到上面修改完成之后的ffmpeg中进行编译
如果上面libx265编译失败,则在这里把--enable-libx265
删除.
如果需要ffplay,则安装sudo apt install libsdl2-dev
,打开ffmpeg-4.1/ffbuild/config.mak,找到!CONFIG_FFPLAY=yes,将感叹号删除后保存退出.之后将下面指令中的ffplay修改为enable.
(写给自己的:特么的为什么官网的教程给这么多disable…折腾人)
cd ffmpeg-4.1
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
./configure --target-os=linux --arch=x86_64 --enable-cross-compile --enable-avdevice --enable-doc --disable-ffplay --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-libsrt --enable-nonfree --disable-asm --enable-gpl --pkgconfigdir=/usr/local/lib/pkgconfig --enable-shared
make -j 2
make install
sudo sh -c “echo ‘/usr/local/ffmpeg/lib’ >> /etc/ld.so.conf”
sudo ldconfig
在sudo make这里,如果报错SRTO_SMOOTHER相关的错误,就进入libavformat/libsrt.c文件,修改宏定义名称,摘于ffmpeg交叉编译问题及对策:
SRTO_SMOOTHER -> SRTO_CONGESTION
SRTO_STRICTENC -> SRTO_ENFORCEDENCRYPTION
SRTO_TSBPDDELAY -> SRTO_LATENCY
安装SRS服务器
可参考:
【网络通信 – 直播】SRS 实战记录 – SRS 部署与直播效果测试
v4_CN_SRTWiki
下载SRS服务器
git clone https://gitee.com/winlinvip/srs.oschina.git srs &&
cd srs/trunk && git remote set-url origin https://github.com/ossrs/srs.git && git pull
# webrtc需要srs的最低版本:SRS4.0.14,所以我们部署的srs的时候版本需要大于SRS4.0.14
# 查看分支
git branch -v
# 若是不是 *4.0release ,需要切换分支
git checkout 4.0release
#再次查看当前所处分支
git branch -v
编译
./configure --srt=on --with-hls --with-ssl --with-http-server --with-http-callback --with-http-api --with-ingest --with-stream-caster
sudo make
编写一个配置文件
cd ./conf
vim my_realtime.conf
my_realtime.conf:
# the config for srs to delivery realtime RTMP stream
# @see https://github.com/ossrs/srs/wiki/v2_CN_SampleRealtime
# @see full.conf for detail config.listen 1935;
max_connections 1000;
srs_log_tank console;
srs_log_file ./objs/srs.log;
daemon on;http_server {enabled on;listen 8080;dir ./objs/nginx/html;https {enabled on;listen 8088;key ~/cert/server.key;cert ~/cert/server.crt;}
}
http_api {enabled on;listen 1985;
}
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-candidatecandidate $CANDIDATE;
}
srt_server {enabled on;listen 10080;
}
vhost __defaultVhost__ {tcp_nodelay on;min_latency on;play {gop_cache off;queue_length 10;mw_latency 100;}# 开启 flv 播放http_remux {enabled on;mount [vhost]/[app]/[stream].flv;}# 开启 m3u8 播放hls {enabled on;hls_path ./objs/nginx/html;hls_fragment 10;hls_window 60;}publish {mr off;}#vhost打开启用rtcrtc {enabled on;bframe discard;}
}
启动SRS并进行测试
cd ~/srs/trunk
sudo ./objs/srs -c conf/my_realtime.conf
另开一个终端,在srs/trunk/doc中有测试用的source.flv,进入到该目录下:
ffmpeg -re -i source.flv -c:v libx264 -s 640x360 -b:v 700k -c:a libfdk_aac -ab 64k -ar 44100 -ac 2 -f mpegts 'srt://127.0.0.1:10080?streamid=#!::h=live/livestream,m=publish'
推流后,进入浏览器输入127.0.0.1:8080,可去检查推流情况
Ubuntu 安装SRT相关推荐
- Ubuntu安装MongoDB
https://jingyan.baidu.com/article/e5c39bf5f5ddd539d76033a9.html Ubuntu安装MongoDB4.0: https://www.jian ...
- ubuntu安装OpenCV详细教程(建议收藏)
记录一篇"如何安装ubuntu下C++接口的opencv"的文章.由于转载格式有问题,直接贴个链接:ubuntu安装opencv的正确方法 注意:本人根据此博客安装遇到的问题:2. ...
- Linux/ubuntu 安装 redis 4.0报错解决:redis-server.service: Can't open PID file /var/run/redis/redis-server.
此文首发于我的个人博客:Linux/ubuntu 安装 redis 4.0报错解决:redis-server.service: Can't open PID file /var/run/redis/r ...
- debian,ubuntu 安装mongodb 允许外网访问,修改端口,设置用户和密码
使用apt安装mongodb: apt update && apt install mongodb 查看运行状态: systemctl status mongodb.service 结 ...
- ubuntu安装KVM
ubuntu安装KVM 现在官网下载ubuntu镜像,桌面版或者服务端都可,这里以桌面端为例. 安装之前确保磁盘有足够大的空间(这很重要) 安装KVM sudo apt install qemu-kv ...
- 解决Ubuntu安装依赖问题
解决Ubuntu安装依赖问题 解决Ubuntu安装依赖问题 最主要问题,修改的国内镜像源可能不是对应的ubuntu版本,大部人直接找了个镜像源就复制到source.list里面了,其实需要对应版本的, ...
- Ubuntu安装Ceres库-安装依赖时报错:E:无法定位软件包 libcxsparse3.1.2_朱国鑫的博客-CSDN博客
Ubuntu安装Ceres库-安装依赖时报错:E:无法定位软件包 libcxsparse3.1.2_朱国鑫的博客-CSDN博客
- ubuntu 安装Pangolin 过程_余辉亮的学习笔记的博客-CSDN博客_pangolin安装
ubuntu 安装Pangolin 过程_余辉亮的学习笔记的博客-CSDN博客_pangolin安装
- Ubuntu安装、使用postgresql数据库
Ubuntu安装.使用postgresql数据库 $ sudo apt-get install postgresql (端口为5432) $ sudo apt-get install postgre ...
最新文章
- 述说C#中的值类型和引用类型的千丝万缕
- 观点|重磅出炉!29页《业内观点:机器人行业的未来》
- Angular Universal 官网翻译
- 记一些Python(Pymysql)建表、增删改查等基础操作(小白适用)
- 文字识别:关键信息提取的3种探索方法
- Android studio修改Logcat颜色
- opencv4快速入门pdf_云复工提升工作效率之九 福昕PDF阅读器
- 区块链 女巫攻击是什么 Sybil Attack 为什么POW可以抵御女巫攻击 一文看懂
- java反射(测试下用onenote把笔记发送到oschina上,文章来源网络)
- 如何在30天内拿下软考初级程序员?
- 软件项目的项目经理不懂技术,能做好项目经理么?
- HTML5——meta标签总结
- Java 中status意思_java web开发中 varStatues=quot;statusquot; 中参数status是啥作用和意思呢?这个参数的设置有啥要求呢?...
- Human Pose Estimation姿态估计调研
- iOS 打开AppStore指定app下载页
- 什么叫工业4.0,这篇接地气的文章终于讲懂了
- 【舆情监测平台】舆情危机处置的四大原则。
- Java中如何打印出一个数组中所有元素呢?
- persona chat
- 翻译连载 | JavaScript轻量级函数式编程-第4章:组合函数 |《你不知道的JS》姊妹篇
热门文章
- MySQL取别名(应该取有意义的别名)
- HEX,S19互相转换
- Arduinojson官网反序列化示例教程
- oracle导入和导出dmp,Oracle 导入、导出DMP(备份)文件
- 如何用 FinalCutPro剪辑HDR视频
- 洛谷P1209 [USACO1.3]修理牛棚 Barn Repair----解题报告
- 云计算行业到了最危险的时刻
- 【第二季】Arcgis地图制图基础|(五)活用智能标注
- JAVA实现读取文件时,从文件的最后一行往上一行行读出来。
- Android8.0 蓝牙低功耗扫描锁屏停止问题