libsrt+ffmpeg推拉流(一)

您所在的位置:网站首页 srt指令 libsrt+ffmpeg推拉流(一)

libsrt+ffmpeg推拉流(一)

2023-08-08 04:19| 来源: 网络整理| 查看: 265

srt相关以及其他问题可参考两篇文章:

1:https://blog.csdn.net/zhuweigangzwg/article/details/106241458;

2:https://blog.csdn.net/sweibd/article/details/104202287;

下面介绍具体操作:

一:ffmpeg的windows版本支持srt已经编译好的下载地址:https://ffmpeg.zeranoe.com/builds/;如果用api就自己组装include,lib,dll。如果直接用ffmpeg.exe下载找到用即可。支持情况如下:

二:关于srt的一些较少编译什么的可以看这篇文章:https://blog.csdn.net/zhuweigangzwg/article/details/106241458;里面的sls服务器是专门用于srt的服务器。

三:srt的linux编译:步骤如下: 1:sudo yum install openssl-devel(下载openssl); 2:https://github.com/Haivision/srt(下载srt源码); 3:cd srt-master; 4:cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_C_DEPS=ON -DENABLE_SHARED=OFF -DENABLE_STATIC=ON; 5:sudo make && sudo make install;会生成/usr/local/lib64/libsrt.a; 和/usr/local/include/srt;

四:srt的服务器编译https://github.com/Edward-Wu/srt-live-server;步骤如下: 1: cd到srt-live-server-master目录下; 2:sudo make,该目录下有makefile文件. 会出现:slscore/SLSEpollThread.hpp:29:21: 致命错误:srt/srt.h:没有那个文件或目录; 参考README.md会发现:Requirements: please install the SRT first, refer to SRT(https://github.com/Haivision/srt) for system enviroment. SLS can only run on OS based on linux, such as mac, centos or ubuntu etc. 要求 请先安装SRT,有关系统环境,请参考SRT(https://github.com/Haivision/srt)。 SLS只能在基于Linux的OS上运行,例如mac,centos或ubuntu等。 如果安装srt将做上面"三"的操作: 3:会出现如下错误: cryspr-openssl.c:(.text+0x129):对‘AES_set_encrypt_key’未定义的引用 cryspr-openssl.c:(.text+0x141):对‘AES_set_decrypt_key’未定义的引用 collect2: 错误:ld 返回 1 make: *** [all] 错误 1; 解决方法:vim Makefile;将 LIBRARY_FILE = -lpthread -lz -lsrt 修改为 LIBRARY_FILE = -lpthread -lz -lsrt -lssl -lcrypto 即可; 4:会在./bin目录下生成sls和slc两个可执行文件; 5:run with default config file $ sudo ./sls -c ../sls.conf;(默认端口8080);

五:ffmpeg的push端命令; ./ffmpeg -f gdigrab -framerate 30 -i desktop -vcodec libx264 -preset ultrafast -tune zerolatency -flags2 local_header -acodec libmp3lame -g 30 -pkt_size 1316 -flush_packets 0 -f mpegts test.ts ./ffmpeg -f gdigrab -framerate 30 -i desktop -vcodec libx264 -preset ultrafast -tune zerolatency -flags2 local_header -acodec libmp3lame -g 30 -pkt_size 1316 -flush_packets 0 -f mpegts srt://10.18.96.215:9999?streamid=uplive.sls.com/uplive/test1 有可能出现如下错误: [srt @ 072d3a80] Connection to srt://[192.168.239.133]:8080?streamid=uplive.sls.com/live/test failed: I/O error srt://[192.168.239.133]:8080?streamid=uplive.sls.com/live/test: I/O error; 首先一定要关闭linux防火墙:# 关闭  sudo service firewalld stop ;

六:ffmpeg的play端命令; ./ffplay -fflags nobuffer -i srt://10.18.96.215:9999?streamid=live.sls.com/live/test1

七:效果:

服务器截图:

publish截图:

play截图:

八:关于具体的ffmpeg参数以及其他的参数可以做比较多的测试做调整;

https://zhuanlan.zhihu.com/p/129897837?utm_source=wechat_session&utm_medium=social&utm_oi=26741766619136,这里有丢包等模拟测试。本文只是先打通。其他后续处理。

 

 

如有错误请指正:

交流请加QQ群:62054820 QQ:379969650.


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3