使用MacOS直播
参考链接:https://www.jianshu.com/p/94f42a793a7e
参考链接:https://blog.dreamtobe.cn/live_guideline/
所需软件 密码:oqxb
前言:使用MacOS直播需要依赖一些第三方的工具通过推流的方式进行直播,另外如何将手机投屏到电脑上也是一个问题,如何做到流畅,高清呢?
直播原理
各个直播平台,例如bilibili、斗鱼或者其他直播平台,都是支持通过开放一个rtmp提供rtmp地址与直播码来进行推流来实现直播的。

因此我们只需要用工具将视频流推送到直播平台提供的rtmp即可。
RTMP:
实时消息协议(英语:Real-Time Messaging Protocol,缩写RTMP)也称实时消息传输协议,是最初由Macromedia为通过互联网在Flash播放器与一个服务器之间传输流媒体音频、视频和数据而开发的一个专有协议。标准的未加密的协议,默认端口1935。一般包含 发布地址与流名称,业界已经有很多基于该协议的服务。
优势
- 兼容性,由于其播放的客户端只需要Flash Player,使得99%的PC都可以直接在网页上直接查看
- RTMP采用TCP作为传输层协议,避免在广域网传输过程中丢包对质量照成损失
- 传输的FLV封装格式支持H.264视频编码,可以在很低码率下显示质量也能很不错
劣势
- 由于基于TCP协议,实时性不如UDP,也因此占用宽带,目前基于UDP的RTMFP协议解决了这个问题
- 依赖Flash Player,必须需要Flash Player
推流
OBS:
OBS是一个用于录制和进行网络直播的自由开源软件包。OBS使用C和C++语音编写,提供实时源和设备捕获、场景组成、编码、录制和广播。数据传输主要通过实时消息协议(RTMP)完成,可以发送到任何支持RTMP的目的地,包括YouTube、Twitch.tv、Instagram和Facebook等流媒体网站。
直播看起来是实时的,实际上并不是,它的原理是通过软件将视频音频采集起来,并在另一个端播放出来,这中间可能会经过很多步骤,视频直播平台就是中间的步骤。
直播的两端(采集端,播放端)就是通过rtmp协议来传输数据的,其中采集端到播放端的数据传输,称为推流(push stream),就是把视频流数据推送到指定的地址。
直播准备工作
- 直播工具软件: mac上软件叫弹幕库,它可以直连B站直播间,读取和播报弹幕信息,统计直播礼物等,是一个十分方便的工具。下载链接:http://bilibili.danmaku.live

- 单独的音视频采集卡。电脑不具备音视频条件,或者直播内容需要比较灵活专业设备支持的(比如主机游戏直播),就需要单独的音视频采集卡了。
直播设置
- 打开OBS Studio, 完成初始设置(后面可以更改)。然后根据引导,添加音频源,视频源,以及屏幕捕捉源,例如mac麦克风,mac前置摄像头,mac外接显示器。选择好后可以在场景窗口中预览采集效果,并实时调整画面位置和大小。

视频捕捉设备: 可以设置的是前置摄像头音频输入捕获: 默认的麦克风/Aux输入,其实在混音器中就已经添加了,我这里其实添加的是我音乐播放器的输入,这边使用的是Sound Siphon,后面会提到显示捕获: 可以设置的电脑的主显示器
- 打开弹幕库,登陆B站账号,添加直播间(只需要填写直播号,就是直播间网址最后那个id号),它会自动获取直播间信息。弹幕姬的应用模块里有弹幕视图(显示弹幕信息),工具栏(可以通过它发送弹幕),语音播报(播报实时弹幕)等等好用的模块。需要注意的是你点击模块按钮,模块界面弹出,模块按钮右上角蓝色方块亮起,就算启用了这个模块,点击蓝色方块关闭模块界面就停用了该模块。弹幕姬同时还提供了直播间数据统计和可视化的功能,十分方便实用。当然你在B站主页上也能找到B站官方提供的统计数据。
- 在B站开启直播间,获取rtmp地址和密码。打开OBS设置,找到推流,填上地址和密码。然后退出到场景界面,在右边找到“开始推流”按钮,点击开始推流。(需要注意的是通常来说需要在直播网站上先点击开播)

