FFmpeg开发笔记(二十三)使用OBS Studio开启RTMP直播推流

ffmpeg,obs,studio,rtmp · 浏览次数 : 0

小编点评

**OBS直播教程** **1. 下载并安装OBS Studio** - 从OBS Project 网站下载最新版本: - Windows:https://obsproject.com/download - Mac OS:下载地址未公布 - Linux:下载地址未公布 **2. 启动流媒体服务器** - 下载并安装 MediaMTX 软件 - 启动 mediamtx.exe 文件 **3. 打开OBS Studio** - 启动 OBS Studio - 点击右下角的“设置”按钮 - 在左边列表选择“直播”,右侧的“服务”栏选择“自定义”,然后填写服务器地址为“rtmp://127.0.0.1:1935/stream” **4. 设置直播参数** - 点击主界面下方中间靠左的“来源”区域 - 点击左下角的加号按钮 - 选择“视频采集设备”,点击“新建” - 点击右下角的确定按钮,OBS Studio 会预览摄像头采集到的视频画面 - 点击右下角的“开始直播”按钮 **5. 启动拉流程序** - 启动拉流程序打开 MSYS 的命令行窗口 - 进入《FFmpeg开发实战:从零基础到短视频上线》随书源码的 chapter10 目录 - 运行以下命令拉流视频并播放: ``` ./playsync2 "rtmp://127.0.0.1:1935/stream" ``` **注意:** - 该教程使用的是 RTMP 推流方式,如果您要使用 RTSP 推流,请在设置中设置服务器地址为 “rtsp://127.0.0.1:1935/stream”。 - 您可以根据需要调整视频分辨率(1280x720 是一般推荐的视频分辨率)。

正文

OBS是一个开源的直播录制软件,英文全称叫做Open Broadcaster Software,广泛用于视频录制、实时直播等领域。OBS不但开源,而且跨平台,兼容Windows、Mac OS、Linux等操作系统。

OBS的官网是https://obsproject.com/,录制软件名叫OBS Studio,它基于QT+FFmpeg编码。使用OBS实现直播功能的话,需要执行下列四个步骤。

一、下载并安装OBS Studio

OBS Studio的官网下载页面是https://obsproject.com/download,最新版本为2024年4月推出的OBS-Studio-30.1.2,Windows安装包的下载地址为https://cdn-fastly.obsproject.com/downloads/OBS-Studio-30.1.2-Full-Installer-x64.exe。
OBS Studio的源码托管页面在https://github.com/obsproject/obs-studio,各版本的下载页面是https://github.com/obsproject/obs-studio/releases/,其中OBS-Studio-30.1.2的安装包下载链接为https://github.com/obsproject/obs-studio/releases/download/30.1.2/OBS-Studio-30.1.2-Full-Installer-x64.exe。
双击下载好的安装包,一路单击Next按钮,最后在结束窗口单击Finish按钮完成安装操作。

二、启动流媒体服务器

按照《FFmpeg开发实战:从零基础到短视频上线》一书“10.2.2  FFmpeg向网络推流”小节的说明,下载并安装轻量级流媒体服务软件MediaMTX。解压后双击启动mediamtx.exe,此时RTMP协议的默认推流地址为rtmp://127.0.0.1:1935/stream。这里之所以用rtmp地址而非rtsp地址,是因为OBS Studio默认只支持RTMP推流,如果要让它支持RTSP推流,还得额外增加配置。因此为了简化直播流程,就采用RTMP方式推流了。

三、打开OBS Studio

双击启动OBS Studio之后,执行下列三个步骤开启直播推流:
1、单击主界面右下角的“设置”按钮,或者依次选择顶部菜单“文件”→“设置”,弹出的设置窗口在左边列表选择“直播”,窗口右边的“服务”栏选择“自定义”,“服务器”栏填“rtmp://127.0.0.1:1935/stream”,如下图所示:

设置窗口的左边列表选择“视频”,窗口右边的“基础分辨率”和“输出分辨率”都选择“1280x720”,如下图所示:

