我们如何在 Twitch 和 YouTube 上全天候 24/7 直播
如果你还没有看到,我们在YouTube和Twitch上全天候24小时直播我们的圣经课程。在本指南中,我将向你展示我们是如何在技术上实现这一点的。
基本答案
我们在Digital Ocean 云服务器上使用 FFmpeg 播放列表。如果这不是您想使用的,您现在可以退出。
本指南将非常技术性,具体说明我是如何用我们的材料完成此工作的。有些内容可能不适用于您的设置,但希望能为您提供一些方向。
1. 设置 Droplet
我们使用 Digital Ocean 来创建我们的远程服务器,但您也可以在任何其他提供命令行功能以运行脚本和安装应用程序,并且包含足够每月数据传输以支持全天候流媒体的平台上进行相同的设置。
规格如下:
我能够使用最低级别的Droplet,配备512MB内存和10GB硬盘,并且我已经为视频挂载了一个卷存储驱动器。
2. 上传您的视频
在您的挂载驱动器上,或者如果您使用的是通用托管平台,请创建一个videos文件夹,并按照您希望的方式整理视频。以下是我们的整理方式:

这一切都基于标识符和顺序。我们的系列有一个标识符(christianity-for-beginners),然后每个课程都有一个带有项目顺序的标识符。
这是我们的数据在数据库中的存储方式,并将在生成播放列表和跟踪我们在视频顺序中的位置时使用。
3. 添加 FFmpeg
打开命令行,检查是否已安装 ffmpeg:
ffmpeg -version
如果没有,请运行以下代码以设置 Ubuntu:
sudo apt update
sudo apt 安装 ffmpeg
您可以再次运行版本检查以确保它存在。
4. 制作播放列表
FFmpeg 可以根据播放列表运行一系列视频。让我们创建一个。我将文件命名为我们系统中的 assets.txt,并位于根文件夹中。它非常简单,看起来像这样:

我们完整的播放列表有超过370个视频!查看详情。
在我们后面的 FFmpeg 函数中,我们将告诉 FFmpeg 循环播放,因此一旦播放到最后一个视频,它将返回到开头。所以无论你的脚本因何原因崩溃,它总是会回到列表的开头。
这是一个额外内容,但为了防止它总是回到起点,我从我们的网站动态生成此播放列表,因此如果它崩溃,我就知道我们在播放列表中的位置,然后动态重置播放列表的顺序。以下是该过程的简要概述。
我将项目ID及其开始和结束时间(基于视频长度)加载到数据库中。我预加载这些数据几个月,然后再回来进行更新。你也可以让另一个脚本为你执行此操作。

在重新启动流之前,我会 ping 我们的网站并创建assets.txt,按照新的更新顺序,并将其下载到远程 Droplet,您将在下一步看到。
5. 创建脚本
我们现在将制作一个从Cronjob运行的bash脚本。以下是我们脚本的图示。

以文本文件形式查看剧本:rerun.txt
请确保将 {YOUR_STREAM_KEY} 更新为您的实际密钥。您也可以将 Twitch 端点更新为更接近您服务器位置的地址。查看 Twitch 端点。
请查看上方的文本格式脚本文件,以了解我所采用的设置。选项非常多,FFmpeg 文档相当不错。你可以像上面 Twitch 脚本结尾那样记录错误,以查看出了什么问题。
6. 运行脚本
要运行脚本,我们将设置一个定时任务来处理此事。如果您不熟悉,可以参考这篇关于定时任务的有用指南。
我选择使用以下 Cronjob 每分钟运行脚本,因为 YouTube 的自动结束功能似乎在一分钟内没有数据发送给他们时会结束直播,所以我发现最好经常运行此脚本。
* * * * * ./rerun.sh
结束
我没有涵盖整个过程的每个方面,只介绍了一些关键的技术部分。您仍然需要了解如何在任一平台上创建您的直播设置,但这应该是一个良好的起点。
在X上联系我,提出您的问题或疑问,我将根据分享的情况更新本指南。



