全天候在YouTube上广播您的视频

最近,作为一种爱好,我正在拍摄一位熟悉的心理学家关于视频的讲座。我将这些镜头安装并发布在我的网站上。一个月前,我想到了在YouTube 24/7全天候组织这些讲座的广播。一种专门用于个人成长的主题“渠道”。

我知道如何进行正常广播。但是,如何使其成为视频文件的广播呢?她走路24/7,灵活,尽可能地自主,并且同时不依赖于我的家用计算机。这就是我必须找出的。



找到解决方案花了几天时间。我研究了很多论坛和各种手册,没有它们,我的广播根本不会出现。现在,当恶作剧成功时,我感到有必要分享我的决定。所以这篇文章出现了。

简而言之,最终的解决方案如下:VPS + ffmeg + bash脚本在剪辑中,我描述了所采取的步骤,并讨论了广播期间发现的“陷阱”。

第1步-广播从哪里来?


从一开始,就有必要确定将在哪里进行广播,在哪里进行广播。首先想到的是一台家用计算机。将视频收集到播放列表中,然后在任何视频播放器中播放。然后捕获屏幕图像并将其广播到YouTube。但是我几乎立即放弃了这个选择。要实现它,您需要保持家用计算机一直处于打开状态,这就是即使在晚上冷却器发出的噪音,也会增加能耗(每月增加100-150 kWh)。事实证明,在广播期间您将无法使用家用计算机。鼠标的任何移动都将在广播中可见。

然后我开始着眼于云服务。我一直在寻找一种现成的服务,您可以在其中上传视频,或者插入YouTube视频的链接,然后将它们打包成一个不间断的广播。但是我没有找到合适的东西。也许我看上去很糟。唯一适用于该功能的是restream.io,该服务有助于在多个平台上同时广播。他们似乎可以上传视频。但是创建此服务是出于完全不同的目的,他们希望广播只能持续几个小时。我认为,如果通过这项服务有可能组织一个全天候的广播,那么每月的费用将达到数十甚至数百美元。但是我仍然想免费或以最少的资金来组织广播。

很明显,您需要广播一台单独的设备甚至一台单独的计算机。正在思考Raspberri Pi之类的东西。那又怎样他没有冷却器。我将视频记录在USB闪存驱动器上,并插入了以太网电缆,然后将其放置在一个僻静的地方,即正在广播。选项。但是我既没有董事会本身,也没有经验,所以我也拒绝了这种选择。

最后,我遇到了一个讨论,他们讨论了如何创建自己的服务器广播。这不是我想要的,但我抓住了主要思想-您可以使用服务器!在讨论中,他们建议使用一堆VPS + Nginx + OBS。很明显,这群适合我。唯一让我感到困惑的是,我从未管理过服务器,而在我看来,我专用的服务器既混乱又昂贵。我决定找出以最低配置租用服务器要花多少钱,这让我感到惊喜。

图片

价格在白俄罗斯卢布,只是面包屑。为了理解,8白俄罗斯卢布约合3.5美元或240俄罗斯卢布。使用功能强大的24/7并能快速访问Internet的成熟计算机,使用一个月。出于某种原因,这一发现对我来说非常高兴,几天来,我像一个发现太空火箭的孩子一样非常高兴地走着:)

顺便说一下,我利用了Google应要求提供给我的第一个网站“ VPS出租”的好处。也许还有更多的预算解决方案,但是这个价格适合我,因此我没有进一步寻找。

创建服务器时,可以选择将在其下运行的操作系统。在列出的任何系统上,您都可以组织广播并根据自己的喜好和财务能力做出选择(他们要求为装有Windows的服务器收取额外费用)。我选择了CentOS。只是因为我曾经和她有一点经验。

图片

第2步-服务器设置


创建服务器后,您需要做的第一件事就是通过SSH连接到它。最初,我使用PuTTy,但是后来我开始使用在Google Chrome上运行的Secure Shell App。因此事实证明对我来说更方便。

然后,我更改了主机名,在服务器上设置了时间同步,更新了系统,弄乱了iptables ...并且做了很多事情,但这不是因为有必要。设置服务器对我来说很有趣,并且对我有用。事实证明,我很喜欢:)

但是需要执行以下步骤:

  1. 连接EPEL存储库。
  2. 提升FTP服务器(我选择了vsftp)。
  3. 安装ffmpeg。

我不会提供团队的详细信息,这是一个概念性的说明,目的是传达总体行动计划。如果您对任何步骤有任何困难,可以通过搜索引擎中的查询(例如“ CentOS connect EPEL”或“ CentOS FTP服务器安装”)迅速解决。在第一个链接中,您可以找到详细的分步说明。