开始推流后就可以在你的直播间查看直播效果了。需要停止直播只需在OBS中点击停止推流即可,B站检测到没有数据推送后会自动断开直播间。
手机投屏
方法一:
可使用很多软件进行手机投屏,其中包括AirDroid、Vysor等等,AirDroid存在的问题由于使用的是WIFI无线连接,所以不清晰并且卡顿,而Vysor不用说了,由于是付费的,最后我找到了一个更好的解决方案,免费、高清、流畅、灵活调节大小等等,完全符合需求。
这个工具就是用C写的开源的Scrcpy,其在Mac上的安装方法也十分简单,支持直接通过HomeBrew进行安装,具体可以参看官方的方法:
brew install scrcpy
安装完成后,直接在终端输入scrcpy便可以进行使用,各方面的调整(如比率等)也可以通过scrcpy --help获得教程
注:此处投屏的是安卓手机
方法二:
使用MacOS自带的app quickTIme Player ,此时需要将手机通过数据线(充电线)连接到电脑上。
选择 文件->新建影片录制

点击小红点右边的箭头,选择iphone,音频选择iphon就能播放手机打开的应用的声音

方法三:
- 下载AirServer软件(不需要连接数据线到电脑上)

- 打开该软件
- 之后用iPhone手机找到屏幕镜像

- 选择要投屏的设备

- 此时就可以投屏了
播放器的音频流
首先OBS支持添加不同的音频流入来进行混音,我们这边通过前面提到的Sound Siphon进行添加(其付费是需要49刀购买,免费可以试用14天),可以到官网下载试用。
下载完成后进行,安装后打开:

