使用Linux+FFmpeg+SRS 搭建流媒体服务器
2021/10/6 7:12:56
本文主要是介绍使用Linux+FFmpeg+SRS 搭建流媒体服务器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
当前场景 有前端摄像头使用RTSP生产视频流,网页页面需要播放实时视频,以前是采用FFmpeg转码+Nginx的rtmp模块 推送视频直播流。
但目前这种方式前端采用FLASH播放器进行播放已经不适用当前的环境,毕竟Flash在某些浏览器中已经被禁止。
故现在改用FFmpeg+SRS进行流媒体服务器进行视频直播推流,这种方式可以支持H5播放。下面来介绍其操作步骤。
步骤一、
下载SRS源代码并编译 或下载其编译好的SRS 服务。 推荐开源地址 srs: SRS/4.0,Leo,是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT
https://gitee.com/winlinvip/srs.oschina
下载源码,推荐用CentOS7系统
git clone -b 4.0release https://gitee.com/ossrs/srs.git
编译,注意需要切换到srs/trunk
目录:
cd srs/trunk ./configure make
注:一般情况下,播放的地址与网站存在SRS跨域播放问题 可以按下面方案解决此问题 在此之前,千万一定不要执行编译!
#cd srs/trunk
#vi src/app/srs_app_http_stream.cpp
在w->header()->set_content_type("video/x-flv");下一行添加代码
w->header()->set("Access-Control-Allow-Origin","*");
然后直接编译安装SRS
注意:在修改src/app/srs_app_http_stream.cpp之前不要编译srs
步骤二、
启动SRS服务 srs.conf配置如下:
# main config for srs. # @see full.conf for detail config. listen 1936; max_connections 1000; srs_log_tank file; srs_log_file ./objs/srs.log; daemon on; http_api { enabled on; listen 1986; } http_server { enabled on; listen 7001; dir ./objs/nginx/html; } stats { network 0; disk sda sdb xvda xvdb; } vhost __defaultVhost__ { hls { enabled off; } #最小延迟打开,默认是打开的,该选项打开的时候,mr默认关闭。 min_latency on; #Merged-Read,针对RTMP协议,为了提高性能,SRS对于上行的read使用merged-read,即SRS在读写时一次读取N毫秒的数据 mr { enabled on; #默认350ms,范围[300-2000] latency 500; } mw_latency 100; gop_cache off; queue_length 10; http_remux { enabled on; fast_cache 30; mount [vhost]/[app]/[stream].flv; hstrs off; } }
启动命令如下:
./objs/srs -c conf/srs.conf
步骤三、
使用ffmpeg 进行转码 如前端摄像头地址为:rtsp://48.5.16.5:888/admin 本机IP地址为:192.168.1.1
在命令行运行命令:
/usr/local/ffmpeg/bin/ffmpeg -i rtsp://48.5.16.5:888/admin -c:v libx264 -strict -2 -preset ultrafast -acodec aac -s 640*480 -f flv rtmp://192.168.1.1:1936/live/zhibo1 >/dev/null 2>&1 &
步骤四 访问播放地址
使用HTML5播放器进行播放 播放地址为:http://192.168.1.1:7001/live/zhibo1
其中1936 7001 端口与srs.conf 中的监听端口保持一致。
此致,部署完成。
这篇关于使用Linux+FFmpeg+SRS 搭建流媒体服务器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法