Mac 使用 OBS 直播¶

🏷️ 365bet怎么提现 📅 2025-07-31 12:53:47 👤 admin 👁️ 8581 ❤️ 951
Mac 使用 OBS 直播¶

Mac 使用 OBS 直播¶

OBS¶

开源、全平台最好的直播串流软件之一。

开源意味着更多人维护,更新快、性能好、bug较少

支持的功能能够覆盖直播推流的所有需求

注:如果是Windows电脑可以直接使用Bilibili官方的直播姬进行直播推流,使用体验没得说

安装OBS¶

官网下载 https://obsproject.com

Mac电脑选择macOS版本下载

下载好之后将软件拖动到电脑的应用程序文件夹即可

设置语言¶

打开软件之后,右下角可以进入设置,或者使用快捷键 ⌘, ,然后设置语言

OBS简单使用¶

直播是什么:把声音和画面混合在一起 将音视频诗句传输至B站直播服务器

Scene Source Audio Mixer Controls

Scene 场景

一整个开播的场景

比如平日开发代码直播是一种

直播iPad打原神是一种

和别的同学联动聊天的界面是一种

歌回的界面是一种

不同场景中的声音和画面不同,使用的组件和UI不同

Source 源

主要

Video Capture Device 视频捕捉

用来接入摄像头或iPad画面

QuickTime Player 也可以捕获iPad界面,性能更好,但稍微有一点延迟

Display Capture 显示器捕捉

主要用来捕捉Mac的屏幕

如果有外接显示器可以将OBS放到外接显示器上,然后捕捉主显示器(反过来也可以)

Window Capture 应用窗口捕捉

比如显示正在播放的音乐可以捕捉 Music.app 的界面

Browser 浏览器捕捉

只要是浏览器的界面 都可以通过输入链接进行捕获

Audio Input Capture 音频捕捉

音源:

电脑发出的声音(提示音 网页播放的视频声音 音乐软件播放的声音)

外置麦克风的声音

推流:

直播观众需要听到的声音

需要调整不同音源的音量

音响:

联动时需要听到别人的声音

电脑播放视频或音乐的时候自己也想听到

次要

Image 图像

放静态图片当背景或插画

Text 说明文字

放一些直播的说明

Media Source 媒体(视频、音频等)

比如开场动画和需要播放的视频

Group用来分组

注意不支持嵌套组

使用 Scene 场景 管理不同的页面是官方更推荐的方法

Audio Mixer 混音器

主要用来调声音 需要观众帮忙确认声音大小

右键 > Filter > Noise Suppression > 选择一种降噪方式

视频设置¶

绿幕抠像:对于输入的视频源,右键 > Filter > 左下角加号 > Chroma Key 选择绿色、拖动滑动条选择抠掉绿色的程度

在OBS上选择其他画面

思路:

使用OBS支持的脚本设置文本框的文本

使用浏览器捕获窗口

在屏幕上显示当前日期:见附录

在屏幕上显示B站弹幕:

https://comen.app 输入直播间的id就可以进行直播间弹幕的捕获。

问题是背景不是透明的 还在开发中

GitHub | 3Shain - Comen

音频设置¶

目标:耳机听到系统发出的声音,自己的语音和耳机听到的声音推流到观众端

设置方法:

在https://github.com/ExistentialAudio/BlackHole下载 BlackHole 并按照说明进行安装(安装好后 系统的声音会通过这个BlackHole的管道 到达BlackHole的输出;macOS是不能录制Mac内部发出的声音的(音乐版权保护))

打开macOS中的 Audio MIDI Setup.app,点击左下角加号添加多输出设备,添加耳机和BlackHole,Mac内部的音量需要既输出到耳机,又输出到BlackHole

然后打开系统设置,在 Sound 音频 中选择输出设备为刚才创建的多输出设备。输入选择外置麦克风(注意如果使用AirPods 不要同时将AirPods作为输入和输出 音质会特别差)

打开OBS,在 Source 源 处添加输入音频

外置麦克风

BlackHole 因为创建了多输出设备 所以你耳机中听到的声音和BlackHole输入进OBS的声音是一致的

Controls 设置¶

Stream 串流

打开 Bilibili直播中心 > 我的直播间 > 开播设置,复制服务器地址和串流密钥到OBS设置中。点击开始串流即可开始直播。

Output 输出

输出码率根据上传网速选择 比如我家的上传网速最高是 2 MB/s,折算为 16000kbps,那么码率最高设置这么高

码率越高压缩越少、画质越好;但需要考虑设备性能

Audio 音频

全局音频全部关掉 使用 Source 源 进行捕获即可

