首页 > 系统相关 >FFmpeg开发笔记(三十六)Linux环境安装SRS实现视频直播推流

FFmpeg开发笔记(三十六)Linux环境安装SRS实现视频直播推流

时间:2024-07-07 11:30:08浏览次数:19  
标签:视频 FFmpeg srs SRS 服务器 推流

​《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKit。

SRS是一款国产的开源实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等流媒体协议。SRS媒体服务器和FFmpeg、OBS、VLC、WebRTC等客户端配合使用,提供音视频流的接收和分发的能力,是一个典型的发布(推流)和订阅(播放)服务器模型。SRS支持互联网广泛应用的音视频协议转换,比如可以将RTMP或SRT,转成HLS或HTTP-FLV或WebRTC等协议。
通过结合FFmpeg与SRS,可以很方便地测试音视频的推拉流。接下来以华为的欧拉系统为运行环境,介绍如何编译、安装、调试SRS,详细的操作步骤说明如下。

一、编译安装SRS

1、登录Linux服务器(比如华为云的欧拉系统),运行下列命令安装SRS的依赖包。

yum install git
yum install patch

2、执行下面命令从gitee下载SRS的源码。

cd /usr/local/src
git clone -b develop https://gitee.com/ossrs/srs.git

3、进入SRS的主干源码目录,运行下面命令配置SRS。

cd srs/trunk
./configure

4、运行下面命令编译SRS。

make

命令执行完毕,SRS的可执行程序srs就在srs/trunk/obj目录下生成。

二、编译安装FFmpeg

在Linux系统编译安装FFmpeg的详细步骤参见《FFmpeg开发实战:从零基础到短视频上线》一书的“1.2  Linux系统安装FFmpeg”,这里不再赘述。

三、启动SRS

1、进入SRS的主干配置目录,也就是执行下面命令:

cd /usr/local/src/srs/trunk/conf

2、打开配置文件srs.conf,在vhost __defaultVhost__里面补充以下一行配置:

    gop_cache   on;

以上配置表示开启缓存关键帧,一定要设置为on,否则客户端拉流找不到关键帧就无法渲染画面。
修改完毕,保存并退出srs.conf。
3、执行下面命令,启动SRS服务。

cd /usr/local/src/srs/trunk
./objs/srs -c conf/srs.conf

4、检查服务器是否开启了下列端口:
1935端口,用于rtmp协议,访问“rtmp://”开头的直播地址需要。
8080端口,用于http协议,访问“http://”开头的直播地址需要。

四、检查SRS的视频推拉流

1、执行以下命令,将本地视频通过RTMP协议推流给SRS。

ffmpeg -re -stream_loop -1 -i "/usr/local/src/test/2018s.mp4" -vcodec h264 -f flv rtmp://127.0.0.1/live/test

注意:SRS不支持RTSP推流,只支持RTMP推流。
2、打开VLC播放器,依次选择菜单“媒体”→“打开网络串流”,在网络URL框中输入下列任一地址,观看能否正常播放视频画面。

rtmp://124.***.***.***/live/test
http://124.***.***.***:8080/live/test.flv
http://124.***.***.***:8080/live/test.m3u8

注意需要把上述地址中的“124.***.***.***”替换为流媒体服务器实际的公网地址。 
更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。

 

标签:视频,FFmpeg,srs,SRS,服务器,推流
From: https://www.cnblogs.com/aqi00/p/18240199

相关文章

  • FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
    ​《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有比较两种比较新的流媒体协议,分别是SRT和RIST。其中SRT全称为SecureReliableTransport,中文叫做安全可靠传输协议。RIST全称为Reliable......
  • 复现网红阻力支撑指标RSRS,手把手教你构建大盘择时策略
    之前写过一篇利用RSRS指标做ETF轮动的文章,可能是因为回测绩效看起来还不错,其后就有不少小伙伴陆陆续续来询问,想不到还有那么多人关注,于是本期文章就想掰开了揉碎了唠唠RSRS,从数据获取、计算细节一直聊到策略构建,不藏着掖着,每一步都有对应代码。我当初关注到RSRS,是因为当时无......
  • ffmpeg滤镜创建过程
    1、创建一个滤镜图AVFilterGraph*filter_graph=avfilter_graph_alloc();2、创建滤镜的输入和输出AVFilterInOut*inputs=avfilter_inout_alloc();AVFilterInOut*outputs=avfilter_inout_alloc();3、每个滤镜创建上下文AVFilterContext*filter1_ctx=avfi......
  • 揭秘!FFmpeg+Whisper双剑合璧:解锁视频到文本的二阶段奇迹
    解锁视频到文本的二阶段奇迹一、引言二、视频音频提取与处理视频音频提取与处理2.1环境搭建2.2视频音频提取2.3音频预处理示例代码:三、语音识别与翻译3.1加载Whisper模型3.2语音识别3.3语言检测与翻译四、结果处理与验证4.1结果整理4.2视频与文本同步验证五......
  • thinkphp6 使用FFMpeg获取视频信息
    1.本地安装 FFMpeg,官网下载地址:https://ffmpeg.org/download.html#build-windows  解压后,把文件夹放到自定义目录,添加系统变量 2.安装依赖,composer.json添加"php-ffmpeg/php-ffmpeg":"^0.19.0",3.封装class类<?phpnamespaceapp\api\controller;useFFMpeg......
  • ffmpeg常用命令汇总
    最近在学习ffmpeg,将基础命令做一次汇总,便于自己以后查阅:1.ffmpeg常用命令ffmpeg帮助信息查看//查看ffmpeg的基础信息。ffmpeg--help//查看高级参数部分。ffmpeg--helplong//查看全部的帮助信息。ffmpeg--helpfull转封装//-hide_banner:隐去ffmpeg......
  • ffmpeg在Windows上的安装
    首先进入官网DownloadFFmpeg选择windows版本下载想要的版本Gyan.dev的版本可能会更符合Windows标准,而BtbN的版本可能会更加开放和跨平台往下拉选择想要的版本进行下载我下载的是第一个下载好之后解压文件复制bin目录的路径 接着按照下面的顺序进行环境配置,结束后一路确......
  • 【机器学习】FFmpeg+Whisper:二阶段法视频理解(video-to-text)大模型实战
    目录一、引言二、FFmpeg工具介绍2.1什么是FFmpeg2.2FFmpeg核心原理2.3FFmpeg使用示例三、FFmpeg+Whisper二阶段法视频理解实战3.1FFmpeg安装3.2Whisper模型下载3.3 FFmpeg抽取视频的音频3.3.1 方案一:命令行方式使用ffmpeg3.3.2方案二:ffmpeg-python库使用ff......
  • FFmpeg 命令行 音视频格式转换
    ......
  • 糖豆人提示ffmpeg.dll丢失怎么办?糖豆人提示ffmpeg.dll丢失最靠谱的解决指南
    遇到《糖豆人:终极淘汰赛》(FallGuys:UltimateKnockout)游戏提示“ffmpeg.dll”文件丢失的问题,意味着你的系统中缺少或损坏了FFmpeg多媒体框架中的一个动态链接库文件。以下是解决此问题的步骤:重新安装游戏尝试卸载并重新安装游戏,有时候游戏的重新安装可以自动修复缺失的文......