因此,正如我先前所写,我需要一堆VPS + nginx + OBS。 VPS-准备就绪。但是,关于其余几点,这里开始出现问题。 OBS是一种广播程序,即Open Broadcaster Software。它仅适用于线程,即例如,它从网络摄像头获取图像并进行广播。或屏幕录像。或已经正在进行的广播重定向到另一个站点。而且我没有流,我只有制作流所需的一组视频文件。

他开始朝这个方向挖掘,遇到了ffmpeg。FFmpeg是一组免费的开放源代码库,可让您记录,转换和传输各种格式的数字音频和视频记录。

我非常惊讶ffmpeg可以做什么。如果需要,它将声音从视频中拉出。如果需要,它将切出视频片段而不进行转码。如果需要,它将从一种格式转换为另一种格式。还有更多。您可以为他指定文件为止,他会将其转换为流,然后将其传输到YouTube。一切,链条已组装。它只是为了细化细微差别。

第3步-广播设置


我们在YouTube上创建广播。在此阶段,我们只需要一个链接和一个翻译密钥。在下面的屏幕截图中,它们以红色突出显示。

图片

接下来,将视频文件上传到我们计划广播的服务器实际上,仅在此阶段需要FTP。如果您还有另一种方便的方式将文件上传到服务器,则可以省去FTP服务器。

我们流到YouTube。要开始广播,必须运行具有多个属性的ffmpeg。这是我得到的最短命令:

ffmpeg -re -i lecture1.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%_%

属性解密
-re – , .

-i – , . , , -. , /usr/media/lecture1.mp4.

-f – . , ffmpeg « » mp4 flv.

, YouTube .. , , , .

如果您正确执行了所有操作,则在运行此命令后,YouTube将看到传输的流。要开始广播,您只需单击YouTube本身中的“开始广播”按钮。

第4步-添加自治


恭喜你!现在您知道了如何从视频文件开始广播。但这还不足以实现全天候广播。重要的是,在第一个视频播放完之后,下一个视频将立即开始播放,并在显示所有视频后,重新开始播放。

我想出了以下选项:创建一个.sh文件,在其中为每个视频文件注册一个命令,最后指示重新启动同一脚本的命令。事实证明是一种递归:

 1... (   lecture1.mp4)
 2... (   lecture2.mp4)
 3... (   lecture3.mp4)
bash start.sh

是的,它奏效了。我对自己感到满意,开始了一次测试播音,然后入睡。

早晨,我等着一个不愉快的惊喜。原来,广播只进行了几分钟,当我关闭计算机时,广播几乎立即结束。调查显示,以这种方式启动的命令是在服务器上授权用户时执行的。断开连接后,我启动的命令的执行就会中断。为防止这种情况发生,bash只需在团队之前添加团队即可nohup。这将使正在运行的进程无论您是否在场都可以运行。

脚本的最终最低版本如下所示:

ffmpeg -re -i lecture1.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%_%
ffmpeg -re -i lecture2.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%_%
ffmpeg -re -i lecture3.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%_%
nohup bash start.sh $

其中start.sh是编写此脚本的文件。并且此文件应与视频文件位于同一目录中。

在末尾添加美元符号可让您在后台启动该过程,以便您可以继续使用控制台而不会中断广播。

从奖金中发现了以下面包:

  • 您可以手动切换文件的播放。为此,您需要“杀死”当前正在运行的ffmpeg进程。之后,将自动开始播放列表中的下一个文件。
  • 可以在不停止广播的情况下将新视频添加到广播中。只需将视频上传到服务器,在脚本中添加运行该文件的命令,然后保存即可。就是这样。在下一轮播放中,新文件将与旧文件一起广播。

第5步-配置ffmpeg


就此而言,原则上可以停止。但是我想让广播对观众更加友好。

假设某人去广播,开始观看,他喜欢它,并且想从一开始就观看此演讲,而广播不包括倒带。要从一开始就观看讲座,一个人将需要访问我的网站并获取感兴趣的讲座的记录。以及如何理解他感兴趣的讲座?该站点有16堂讲座,而且每周只有一次。我认为,即使是我拍摄并编辑了所有这些讲座的我,也无法从随机片段中确定哪个讲座。因此,有必要指定每个讲座。

在编辑程序中将字幕添加到源视频文件的选项不适合我。有必要确保使用原始文件。为了支持我要求的广播,请尽可能少地移动身体。

事实证明ffmpeg也可以帮助我。它具有特殊的属性-vf,可让您在视频上方添加文字。要将文本添加到视频,您需要在命令中添加以下片段:

-vf drawtext="fontfile=OpenSans.ttf:text=' 13\:  .   ?':fontsize=26:fontcolor=white:borderw=1:bordercolor=black:x=40:y=670"

参数解码
fontfile= – . . . .

text= – , , .

fontsize= – .

fontcolor= – .

borderw= – ( 1 ).

bordercolor= – .

x= y= – . 0;0 . , 1280720 .


看起来像这样:

图片

步骤6-确定广播质量


