我如何使用libvlc从我的C#应用 流式传输视频?

问题描述 投票:2回答:1

我正在尝试使用C#编写客户端服务器视频流应用程序,并且我正在使用libvlc。客户端工作正常,但是我不确定如何做服务器。它就像客户端一样,具有对媒体的修改AddOptions方法吗?然后播放媒体?

更新:我已经尝试过:

    private void button1_Click(object sender, EventArgs e)
    {
        //MyLibVlc vlc = new MyLibVlc();
        string[] args = new string[] { "-I", "dummy", "--ignore-config","" };
        instance = new VlcInstance(args);
        //:sout=#rtp{dst=79.114.124.180,port=5004,mux=ts,ttl=1} :sout-keep
        player = null;
        string source = "D:\\CM.mp4" ;
        VlcMedia media = new VlcMedia(instance, source);
        string[] options=new string[]{":sout=#rtp{dst=79.114.124.180,port=5004,mux=ts,ttl=1} :sout-keep"};
        media.AddOptions(options);
        if (player == null)
        {
            player = new VlcMediaPlayer(media);
        }
        else
        {
            player.Media = media;
        }
        player.Play();

    }

而且我已经查看了日志文件。无法打开文件...我以错误的方式传递了arg,或者缺少某些内容。

.net video streaming libvlc
1个回答
0
投票

我知道这是一个很久以前的问题,但它仍然有1000多个视图,因此也许有人在经过数小时的观察和测试后会像我一样需要它。

“就像客户端一样,修改了媒体的AddOptions方法?然后播放媒体?”

是。您只需要修改媒体AddOptions。

“,我已经查看了日志文件。无法打开文件...我通过了arg格式错误,或缺少某些内容。“

这是我成功测试过的示例选项。请注意,对于您的情况,也许有些选择可能很丰富。

media.AddOption(":sout=#transcode{vcodec=h264,vb=0,scale=0,acodec=mp4a,ab=128,channels=2,samplerate=44100}:rtp{mux=ts,sdp=rtsp://192.168.1.123:554/stream.sdp}");

media.AddOption(":sout-keep");

在创建媒体时,我还需要提供确切的FromType参数。

var media = new Media(libVlc, "C:\\foo.avi", FromType.FromPath);

如果要从其他来源(例如另一个RTSP来源)进行流式传输,则将是:

var media = new Media(libVlc, "rtsp://192.168.1.234:555/live/0/MAIN", FromType.FromLocation);
© www.soinside.com 2019 - 2024. All rights reserved.