确认“直播”和“视频”两个页面都修改好了,再单击窗口右下角的确定按钮完成设置。

2、找到主界面下方中间靠左的“来源”区域,单击该区域左下角的加号按钮,在弹出列表中选择“视频采集设备”,接着在弹窗中选择“新建”,如下图所示:

然后单击窗口右下角的确定按钮,OBS Studio就开始预览摄像头采集到的视频画面。

3、单击主界面右下角的“开始直播”按钮,OBS Studio就开始向指定的服务器推送直播流。

四、启动拉流程序

打开MSYS的命令行窗口,进入《FFmpeg开发实战:从零基础到短视频上线》随书源码的chapter10目录,运行下面的程序命令,期望从指定的rtmp地址拉流并播放。

./playsync2 "rtmp://127.0.0.1:1935/stream"

然后发现弹出SDL窗口,观察播放的视频正是OBS通过摄像头采集到的画面,说明使用OBS Studio结合MediaMTX成功实现了直播功能。

与FFmpeg开发笔记(二十三)使用OBS Studio开启RTMP直播推流相似的内容:

FFmpeg开发笔记(二十三)使用OBS Studio开启RTMP直播推流

​OBS是一个开源的直播录制软件,英文全称叫做Open Broadcaster Software,广泛用于视频录制、实时直播等领域。OBS不但开源,而且跨平台,兼容Windows、Mac OS、Linux等操作系统。 OBS的官网是https://obsproject.com/,录制软件名叫OBS

FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid

​XviD是个开源的视频编解码器,它与DivX一同被纳入MPEG-4规范第二部分的视频标准,但DivX并未开源。早期的MP4视频大多采用XviD或者DivX编码,当时的视频格式被称作MPEG-4。现在常见的H.264后来才增补到MPEG-4规范的第十部分,当然如今使用XviD压缩的视频已经不多了。

FFmpeg开发笔记(二十六)Linux环境安装ZLMediaKit实现视频推流

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

FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器

​AV1是一种新兴的免费视频编码标准,它由开放媒体联盟(Alliance for Open Media,简称AOM)于2018年制定,融合了Google VP10、Mozilla Daala以及Cisco Thor三款开源项目的成果。据说在实际测试中,AV1标准比H.265(HEVC)的压缩率提升了

FFmpeg开发笔记(二十二)FFmpeg中SAR与DAR的显示宽高比

​《FFmpeg开发实战:从零基础到短视频上线》一书提到:通常情况下,在视频流解析之后,从AVCodecContext结构得到的宽高就是视频画面的宽高。然而有的视频文件并非如此,如果按照AVCodecContext设定的宽高展示视频,会发现画面被压扁或者拉长了。比如该书第10章源码playsync.

FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3解码器

​AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准。AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制订工作,参考软件的测试表明,AVS3基准档次的性能比上一代标准AVS2和HEVC提升了约30%。 l

FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器

​AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准。AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制订工作,参考软件的测试表明,AVS3基准档次的性能比上一代标准AVS2和HEVC提升了约30%。 l

FFmpeg开发笔记(三十三)分析ZLMediaKit对H.264流的插帧操作

​《FFmpeg开发实战:从零基础到短视频上线》一书的“3.4.3 把原始的H264文件封装为MP4格式”介绍了如何把H.264裸流封装为MP4文件。那么在网络上传输的H.264裸流是怎样被接收端获取视频格式的呢?前文指出H.264流必定以“SPS帧→PPS帧→IDR帧”开头,接下来就来验证是否确实

FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg

​《FFmpeg开发实战:从零基础到短视频上线》一书的“第11章 FFmpeg的桌面开发”介绍了如何在Windows环境对Qt结合FFmpeg实现桌面程序,那么Windows系统通过Visual Studio开发桌面程序也是很常见的,下面就介绍如何在Visual Studio的C++工程中集成FFm

FFmpeg开发笔记(三十八)APP如何访问SRS推流的RTMP直播地址

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