目录
前言
随着现在互联网的发展,直播行业也是越来越火了,但是有一个现象就是大部分的直播客户端都是面向的 Window 系统,大部分的教程也是针对 Window 的,但我是一枚 Macer,所以我再这里将我使用 Macos 开启直播中重要的一些事情记录一下。
工具
Audio MIDI Setup (Macos Buildin)
直播过程详解
首先如果我们想要直播,那么首先要搞清楚直播的整个流程:
在不同的直播平台开启直播,然后获取 RTMP 地址和密钥
将 RTMP 地址和密钥填写到 OBS 的串流配置中
配置 OBS 直播界面,比如录制整个屏幕,录制某个应用程序,录制一个区域,添加字幕,添加本地影片等等内容
在 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 Capture
和 Built-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 Microphone
和 iShowU Audio Capture
前面选中使用即可。然后再试一下,发现这个 BUG 是不是就解决了。如果还是不行,请在下方留言。
编码/转化/压缩 配置
这里主要说一下推荐的配置,针对 Macbook Pro 来说,建议使用 1280*800 的配置,码率选择 2000Kbps,帧速率 30 即可,这个配置下面可以达到较高的画质,而且 CPU 占用也不是很高。
RTMP 协议传送数据
在这里我就不详细解释 RTMP 了,也不解释 RTMP 和 HLS 的区别和联系了,这个大家可以自行 Google。
OBS 配置 RTMP 的位置是在设置 -> 串流里面,填写入地址和密钥即可。
保存之后,点击开始串流就可以进行直播了。
观看
这里顺便打个广告,我的 B 站直播间,主要是直播 Minecraft 和 Dota,纯属娱乐直播,没有什么意义。有时候可能还是直播 Coding。
总结
这篇文章算不上什么教程,也没有什么通俗易懂的图片之类的,因为大部分的内容都可以 Google 到,我这里只是针对一些可能出现问题的地方记录了一下,方便大家。