【问题标题】:Use libvlc to stream mp3 to network使用 libvlc 将 mp3 流式传输到网络
【发布时间】:2011-06-18 06:01:47
【问题描述】:

如何使用 libvlc 获取 MP3 文件(或任何音频文件)并将其流式传输到网络,以便我可以连接 iTunes 或其他东西并像网络广播一样收听?

C API 示例是首选,但任何语言都可以。

【问题讨论】:

    标签: streaming vlc libvlc


    【解决方案1】:

    libvlc_vlm_add_broadcast 接受 sout 字符串,所以这似乎可以解决问题:

    #include <vlc/libvlc.h>
    #include <unistd.h>
    #include <stdbool.h>
    #include <stddef.h>
    
    int main(int argc, char **argv) {
        libvlc_instance_t *vlc;
        const char *url;
        const char *sout = "#transcode{acodec=mp3,ab=128,channels=2," \
                           "samplerate=44100}:http{dst=:8090/go.mp3}";
        const char *media_name = "Foo";
    
        if (argc != 2) {
            return 1;
        }
        url = argv[1];
    
        vlc = libvlc_new(0, NULL);
        libvlc_vlm_add_broadcast(vlc, media_name, url, sout, 0, NULL, true, false);
        libvlc_vlm_play_media(vlc, media_name);
    
        sleep(60); /* Let it play for a minute */
    
        libvlc_vlm_stop_media(vlc, media_name);
        libvlc_vlm_release(vlc);
        return 0;
    }
    

    【讨论】:

    • 如何在一个广播中播放多个媒体循环播放?
    • url 变量是干什么用的?因为那里什么都没有
    【解决方案2】:

    文档对此很清楚,您创建了一个媒体(我记得是 vlc_media_new),将 libvlc 的一个实例与它相关联。然后从媒体(vlc_player_from_media 或类似的东西)创建一个播放器,然后开始播放。

    对于流媒体部分,我无法为您提供帮助,因为我目前也在努力解决这个问题,但我会在知道如何完成工作后尽快帮助您:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      相关资源
      最近更新 更多