​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直播推流的更多相关文章

  1. FFmpeg开发笔记(四):ffmpeg解码的基本流程详解

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  2. FFmpeg开发笔记(五):ffmpeg解码的基本流程详解(ffmpeg3新解码api)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  3. FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放

    前言   ffmpeg播放rtsp网络流和摄像头流.   Demo   使用ffmpeg播放局域网rtsp1080p海康摄像头:延迟0.2s,存在马赛克     使用ffmpeg播放网络rtsp文件流 ...

  4. FFmpeg开发笔记(三):ffmpeg介绍、windows编译以及开发环境搭建

    前言   本篇章是对之前windows环境的补充,之前windows的是无需进行编译的,此篇使用源码进行编译,版本就使用3.4.8.   FFmpeg简介   FFmpeg是领先的多媒体框架,能够解码 ...

  5. FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台

    FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待   前言   将ffmpeg移植到海思H ...

  6. Django开发笔记二

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.xadmin添加主题.修改标题页脚和收起左侧菜单 # ...

  7. python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码

    python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的 ...

  8. Django笔记二十三之case、when操作条件表达式搜索、更新等操作

    本文首发于公众号:Hunter后端 原文链接:Django笔记二十三之条件表达式搜索.更新等操作 这一篇笔记将介绍条件表达式,就是如何在 model 的使用中根据不同的条件筛选数据返回. 这个操作类似 ...

  9. Android流媒体开发之路二:NDK开发Android端RTMP直播推流程序

    NDK开发Android端RTMP直播推流程序 经过一番折腾,成功把RTMP直播推流代码,通过NDK交叉编译的方式,移植到了Android下,从而实现了Android端采集摄像头和麦克缝数据,然后进行 ...

  10. SDL开发笔记(二):音频基础介绍、使用SDL播放音频

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

随机推荐

  1. MogDB备机处于standby need-repair(WAL)状态

    MogDB 备机处于 standby need-repair(WAL)状态 本文出处:https://www.modb.pro/db/402820 问题现象 Mogdb 主备环境,备机检查发现 Sta ...

  2. 不常用的技能-【手动编译java类】

    jdk版本:1.7 冒号分割jar包,1.8 分号分割jar包 javac -classpath fastjson-1.2.24.jar:jedis-2.9.0.jar Test.javajava - ...

  3. 百度unit闲聊机器人

    import json import random import requests # client_id 为官网获取的AK, client_secret 为官网获取的SK client_id = & ...

  4. nuxt按需引入组件库(却加载所有图标问题),nuxt性能优化。

    做一个官网,nuxt按需引入了antd_vue组件库,但是项目打包时,图标却又500K+,经过排查,发现icon和其他组件环环相扣的.如下:(我引入了这个翻页的组件,里面包含了两个翻页的图标) 但是它 ...

  5. 【笔记】Linux基础指令

    Linux基础指令 cd 跳转文件夹 cd 到根目录 cd usr 到根目录下的usr目录 cd .. 到上一级目录 cd ~ 到home目录 cd - 到上次访问的目录 sh 执行sh命令 ls 查 ...

  6. 力扣1346(java&python)-检查整数及其两倍数是否存在(简单)

    题目: 给你一个整数数组 arr,请你检查是否存在两个整数 N 和 M,满足 N 是 M 的两倍(即,N = 2 * M). 更正式地,检查是否存在两个下标 i 和 j 满足: i != j 0 &l ...

  7. 力扣784(java)-字母大小写全排列(中等)

    题目: 给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串. 返回 所有可能得到的字符串集合 .以 任意顺序 返回输出. 示例 1: 输入:s = " ...

  8. 力扣306(java)-累加数(中等)

    题目: 累加数 是一个字符串,组成它的数字可以形成累加序列. 一个有效的 累加序列 必须 至少 包含 3 个数.除了最开始的两个数以外,序列中的每个后续数字必须是它之前两个数字之和. 给你一个只包含数 ...

  9. 使用 Gradio 的“热重载”模式快速开发 AI 应用

    在这篇文章中,我将展示如何利用 Gradio 的热重载模式快速构建一个功能齐全的 AI 应用.但在进入正题之前,让我们先了解一下什么是重载模式以及 Gradio 为什么要采用自定义的自动重载逻辑.如果 ...

  10. 阿里云RemoteShuffleService 新功能:AQE 和流控

    ​简介:阿里云EMR 自2020年推出 Remote Shuffle Service(RSS)以来,帮助了诸多客户解决 Spark 作业的性能.稳定性问题,并使得存算分离架构得以实施.为了更方便大家使 ...