一切就绪,广播已准备就绪。 FFmpeg广播,播放文件,广播不需要我的在场。甚至每堂课都签名。看起来就是这样。

但是另一个细微差别浮出水面-我选择了最低服务器配置,但它并没有阻止广播。服务器配置:1核(例如2.2 GHz),1 GB RAM,25 GB SSD。有足够的RAM,但是处理器几乎完全加载了100%的负载(有时甚至达到102-103%的负载):这导致广播每隔几秒钟冻结一次。丑陋。

您可能只需要具有两个内核的更昂贵的配置,好处是使用云技术时,只需按几个按钮即可更改服务器配置。但是我想适应最小配置的功能。我开始研究ffmpeg文档,是的,那里还有设置可让您调整系统负载。

可以通过两种方式实现高图像质量:高处理器负载或大量外向流量。事实证明,处理器承担的负载越多,通道所需的带宽就越少。否则,您将无法负担沉重的处理器负载,但是您将需要一个带宽较大,流量较大的通道。如果处理器和传出通道/流量的大小都有限制,那么您将不得不降低图像质量,以便广播顺利进行。

我的服务器有一个10 Mbps的通道。此宽度是直的,有边距。但是有流量限制-每月1 TB。因此,为了满足流量限制,我的输出流不应超过每秒300 Kb,即输出流的比特率应不超过2.5 Mbps。顺便说一下,YouTube只建议以这样的比特率广播。

Ffmpeg使用不同的方法来调节系统上的负载。这里写得很好。我最终使用了两个属性:-crf-preset

恒定速率因子(CRF)-这是一个系数,您可以据此调整图像质量。CRF的范围是0到51,其中0是源文件的质量,51是可能的最差质量。建议使用从17到28的值,默认值为23.比率为17时,视频在视觉上与原始视频相同,但从技术上讲不是这样。该文档还指出,取决于指定的CRF,最终视频的大小呈指数变化,即 将系数增加6点将使输出视频的比特率翻倍。

如果使用CRF,则可以选择输出图像的“权重”,然后使用预设(-preset),可以确定要加载多少处理器。此属性的参数如下:

  • ultrafast
  • superfast
  • veryfast
  • faster
  • fast
  • medium - 默认值
  • slow
  • slower
  • veryslow

指定的参数“越快”,处理器的负载就越高。

我首先选择了对我的处理器来说基本上“艰难”的预设,然后使用CRF对其负载进行了更精细的调整。在我的情况下,预设出现了fast,对于crf,我将值定为24。

结论


就这样。开始广播的最后命令是:

ffmpeg -re -i lecture1.mp4 -vf drawtext="fontfile=OpenSans.ttf:text=' 1\:   ':fontsize=26:fontcolor=white:borderw=1:bordercolor=black:x=40:y=670" -c:v libx264 -preset fast -crf 24 -g 3 -f flv rtmp://a.rtmp.youtube.com/live2/%_%

这里只有两个未描述的时刻:

1)-c:v libx264-用于处理源文件的特定编解码器的指示。
2)-g 3-关键帧数量的明确指示。在这种情况下,表明每三帧应该是关键帧。标准值为5或8,但YouTube发誓,至少要问3。在这里

可以看到广播的质量是多少服务器负载如下: 根据监视数据,很明显,处理器负载在70%到95%之间变化,并且广播从未在一周内稳定在100%。因此,使用这些设置,处理器就足够了。



图片

图片



加载磁盘时,我可以说几乎没有加载磁盘,常规的HDD应该足以进行广播。

但是大量的外出流量困扰着我。事实证明,我的传出流范围为每秒450至650 KB。一个月的时间将约为1.8 TB。您可能必须购买流量或仍切换到双核配置,因为我不想降低图片质量。

***

因此,我要说的是,从头开始设置这样的广播大约需要1-2个小时。此外,大部分时间需要将视频上传到服务器。

作为一种营销工具,这种广播的启动并未获得回报。也许,如果您结束观看,以便YouTube的算法选择此广播并在建议中积极展示,那么可能会有所帮助。以我为例,连续播放16天,已观看了58次。

那没问题。广播和谐地适合我网站的主页。事实证明,这是一种机会,可以使您快速确定讲师和讲座本身。

一会儿。广播不要侵犯任何人的版权,这一点很重要,否则它将被阻止。我很高兴自己的广播。我特别选择了免费使用的音乐插入物,内容的作者坐在附近的计算机上,使用该内容并不反对我:)

但是,如果您在背景中某处的背景中播放广播,或者在编辑过程中使用了自己喜欢的曲目,或者从流行音乐视频,系列或电影中拍摄了视频,那么广播的风险就很大。同样重要的是,广播至少要承载最小的语义负载,否则可能会被视为垃圾邮件而被阻止。

***

这就是我的全部。我希望本手册对某人有帮助。好吧,如果您要添加一些内容-写,我会很乐意阅读本文的补充说明。

All Articles