参考链接: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直播的更多相关文章

  1. 【教程】OBS直播推流教程(Windows & macOS)

    OBS Open Broadcaster Software | OBS (obsproject.com) Windows直播推流教程 Windows下OBS直播推流非常简单,本教程将会介绍,具体步骤如 ...

  2. HTML5 直播协议之 WebSocket 和 MSE

    当前为了满足比较火热的移动 Web 端直播需求, 一系列的 HTML5 直播技术迅速的发展了起来. 常见的可用于 HTML5 的直播技术有 HLS, WebSocket 与 WebRTC. 今天我要向 ...

  3. 搭建HTTP Live Streaming直播系统

    最近,需要将苹果的HTTP Live Streaming系统搭建起来.完全没有头绪,故第一步就是学习. 一.学习资料 官网资料 1. http://developer.apple.com/resour ...

  4. 直播视频插件--sewise player

    直播视频插件 -- sewise player 2017-1-9 因为公司要开发一个关于购车直播的新项目,需要在页面引入直播视频,项目组之前都没有做过关于直播类型的项目,所以可以说是真的从各种资源中筛 ...

  5. 零基础如何一步一步开始搭建高性能直播平台?现以GitChat·架构来进行说明

    前言 现在直播已经成为移动互联网时代一个新的重要流量入口,从YY.斗鱼到花椒直播,直播已经成为人们分享交流的新方式,应用场景众多,主要分为: 金融类直播:金融直播可应用于实时解盘,在线专家讲座,专家在 ...

  6. 【阿里聚安全·安全周刊】阿里双11技术十二讲直播预约|AWS S3配置错误曝光NSA陆军机密文件

    关键词:阿里双11技术十二讲直播丨雪人计划丨亚马逊AWS S3配置错误丨2018威胁预测丨MacOS漏洞丨智能风控平台MTEE3丨黑客窃取<权利的游戏>剧本|Android 8.1   本 ...

  7. 直播-srs起步

    srs简介 https://github.com/ossrs/srs/wiki/v2_CN_Home     原料 CentOS Linux release 7.2.1511 (Core) ffmpe ...

  8. 极速搭建RTMP直播流服务器+webapp (vue) 简单实现直播效果

    在尝试使用webRTC实现webapp直播失败后,转移思路开始另外寻找可行的解决方案.在网页上尝试使用webRTC实现视频的直播与看直播,在谷歌浏览器以及safari浏览器上测试是可行的.但是基于基座 ...

  9. 基于obs+nginx-rtmp-module搭建自己直播的系统

    前言 一句唠叨,工欲善其事,必先利其器,在程序员的工作里,搭建各种环境往往花费过多不必要的时间,这里建议搭建服务端环境时,尽量避开win.macos这种系统,个人比较推崇centos. 操作 下面以c ...

随机推荐

  1. github Pull Request合入全流程介绍

    图解全流程 详细步骤 1. fork仓库 2. clone fork仓库到本地 3. 关联upstream原仓库 在fork本地仓库输入下面命令进行关联: git remote add upstrea ...

  2. json自定制

    import json from datetime import date from datetime import datetime class JsonCustomEncoder(json.JSO ...

  3. 在linux上安装jdk(转载)

    软件环境: 虚拟机:VMware Workstation 10 操作系统:Ubuntu-12.04-desktop-amd64 JAVA版本:jdk-7u55-linux-x64 软件下载地址: JD ...

  4. DP没入门就入土

    写在前面 记录最近刷的DP题 以及 打死都不可能想到状态设计DP系列 汇总 洛谷 P6082 [JSOI2015]salesman 树形\(\texttt{DP}\) + 优先队列 比较容易看出来这是 ...

  5. centos彻底删除文件夹创建文件

    centos彻底删除文件夹.文件命令(centos 新建.删除.移动.复制等命令: 1.新建文件夹 mkdir 文件名 新建一个名为test的文件夹在home下 view source1 mkdir ...

  6. day52 html进阶

    目录 一.分组与嵌套 二.伪类选择器 三.伪元素选择器 四.选择器优先级 五.css属性相关 1 字体属性 2 文字属性 3 背景图片 4 边框 5 display属性 6 盒子模型 7 浮动 一.分 ...

  7. Scala 基础(十三):Scala 模式匹配(一)

    1 match 应用案例 Scala的模式匹配 案例代码完整: package com.atguigu.base object MatchDemo { def main(args: Array[Str ...

  8. Scala 基础(三):Scala语言快速开发入门

    1.Scala执行流程分析 2.Scala程序开发注意事项(重点) Scala源文件以 “.scala" 为扩展名. Scala程序的执行入口是main()函数. Scala语言严格区分大小 ...

  9. python 并发专题(十三):asyncio (二) 协程中的多任务

    . 本文目录# 协程中的并发 协程中的嵌套 协程中的状态 gather与wait . 协程中的并发# 协程的并发,和线程一样.举个例子来说,就好像 一个人同时吃三个馒头,咬了第一个馒头一口,就得等这口 ...

  10. hihoCoder 1052 基因工程 最详细的解题报告

    题目来源:基因工程 解题思路:假设基因序列长度为N,则需要计算基因序列前K个和后K个相同所需要的最少改变次数sum. 假设基因序列为 ATACGTCT (即M=8),K=6:interval=M-K= ...