采样率调到48kHz(最高音质 音频占不了多少存储)

Video 视频

注意如果设备GPU和网络性能不是特别好的话好把帧率和分辨率调低一些

Hotkeys 快捷键

比如你要快速开麦、放一些图可以使用快捷键操作;按自己的需求来

Advanced 高级

一般不用动 如果只是使用的话

附¶

OBS时间显示 脚本¶

lua脚本是不需要安装额外解析程序的,可以直接在OBS的菜单栏选择脚本设置参数进行使用。

菜单栏 > Tools > Scripts 点击左下角加号添加时间脚本,按照下面的方式设置参数。因为要分两行显示,所以可以创建两个相同的脚本:

current_date.lua %a %b %d Mon Feb 07

current_time.lua %X 20:21:05

Lua 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139--[[ OBS Studio datetime script

This script transforms a text source into a digital clock. The datetime format

is configurable and uses the same syntax than the Lua os.date() call.

]]

obs = obslua

source_name = ""

datetime_format = ""

activated = false

-- Function to set the time text

function set_datetime_text(source, format)

local text = os.date(format)

local settings = obs.obs_data_create()

obs.obs_data_set_string(settings, "text", text)

obs.obs_source_update(source, settings)

obs.obs_data_release(settings)

end

function timer_callback()

local source = obs.obs_get_source_by_name(source_name)

if source ~= nil then

set_datetime_text(source, datetime_format)

obs.obs_source_release(source)

end

end

function activate(activating)

if activated == activating then

return

end

activated = activating

if activating then

obs.timer_add(timer_callback, 1000)

else

obs.timer_remove(timer_callback)

end

end

-- Called when a source is activated/deactivated

function activate_signal(cd, activating)

local source = obs.calldata_source(cd, "source")

if source ~= nil then

local name = obs.obs_source_get_name(source)

if (name == source_name) then

activate(activating)

end

end

end

function source_activated(cd)

activate_signal(cd, true)

end

function source_deactivated(cd)

activate_signal(cd, false)

end

function reset()

activate(false)

local source = obs.obs_get_source_by_name(source_name)

if source ~= nil then

local active = obs.obs_source_showing(source)

obs.obs_source_release(source)

activate(active)

end

end

----------------------------------------------------------

function script_description()

return "Sets a text source to act as a clock when the source is active.\

\

The datetime format can use the following tags:\

\

%a abbreviated weekday name (e.g., Wed)\

%A full weekday name (e.g., Wednesday)\

%b abbreviated month name (e.g., Sep)\

%B full month name (e.g., September)\

%c date and time (e.g., 09/16/98 23:48:10)\

%d day of the month (16) [01-31]\

%H hour, using a 24-hour clock (23) [00-23]\

%I hour, using a 12-hour clock (11) [01-12]\

%M minute (48) [00-59]\

%m month (09) [01-12]\

%p either \"am\" or \"pm\" (pm)\

%S second (10) [00-61]\

%w weekday (3) [0-6 = Sunday-Saturday]\

%x date (e.g., 09/16/98)\

%X time (e.g., 23:48:10)\

%Y full year (1998)\

%y two-digit year (98) [00-99]\

%% the character `%´"

end

function script_properties()

local props = obs.obs_properties_create()

obs.obs_properties_add_text(props, "format", "Datetime format", obs.OBS_TEXT_DEFAULT)

local p = obs.obs_properties_add_list(props, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING)

local sources = obs.obs_enum_sources()

if sources ~= nil then

for _, source in ipairs(sources) do

source_id = obs.obs_source_get_id(source)

if source_id == "text_gdiplus" or source_id == "text_ft2_source" then

local name = obs.obs_source_get_name(source)

obs.obs_property_list_add_string(p, name, name)

end

end

end

obs.source_list_release(sources)

return props

end

function script_defaults(settings)

obs.obs_data_set_default_string(settings, "format", "%X")

end

function script_update(settings)

activate(false)

source_name = obs.obs_data_get_string(settings, "source")

datetime_format = obs.obs_data_get_string(settings, "format")

reset()

end

function script_load(settings)

local sh = obs.obs_get_signal_handler()

obs.signal_handler_connect(sh, "source_show", source_activated)

obs.signal_handler_connect(sh, "source_hide", source_deactivated)

end

相关内容

Steam 社区 :: 指南 :: CS:GO 2022 常见启动项及说明中文整理
《疾风之刃》【攻略】幻魔宫怎么玩
365bet欧洲

《疾风之刃》【攻略】幻魔宫怎么玩

📅 07-24 👁️ 3246
水杯哪些品牌好?十大品牌亮点超多,不容错过