【问题标题】:Stream youtube sound via Ruby?通过 Ruby 流式传输 youtube 声音?
【发布时间】:2017-11-11 21:41:19
【问题描述】:

我正在尝试使用 Ruby 和 TK 构建一个音乐播放器/播放列表制作器。我还没有想出一种方法来流式传输 youtube 视频(实际上只有声音)我不想下载然后播放这首歌,因为那会花费太长时间。如果没有某种嵌入式播放器,我找不到任何关于直接流式传输的信息。

有谁知道我怎样才能最好地解决这个问题?

【问题讨论】:

    标签: ruby youtube streaming


    【解决方案1】:

    似乎是一个有趣的项目,所以我搜索了一下。来自这个 reddit 帖子:Tip: Use mpv + youtube-dl as streaming audio player 有这段代码使用mpv 程序来流式传输音频:

    mpv "https://www.youtube.com/watch?v=sVK5Z6wnMxg" --no-video
    

    该 URL 是当前正在进行的 Bonaroo 音乐节的直播。我试过了,它确实启动了音频。在幕后,这是使用youtube-dl,在手册页中有此注释:

    如何直接流式传输到媒体播放器?

    您首先需要告诉 youtube-dl 进行流式传输 使用 -o - 将媒体输出到标准输出,并告诉你- 从标准输入读取的 dia 播放器(它必须能够 用于流式传输),然后通过管道连接到 后者。例如,流式传输到 vlc (http://www.videolan.org/) 可以通过以下方式实现:

    youtube-dl -o - "http://www.youtube.com/watch?v=BaW_jenozKcj" | vlc -

    因此,如果您想将流传递到不同的媒体播放器,那将是一个不错的起点。

    就 Ruby 而言;好吧,这本身并不是真正的 Ruby 解决方案,您只需使用反引号、systemProcess.spawnfork 等从 Ruby 调用 shell 程序。

    【讨论】:

    • 还有Open3,可以让您更直接地控制系统命令的输出。
    • 哦,太好了,我也做了一些进一步的挖掘,找到了用于控制 MPV 的 this ruby​​ 库。它缺少一些文档,但我想我可以使用它,或者像你说的那样,传递流。将您的解决方案标记为答案。谢谢!
    猜你喜欢
    • 2010-11-02
    • 2015-04-19
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多