node.js - 使用 nodejs 将直播流数据包发送到 youtube?

标签 node.js youtube youtube-api google-api-nodejs-client nodejs-stream

所以我正在尝试创建一个能够将数据包作为实时流发送到 Youtube 的应用程序。所以基本上我将我的 url 输入程序 (rtmp://a.rtmp.youtube.com/live2),然后它会开始流式传输并发送 youtube 图像的数据包。我到处都在寻找,但不确定 nodejs 是否可行。所以基本上,我将能够使用我的 nodejs 应用程序全天候 24/7 直播到 Youtube。如有任何问题,请随时发表评论。

最佳答案

我不知道图像。但是,如果您有视频,则可以使用 ffmpeg 将其流式传输到 youtube。

方法:1

如果没有 nodejs,它可以像这样用 cli 来完成。打开存储视频文件的 cli。并运行以下命令:

ffmpeg -re -i vieo_you_wanna_stream.mp4 -c copy -f flv rtmp://a.rtmp.youtube.com/live2/SECRET_STREAM_KEY

方法:2

如果你真的需要从 nodejs 服务器流式传输,那么你可以执行以下操作: 使用以下代码行创建一个名为 runCommand.js 的文件:

var spawn = require('child_process').spawn;
module.exports = (cmd, args, onData, onFinish) => {
    var proc = spawn(cmd, args.split(' '));
    proc.stdout.on('data', onData);
    proc.stderr.setEncoding("utf8")
    proc.stderr.on('data', err => console.log(err) );
    proc.on('close', onFinish);
}

现在在您的 app.js 文件中放入这些代码行:

const runCommand = require('./runCommand')

runCommand(
  'ffmpeg',
  '-re -i vieo_you_wanna_stream.mp4 -c copy -f flv rtmp://a.rtmp.youtube.com/live2/SECRET_STREAM_KEY',
  (data) => console.log(data),
  () => console.log('finished')
)

现在从 cli 运行

node app.js

如果您的视频路径、ffmpeg 和您的 youtube rtmp 链接正确,它将立即开始流。

注意事项:

如果您真的只想使用这种方法将图像流式传输到 YouTube,那么您可以使用任何类型的转换器将图像转换为视频。并使用此方法将视频流式传输到 youtube。

关于node.js - 使用 nodejs 将直播流数据包发送到 youtube?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63443781/

相关文章:

angularjs - 将 zip 文件从 Node api 流式传输到 Angular

cordova - 阻止来源为 "https://www.youtube.com"的框架访问来源为 "file://"的框架

youtube-api - 如何知道 YouTube 缩略图是否是自定义缩略图

javascript - 暂停视频后触发点击文件上传

键中带有点的 JavaScript 字典

node.js - Nodejs - 异步/等待我的 Controller

node.js - 如何一个接一个地运行相同的 promise NodeJs

youtube - googleads.g.doubleclick.net/pagead/id中止

javascript - Youtube 嵌入 rel=0 在 iPhone 上不起作用

Youtube 数据 API key 停止工作。获取 accessNotConfigured 错误