目录

  1. 前言
  2. 工具
  3. 直播过程详解
  4. 直播源与 OBS
    1. OBS
    2. 下载/安装(自行解决)
    3. 概念
      1. 场景 & 来源
      2. 混音器
    4. 直播源
    5. 音频
      1. Step 1: Install iShowU Audio Capture
      2. Step 2:Setup Multi-Output Device
      3. Step 3: Switch to New Output
      4. Step 4:Set New Audio Input In OBS
    6. BUG
  5. 编码/转化/压缩 配置
  6. RTMP 协议传送数据
  7. 观看
  8. 总结

前言

随着现在互联网的发展,直播行业也是越来越火了,但是有一个现象就是大部分的直播客户端都是面向的 Window 系统,大部分的教程也是针对 Window 的,但我是一枚 Macer,所以我再这里将我使用 Macos 开启直播中重要的一些事情记录一下。

工具

直播过程详解

首先如果我们想要直播,那么首先要搞清楚直播的整个流程:

  1. 在不同的直播平台开启直播,然后获取 RTMP 地址和密钥

  2. 将 RTMP 地址和密钥填写到 OBS 的串流配置中

  3. 配置 OBS 直播界面,比如录制整个屏幕,录制某个应用程序,录制一个区域,添加字幕,添加本地影片等等内容

  4. 在 OBS 中开启直播,整个直播就开始了,其他人就可以在直播平台看到你的直播内容了

也就是说整个直播流的流动是这样的:

直播源 -> OBS 录制 -> 编码/转换/压缩 -> 通过 RTMP 协议将数据发送到直播平台 -> 用户打开直播平台 -> 获取数据 -> 直播播放

那么我们就针对整个直播流进行说明:

直播源与 OBS

由于这两部分可以在一起讲解,我们主要是讲解 OBS。

OBS

官网是这样描述这个软件的:

Open Broadcaster Software. Free and open source software for video recording and live streaming.

所以这款软件主要是面向的是视频录制和直播流,但是我不得不说用这个软件还是直播用的多。视频录制简单来说就是类似于 B 站的游戏视频似得,或者相关的视频教程。不过不得不说,如果是游戏录制的话,还是使用 navida 自带的视频录制好一些,那个对性能的影响不是很高。这个 obs 真占用 CPU >__>(后面会有相应的测试)。

下载/安装(自行解决)

在官网一个硕大的 Download,请自行点击,并选择合适的版本下载。

概念

场景 & 来源

如果是学过导播的同学,或许对这个并不陌生。那么我简单来说,用电视台举个例子,一个场景对应的是一个电视台的画面,而一个来源对应的电视台中的一个图层。比如说山东卫视是一个场景,但是山东卫视画面当中的台标是一个来源,电视剧画面是一个来源,底部滚动信息是一个来源,右下角广告是一个来源,这些来源共同组成了这个场景,也就是山东卫视的画面。

混音器

主要是针对输出的音频进行合成的

直播源

在 obs 启动之后,默认只有一个场景,但是场景里面是空的,那么我们需要添加自己需要录制或直播的内容:

在下方的来源中的右下角有一个加号,点击之后会有一个菜单让我们选择添加什么样的来源,有如下:

  • 图像 添加一个图像,类似于电视台添加台标

  • 图像幻灯片放映 添加图像幻灯片,不多解释

  • 场景可以在一个场景中嵌入另一个场景的内容,类似在山东卫视里面播放了浙江卫视的内容

  • 媒体源 添加一个媒体,一般是视频

  • 文本 添加文字

  • 显示捕获 捕获屏幕

  • 窗口捕获 捕获一个窗口的内容

  • 游戏录制(Syphon) 相当于窗口捕获,不过他是利用 Syphon 直接从 GPU
    中获取画面,而且没有窗口边框的,这点对于游戏直播来说还是不错的。

  • BrowserSource 嵌入一个网页

上面就是平时用到的一些内容,具体操作我就不讲解了,不同的来源有不同的配置内容,不过整体相对来说还是简单的,如果有需要的话,大家可以留言,我再详细讲解一下,当然还有音频的来源,这个我们后面再讲。

音频