打开后,这边添加一个音频输入,选择你的播放器,已经这边对该音频输入进行命名(这边为了便于教程我就命名为(New Input)),然后大家在OBJ上的来源添加音频输入捕获,此时就会看到你刚刚添加的New Input音频输入源了,这个输入源就只包含播放器的音效。
至此,完毕。
使用MacOS直播的更多相关文章
- 【教程】OBS直播推流教程(Windows & macOS)
OBS Open Broadcaster Software | OBS (obsproject.com) Windows直播推流教程 Windows下OBS直播推流非常简单,本教程将会介绍,具体步骤如 ...
- HTML5 直播协议之 WebSocket 和 MSE
当前为了满足比较火热的移动 Web 端直播需求, 一系列的 HTML5 直播技术迅速的发展了起来. 常见的可用于 HTML5 的直播技术有 HLS, WebSocket 与 WebRTC. 今天我要向 ...
- 搭建HTTP Live Streaming直播系统
最近,需要将苹果的HTTP Live Streaming系统搭建起来.完全没有头绪,故第一步就是学习. 一.学习资料 官网资料 1. http://developer.apple.com/resour ...
- 直播视频插件--sewise player
直播视频插件 -- sewise player 2017-1-9 因为公司要开发一个关于购车直播的新项目,需要在页面引入直播视频,项目组之前都没有做过关于直播类型的项目,所以可以说是真的从各种资源中筛 ...
- 零基础如何一步一步开始搭建高性能直播平台?现以GitChat·架构来进行说明
前言 现在直播已经成为移动互联网时代一个新的重要流量入口,从YY.斗鱼到花椒直播,直播已经成为人们分享交流的新方式,应用场景众多,主要分为: 金融类直播:金融直播可应用于实时解盘,在线专家讲座,专家在 ...
- 【阿里聚安全·安全周刊】阿里双11技术十二讲直播预约|AWS S3配置错误曝光NSA陆军机密文件
关键词:阿里双11技术十二讲直播丨雪人计划丨亚马逊AWS S3配置错误丨2018威胁预测丨MacOS漏洞丨智能风控平台MTEE3丨黑客窃取<权利的游戏>剧本|Android 8.1 本 ...
- 直播-srs起步
srs简介 https://github.com/ossrs/srs/wiki/v2_CN_Home 原料 CentOS Linux release 7.2.1511 (Core) ffmpe ...
- 极速搭建RTMP直播流服务器+webapp (vue) 简单实现直播效果
在尝试使用webRTC实现webapp直播失败后,转移思路开始另外寻找可行的解决方案.在网页上尝试使用webRTC实现视频的直播与看直播,在谷歌浏览器以及safari浏览器上测试是可行的.但是基于基座 ...
- 基于obs+nginx-rtmp-module搭建自己直播的系统
前言 一句唠叨,工欲善其事,必先利其器,在程序员的工作里,搭建各种环境往往花费过多不必要的时间,这里建议搭建服务端环境时,尽量避开win.macos这种系统,个人比较推崇centos. 操作 下面以c ...
随机推荐
- 2020年全新web前端学习路线图,学完就业20K!
第一阶段:HTML5+css 配套学习视频: 前端小白零基础入门HTML5+CSS3 第二阶段:移动web网页开发 移动web进阶教程 第三阶段:JavaScript网页编程 前端与移动开发基础入门到 ...
- (私人收藏)2019WER积木教育机器人赛(普及赛)解决方案-(全套)获取能源核心
2019WER积木教育机器人赛(普及赛)解决方案-(全套)获取能源核心 含地图,解决程序,详细规则,搭建方案EV3;乐高;机器人比赛;能力风暴;WER https://pan.baidu.com/s/ ...
- String类、static关键字、Arrays类、 Math类的一些学习心得
String类 java.lang.String 类代表字符串.Java程序中所有的字符串文字(例如"abc" )都可以被看作是实现此类的实例. 类 String 中包括用于检查各 ...
- JIT的Profile神器JITWatch
简介 老是使用命令行工具在现代化社会好像已经跟不上节奏了,尤其是在做JIT分析时,使用LogCompilation输出的日志实在是太大了,让人望而生畏.有没有什么更加简便的方法来分析JIT日志呢?快来 ...
- 面试WEB前端如何才能通过?
从事web前端工作七年时间,因为一直是非常热爱编程的,从小就有兴趣,大学就是学计算机的,技术应该比一般同龄的都要好一些,今天我想给大家讲述一下,目前想要做web前端开发,面试成功应该如何去学习,要具备 ...
- C++中cin>>a原理
int a; vector<int>res; while(cin>>a){ res.push_back(a); } 给出这段代码 可以输入1 2 3 4 5并以回车结束,从而 ...
- day48 work
1 navicat自己玩一玩 2 练习题一定要搞懂 照着我的思路一遍遍的看敲 3 熟悉pymysql的使用 4 sql注入产生的原因和解决方法 了解 5 思考:如何结合mysql实现用户的注册和登录功 ...
- DNP3协议解析 —— 利用Wireshark对报文逐字节进行解析详细解析Modbus所含功能码
现在网上有很多类似的文章.其实这一篇也借鉴了很多其他博主的文章. 写这篇文章的重点是在于解析功能和报文.对Dnp3这个协议并不会做很多介绍. 那我们就开始吧 上图则为dnp3协议整体的报文模型(点击红 ...
- C#中Linq查询List与DataTable和Dictionary
查询DataTable返回List List<string> listNation = dtNation.AsEnumerable().Select(d => d.Field< ...
- 阿里云centos7服务器nginx配置及常见问题解答
前言: 本文参考了jackyzm的博客:https://www.cnblogs.com/jackyzm/p/9600738.html,进行了内容的更新,并请注意这里适用的版本是centos7的版本.并 ...