- 浏览: 1496069 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (691)
- linux (207)
- shell (33)
- java (42)
- 其他 (22)
- javascript (33)
- cloud (16)
- python (33)
- c (48)
- sql (12)
- 工具 (6)
- 缓存 (16)
- ubuntu (7)
- perl (3)
- lua (2)
- 超级有用 (2)
- 服务器 (2)
- mac (22)
- nginx (34)
- php (2)
- 内核 (2)
- gdb (13)
- ICTCLAS (2)
- mac android (0)
- unix (1)
- android (1)
- vim (1)
- epoll (1)
- ios (21)
- mysql (3)
- systemtap (1)
- 算法 (2)
- 汇编 (2)
- arm (3)
- 我的数据结构 (8)
- websocket (12)
- hadoop (5)
- thrift (2)
- hbase (1)
- graphviz (1)
- redis (1)
- raspberry (2)
- qemu (31)
- opencv (4)
- socket (1)
- opengl (1)
- ibeacons (1)
- emacs (6)
- openstack (24)
- docker (1)
- webrtc (11)
- angularjs (2)
- neutron (23)
- jslinux (18)
- 网络 (13)
- tap (9)
- tensorflow (8)
- nlu (4)
- asm.js (5)
- sip (3)
- xl2tp (5)
- conda (1)
- emscripten (6)
- ffmpeg (10)
- srt (1)
- wasm (5)
- bert (3)
- kaldi (4)
- 知识图谱 (1)
最新评论
-
wahahachuang8:
我喜欢代码简洁易读,服务稳定的推送服务,前段时间研究了一下go ...
websocket的helloworld -
q114687576:
http://www.blue-zero.com/WebSoc ...
websocket的helloworld -
zhaoyanzimm:
感谢您的分享,给我提供了很大的帮助,在使用过程中发现了一个问题 ...
nginx的helloworld模块的helloworld -
haoningabc:
leebyte 写道太NB了,期待早日用上Killinux!么 ...
qemu+emacs+gdb调试内核 -
leebyte:
太NB了,期待早日用上Killinux!
qemu+emacs+gdb调试内核
协议:rtmp. hls flv
264 265 标准
####################################
准备:
centos7上实验用原生的 gcc, 编译ffmpeg的时候需要升级,这里不考虑
卸载
因为srs要装了两个版本的openssl 1.1和1.0 ,避免引起冲突
安装srs之前需要先安装 libsrt.so ,但是libsrt.so的编译又需要openssl1.0, 1.1是不行的,没有aes那个api,AES_ctr128_encrypt 会报错
所以
需要装srs,还需要装srt
重点内容:
1.安装:srs https://github.com/ossrs/srs ./configure 得到 openssl1.0的版本 ,但是提示没有,libsrt.so这个库
2.指定openssl的环境变量:
装srt:https://github.com/Haivision/srt ,
3.再回去编译 srs:
先trunk/auto/depend.sh 连接libsrt.so 的库,
再重新 ./configure --with-srt
make
就完成了
安装srs:
srs如果想支持srt 必须用develop分支,参考[url] https://github.com/ossrs/srs/wiki/v1_CN_Git[/url]
可能会出现
#src/service/srs_service_st.hpp:97:12: 错误:‘struct mmsghdr’重定义
#注释掉 这个结构体
这个问题正常版本已经不出现了。
AES_ctr128_encrypt’未定义的引用 ,的问题是应为openssl版本不一致的问题,这里要用srs里要求的1.1和1.0同时装,readme里面有。
###############重新安装srt之前,准备好openssl的版本和环境变量
srs要使用4.0的版本,默认是3.0(目前2020年4月21日)
git checkout remotes/origin/4.0release
LIBRARY_PATH和LD_LIBRARY_PATH的区别:(这个重要)
https://blog.csdn.net/h490516509/article/details/86496097
开发时,设置LIBRARY_PATH,以便gcc能够找到编译时需要的动态链接库。C_INCLUDE_PATH、CPLUS_INCLUDE_PATH 也是编译时用的
发布时,设置LD_LIBRARY_PATH,以便程序加载运行时能够自动找到需要的动态链接库。
README.md:107:
需要两个版本的openssl SRTP需要1.0,rtmp需要1.1 ,cao
由于安装srt的时候需要openssl1.0.2 ,但是srs中默认安装的openssl1.0.2没有开启生成动态库
所以需要操作:
生成动态库参考 https://www.cnblogs.com/405845829qq/p/8717571.html
676行有libsrt.a 的判断
路径写死了/usr/local/lib64/libsrt.a
所以把后面编译的 libsrt.a连接过来
srs第一次执行,只为了编译openssl1.0.2u
编译之后终于生成
./objs/Platform-Linux-3.10.0-SRS4/openssl-OpenSSL_1_0_2u/_release/lib/libcrypto.so
了
再回去编译srt
编译srt: 需要刚才指定的openssl
重新装srt:
#scl enable devtoolset-7 bash 不用这步骤了,使用centos原生的gcc4.2即可,
#PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/opt/hao/srt_build"
把librst.so编译到指定位置,后续连接用
再回去编译srs
因为srs的trunk/auto/depends.sh 定义了需要指定/usr/local/lib64/libsrt.a才能--with-srt
在srs中继续执行:
./configure --with-srt
就成功了!!!!!
make
启动的时候
./objs/srs -c conf/srs.conf就可以了
试验一下是否支持 srt_server 选项
参考https://github.com/ossrs/srs/wiki/v4_CN_SampleSRT
发现./configure --with-srt编译出来的比普通./configure出来的多了
conf/srt.conf 文件 里面默认 srt_server端口10080
./objs/srs -c conf/srt.conf
测试推srt流
10080似乎没起来??
netstat -nltp|grep 10080 好奇怪,但是不耽误使用
运行下面这个
注意单引号,原文档里的双引号会报:
-bash: :: unrecognized history modifier
客户端使用
达到 ffmpeg用 srt传给 srs ,客户端用rtmp接收srs的流
######################### 精简版:#########################
##################################################
centos7.7
#gcc (GCC) 8.2.0 测试不行 ,找不到UDT 的namespace
还是需要原生的 gcc 4.8
1.安装srs里的openssl
vim trunk/auto/depends.sh
cat /etc/profile
openssl1.0.2u就安装完了
如果希望openssl命令生效
开始安装srt:
git clone https://github.com/Haivision/srt
再去编译srs: 因为srs编译的时候需要srt.h所以
要设置环境变量,
否则可能出现错误:
./src/srt/srt_server.hpp:29:10: 致命错误:srt/srt.h:没有那个文件或目录
#include <srt/srt.h>
^~~~~~~~~~~
就可以运行 了
/objs/srs -c conf/srs.conf
############
mac下安装srs:
之前需要安装srt,
在安装ffmpeg的时候已经安装了libsrt.a 但是路径有问题,需要:
参考:https://www.jianshu.com/p/dd3f58392aa0
注意4.0的srs才支持--with-srt选项
可能出现
这种问题都是libsrt.a没找到
检查srs/trunk/auto/depend.sh
里面的libsrt.a的路径是写死的,需要自行连接库到这个位置/usr/local/lib64/
注意修改配置文件
conf/srt.conf
否则在mac下起不来,
启动:
测试:
1.播放视频:
注意单引号
客户端使用
2.mac本地摄像头用rtmp协议:
本地打开视频:
延迟非常高!!!!
264 265 标准
####################################
准备:
yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel harfbuzz-devel -y yum install bzip2 bzip2-devel -y yum install tcl tcl-devel -y
centos7上实验用原生的 gcc, 编译ffmpeg的时候需要升级,这里不考虑
卸载
yum remove openssl-devel openssl
因为srs要装了两个版本的openssl 1.1和1.0 ,避免引起冲突
安装srs之前需要先安装 libsrt.so ,但是libsrt.so的编译又需要openssl1.0, 1.1是不行的,没有aes那个api,AES_ctr128_encrypt 会报错
所以
需要装srs,还需要装srt
重点内容:
1.安装:srs https://github.com/ossrs/srs ./configure 得到 openssl1.0的版本 ,但是提示没有,libsrt.so这个库
2.指定openssl的环境变量:
export OPENSSL_ROOT_DIR=/opt/hao/srs/trunk/objs/openssl export OPENSSL_LIB_DIR=/opt/hao/srs/trunk/objs/openssl/lib export OPENSSL_INCLUDE_DIR=/opt/hao/srs/trunk/objs/openssl/include
装srt:https://github.com/Haivision/srt ,
3.再回去编译 srs:
先trunk/auto/depend.sh 连接libsrt.so 的库,
再重新 ./configure --with-srt
make
就完成了
安装srs:
srs如果想支持srt 必须用develop分支,参考[url] https://github.com/ossrs/srs/wiki/v1_CN_Git[/url]
git branch -a #git checkout remotes/origin/develop git checkout remotes/origin/4.0release cd srs/trunk ./configure --with-srt make
可能会出现
#src/service/srs_service_st.hpp:97:12: 错误:‘struct mmsghdr’重定义
#注释掉 这个结构体
这个问题正常版本已经不出现了。
AES_ctr128_encrypt’未定义的引用 ,的问题是应为openssl版本不一致的问题,这里要用srs里要求的1.1和1.0同时装,readme里面有。
###############重新安装srt之前,准备好openssl的版本和环境变量
srs要使用4.0的版本,默认是3.0(目前2020年4月21日)
git checkout remotes/origin/4.0release
LIBRARY_PATH和LD_LIBRARY_PATH的区别:(这个重要)
https://blog.csdn.net/h490516509/article/details/86496097
开发时,设置LIBRARY_PATH,以便gcc能够找到编译时需要的动态链接库。C_INCLUDE_PATH、CPLUS_INCLUDE_PATH 也是编译时用的
发布时,设置LD_LIBRARY_PATH,以便程序加载运行时能够自动找到需要的动态链接库。
README.md:107:
export OPENSSL_ROOT_DIR=/opt/hao/srs/trunk/objs/openssl export OPENSSL_LIB_DIR=/opt/hao/srs/trunk/objs/openssl/lib export OPENSSL_INCLUDE_DIR=/opt/hao/srs/trunk/objs/openssl/include
需要两个版本的openssl SRTP需要1.0,rtmp需要1.1 ,cao
由于安装srt的时候需要openssl1.0.2 ,但是srs中默认安装的openssl1.0.2没有开启生成动态库
所以需要操作:
生成动态库参考 https://www.cnblogs.com/405845829qq/p/8717571.html
tar xvf srs.tar.gz git checkout remotes/origin/4.0release vim trunk/auto/depends.sh #OPENSSL_OPTIONS="-no-shared -no-threads -DOPENSSL_NO_HEARTBEATS" OPENSSL_OPTIONS="-no-threads -DOPENSSL_NO_HEARTBEATS" #注意no-thiread要保留,否则 编译srt报错 #OPENSSL_CONFIG="./config" OPENSSL_CONFIG="./config -d shared "
676行有libsrt.a 的判断
路径写死了/usr/local/lib64/libsrt.a
所以把后面编译的 libsrt.a连接过来
srs第一次执行,只为了编译openssl1.0.2u
./configure --with-srt
编译之后终于生成
./objs/Platform-Linux-3.10.0-SRS4/openssl-OpenSSL_1_0_2u/_release/lib/libcrypto.so
了
再回去编译srt
编译srt: 需要刚才指定的openssl
export OPENSSL_ROOT_DIR=/opt/hao/srs/trunk/objs/openssl export OPENSSL_LIB_DIR=/opt/hao/srs/trunk/objs/openssl/lib export OPENSSL_INCLUDE_DIR=/opt/hao/srs/trunk/objs/openssl/include
重新装srt:
#scl enable devtoolset-7 bash 不用这步骤了,使用centos原生的gcc4.2即可,
#PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/opt/hao/srt_build"
把librst.so编译到指定位置,后续连接用
./configure --prefix="/opt/hao/srt_build" make make install ln -s /opt/hao/srt_build/lib64/libsrt.so /usr/local/lib64/libsrt.a
再回去编译srs
因为srs的trunk/auto/depends.sh 定义了需要指定/usr/local/lib64/libsrt.a才能--with-srt
在srs中继续执行:
./configure --with-srt
就成功了!!!!!
make
启动的时候
./objs/srs -c conf/srs.conf就可以了
试验一下是否支持 srt_server 选项
参考https://github.com/ossrs/srs/wiki/v4_CN_SampleSRT
发现./configure --with-srt编译出来的比普通./configure出来的多了
conf/srt.conf 文件 里面默认 srt_server端口10080
./objs/srs -c conf/srt.conf
测试推srt流
10080似乎没起来??
netstat -nltp|grep 10080 好奇怪,但是不耽误使用
运行下面这个
ffmpeg -re -i chrome.mp4 \ -vcodec copy -acodec copy \ -f mpegts 'srt://127.0.0.1:10080?streamid=#!::h=live/livestream,m=publish'
注意单引号,原文档里的双引号会报:
-bash: :: unrecognized history modifier
客户端使用
ffplay -loglevel verbose "rtmp://106.54.192.92/live/livestream live=1"
达到 ffmpeg用 srt传给 srs ,客户端用rtmp接收srs的流
######################### 精简版:#########################
##################################################
centos7.7
#gcc (GCC) 8.2.0 测试不行 ,找不到UDT 的namespace
还是需要原生的 gcc 4.8
yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel harfbuzz-devel -y yum install bzip2 bzip2-devel -y yum install tcl tcl-devel -y yum remove openssl-devel openssl git clone https://github.com/Haivision/srt
1.安装srs里的openssl
git clone https://github.com/ossrs/srs git checkout remotes/origin/4.0release
vim trunk/auto/depends.sh
#OPENSSL_OPTIONS="-no-shared -no-threads -DOPENSSL_NO_HEARTBEATS" OPENSSL_OPTIONS="-no-threads -DOPENSSL_NO_HEARTBEATS" #注意no-thiread要保留,否则 编译srt报错 #OPENSSL_CONFIG="./config" OPENSSL_CONFIG="./config -d shared "
cd trunk ./configure --with-srt
cat /etc/profile
export OPENSSL_ROOT_DIR=/opt/hao/srs/trunk/objs/openssl export OPENSSL_LIB_DIR=/opt/hao/srs/trunk/objs/openssl/lib export OPENSSL_INCLUDE_DIR=/opt/hao/srs/trunk/objs/openssl/include
openssl1.0.2u就安装完了
如果希望openssl命令生效
export LD_LIBRARY_PATH=/opt/hao/srs/trunk/objs/openssl/lib:/opt/hao/srt_build/lib64/:$LD_LIBRARY_PATH
开始安装srt:
git clone https://github.com/Haivision/srt
./configure --prefix=/opt/hao/srt_build make make install ln -s /opt/hao/srt_build/lib64/libsrt.so /usr/local/lib64/libsrt.a
再去编译srs: 因为srs编译的时候需要srt.h所以
要设置环境变量,
export LD_LIBRARY_PATH=/opt/hao/srs/trunk/objs/openssl/lib:/opt/hao/srt_build/lib64/:$LD_LIBRARY_PATH export LIBRARY_PATH=/opt/hao/srs/trunk/objs/openssl/lib:/opt/hao/srt_build/lib64/:$LIBRARY_PATH export C_INCLUDE_PATH=/opt/hao/srs/trunk/objs/openssl/include:/opt/hao/srt_build/include:$C_INCLUDE_PATH export CPLUS_INCLUDE_PATH=/opt/hao/srs/trunk/objs/openssl/include:/opt/hao/srt_build/include:$CPLUS_INCLUDE_PATH
否则可能出现错误:
./src/srt/srt_server.hpp:29:10: 致命错误:srt/srt.h:没有那个文件或目录
#include <srt/srt.h>
^~~~~~~~~~~
./configure --with-srt make
就可以运行 了
/objs/srs -c conf/srs.conf
############
mac下安装srs:
之前需要安装srt,
在安装ffmpeg的时候已经安装了libsrt.a 但是路径有问题,需要:
ln -s /usr/local/lib/libsrt.a /usr/local/lib64/libsrt.a
参考:https://www.jianshu.com/p/dd3f58392aa0
注意4.0的srs才支持--with-srt选项
git clone https://github.com/ossrs/srs git checkout remotes/origin/4.0release ./configure --osx --with-srt make
可能出现
no libsrt, please run in docker ossrs/srs:srt or build from source https://github.com/ossrs/srs/issues/1147#issuecomment-577469119
这种问题都是libsrt.a没找到
检查srs/trunk/auto/depend.sh
里面的libsrt.a的路径是写死的,需要自行连接库到这个位置/usr/local/lib64/
注意修改配置文件
conf/srt.conf
#max_connections 1000; max_connections 200;
否则在mac下起不来,
启动:
./objs/srs -c conf/srt.conf
测试:
1.播放视频:
ffmpeg -re -i chrome.mp4 -vcodec copy -acodec copy -f mpegts 'srt://127.0.0.1:10080?streamid=#!::h=live/livestream,m=publish'
注意单引号
客户端使用
ffplay -loglevel verbose "rtmp://127.0.0.1/live/livestream live=1"
2.mac本地摄像头用rtmp协议:
ffmpeg -f avfoundation -video_size 640x480 -framerate 30 -i 0:0 -vcodec libx264 -preset veryfast -f flv rtmp://127.0.0.1/live/livestream
本地打开视频:
ffplay -loglevel verbose "rtmp://127.0.0.1/live/livestream live=1"
延迟非常高!!!!
发表评论
-
srt学习笔记零:srt总结帖
2020-05-09 14:50 7571。无服务的方式:udp, 2。srs作为服务端:rtmp推收 ... -
srt学习笔记七:使用265推rtmp
2020-05-08 20:56 801概念: 视频码率:视频码率就是数据传输时单位时间传送的数据位数 ... -
srt学习笔记六:srt-live-server
2020-04-30 18:45 1419除了srs,有个可以直接支持srt的sls srt-live ... -
srt学习笔记五:手写个srt的socket
2020-04-24 18:12 900参考:https://www.jianshu.com/p/39 ... -
ffmpeg使用srs推srt
2020-04-13 18:43 0相关内容参考 https://github.com/ossrs ... -
srt学习笔记三:ffmpeg使用srs推rtmp(桌面录制)
2020-04-09 20:06 1022srs代码: git clone https://github ... -
srt学习笔记二:支持srt的ffmpeg
2020-04-06 02:38 1841注意:scl enable devtoolset-7 bash ... -
srt学习笔记一:srt的helloworld
2020-03-27 19:13 8861。无服务的方式:udp, 2。srs作为服务端:rtmp推收 ... -
ffmpeg+nginx 的直播(2,直播摄像头和麦克风)
2016-05-28 20:21 4417假设我的服务器是centos7 192.168.139.117 ... -
ffmpeg+nginx 的直播(1,直播播放的视频文件)
2016-05-26 17:11 665064位操作系统centos7 ############ 1.一 ...
相关推荐
【SRS(Simple Realtime Server)详解及其支持GB28181协议】 SRS,全称为Simple Realtime Server,是一款由国内开发者编写的开源实时流媒体服务器,它旨在为直播和RTC(Real-Time Communication)领域提供高效且...
对于这类APP的开发,学生可以参考《Linux环境安装ZLMediaKit实现视频推流》、《Linux环境安装SRS实现视频直播推流》以及《FFmpeg开发笔记全目录》中的相关文章来完善直播技术的学习。 视频剪辑APP开发 视频剪辑APP...
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
wrf转mp4播放器1.1.1
内容概要:本文档详细介绍了如何在Simulink中设计一个满足特定规格的音频带ADC(模数转换器)。首先选择了三阶单环多位量化Σ-Δ调制器作为设计方案,因为这种结构能在音频带宽内提供高噪声整形效果,并且多位量化可以降低量化噪声。接着,文档展示了具体的Simulink建模步骤,包括创建模型、添加各个组件如积分器、量化器、DAC反馈以及连接它们。此外,还进行了参数设计与计算,特别是过采样率和信噪比的估算,并引入了动态元件匹配技术来减少DAC的非线性误差。性能验证部分则通过理想和非理想的仿真实验评估了系统的稳定性和各项指标,最终证明所设计的ADC能够达到预期的技术标准。 适用人群:电子工程专业学生、从事数据转换器研究或开发的技术人员。 使用场景及目标:适用于希望深入了解Σ-Δ调制器的工作原理及其在音频带ADC应用中的具体实现方法的人群。目标是掌握如何利用MATLAB/Simulink工具进行复杂电路的设计与仿真。 其他说明:文中提供了详细的Matlab代码片段用于指导读者完成整个设计流程,同时附带了一些辅助函数帮助分析仿真结果。
国网台区终端最新规范
《基于YOLOv8的智慧农业水肥一体化控制系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
GSDML-V2.33-LEUZE-AMS3048i-20170622.xml
微信小程序项目课程设计,包含LW+ppt
微信小程序项目课程设计,包含LW+ppt
终端运行进度条脚本
幼儿园预防肺结核教育培训课件资料
python,python相关资源
《基于YOLOv8的智慧校园电动车充电桩状态监测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
deepseek 临床之理性软肋.pdf
SM2258XT量产工具(包含16种程序),固态硬盘量产工具使用
RecyclerView.zip
水务大脑让水务运营更智能(23页)
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
大众捷达轿车前轮制动器设计