在解决了画面的问题之后,那么我们剩下的问题就剩下音频了。大家或许想了,添加音频不是很简单的事情么,有啥复杂的。不过我想说的是,在 Window 上面或许确实简单,但是在 Macos 上面,由于 Apple 在 OSX10.11 加入的新的安全机制,导致无法正常的获取系统声音,麦克风的声音还是可以正常获取的。也就是说无法录制游戏内部的声音,但是可以录制你说话的声音。那么如果是 Linux 思维用户的话,那么就会直接把 SIP 关掉,哈哈哈。简单就是智慧,复杂就是愚蠢,😂

不过对于不想关闭的用户来说,还是有办法的。那么我们可以换个思路来思考,我们可以将音频输出到一个虚拟的输出设备,然后这个设备再虚拟成输入设备,在 OBS 从这个虚拟的输入设备中获取输入,就可以成功解决无法录制系统音频的问题了。

不过也有人问了,那这样的话,我不就听不到声音了么???解决办法就是:用另一台设备打开自己的直播网站,播放自己的直播视频,然后放在旁边,只不过可能会有几十秒的延迟而已 ^_^

不闹了,其实是用到了 Mac 自带的 Audio MIDI Setup ,需要这个软件先虚拟一个多输出设备,然后将音频输出到这个多输出设备上,然后由多输出设备将输出一部分送到扬声器,另一部分送到虚拟的输出设备,剩下的照常。

这样我们就解决了因为系统权限问题而无法获取系统声音的问题。

具体数据流见如下图:

Step 1: Install iShowU Audio Capture

首先解释一下 iShowU Audio Capture 是干什么用的,其实主要作用就是生成一个虚拟的输入输出设备。在这里,有很多的替代品,不过我觉得这个是比较纯粹的一个,只有这一个功能。

首先这里工具有官网链接,下载后安装即可。然后打开系统偏好设置 -> 声音,选择输出选项卡,会有一个叫做 iShowU Audio Capure 的选项,并且切换到输入选项卡,也可以看到一个叫做 iShowU Audio Capture 的选项,那么说明你已经安装成功了。

Step 2:Setup Multi-Output Device

打开 Audio MIDI Setup ,点击左下角的加号,选择创建多输出设备,分别在 iShowU Audio CaptureBuilt-in Output 前面勾选使用。

Step 3: Switch to New Output

打开系统偏好设置 -> 声音 -> 输出选项卡,选择我们刚刚添加的多输出设备,将输出定向到这个新的多输出设备上。

Step 4:Set New Audio Input In OBS

打开 OBS,选择添加音频输入来源,选择我们刚刚添加的 iShowU Audio Capture 即可。

下面我们可以进行一下测试,打开一个音乐播放,可以在混音器中看到有音频信号传入,并且扬声器中也有声音发出,那么说明你已经成功了!!!

赶紧打开一瓶饮料庆祝一下吧,不过且慢。🐛来了

BUG

此时如果你带着耳机你会发现麦克风不管用了,麦克风传入的信号也是系统声音,这是什么原因呢?不知。。。不过这里有一个解决方案。

创建一个输入聚合设备,跟创建多输出设备类似,不过这次我们选择创建聚合设备(aggregate device),在 Built-in MicrophoneiShowU Audio Capture 前面选中使用即可。然后再试一下,发现这个 BUG 是不是就解决了。如果还是不行,请在下方留言。

编码/转化/压缩 配置

这里主要说一下推荐的配置,针对 Macbook Pro 来说,建议使用 1280*800 的配置,码率选择 2000Kbps,帧速率 30 即可,这个配置下面可以达到较高的画质,而且 CPU 占用也不是很高。

RTMP 协议传送数据

在这里我就不详细解释 RTMP 了,也不解释 RTMP 和 HLS 的区别和联系了,这个大家可以自行 Google。

OBS 配置 RTMP 的位置是在设置 -> 串流里面,填写入地址和密钥即可。

保存之后,点击开始串流就可以进行直播了。

观看

这里顺便打个广告,我的 B 站直播间,主要是直播 Minecraft 和 Dota,纯属娱乐直播,没有什么意义。有时候可能还是直播 Coding。

总结

这篇文章算不上什么教程,也没有什么通俗易懂的图片之类的,因为大部分的内容都可以 Google 到,我这里只是针对一些可能出现问题的地方记录了一下,方便大家。

注释和共享

  • 第 1 页 共 1 页

XGHeaven

一个弱弱的码农


杭州电子科技大学学生一枚


Weifang Shandong, China