首页 > 解决方案 > 如何从 C# 运行 VLC 命令

问题描述

我想知道是否有办法使用 VlcSharp 使用 C# 程序中的 vlc 参数(也可以接受任何其他用于 vlc 库的 API)。我需要更改视频的编解码器,这就是为什么我必须这样做:(--no-repeat --no-loop -vv "D:\688497.flv"--sout='#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:standard{access=file,mux=ts,dst="D:\asd.mpg"}'我在这里找到了这个例子)。
据我所知,可以像这样在 LibVLCSharp.Shared.Media 构造函数中添加参数:

            libVLC = new LibVLC();
            mediaPlayer = new MediaPlayer(libVLC);
            using (var media = new LibVLCSharp.Shared.Media(libVLC, new Uri(CameraViewModel.RtspAddress),
                ":sout=#file{dst=" + destination + "}",
                ":sout-keep"))
            {
                this.mediaPlayer.Play(media);
            }

但是当我从上面的提示中添加 argumetns 时,什么也没有发生(至少没有创建必须是转码输出的目标文件),所以我正在寻找一种从 c# 应用程序运行 vlc 命令的方法.

标签: c#vlctranscodinglibvlcsharp

解决方案


是的,这是可能的。LibVLC您可以通过构造函数或作为选项将 CLI 参数提供给 LibVLC Media。例子:

new LibVLC("--verbose=2"); 

请参阅此处的文档https://code.videolan.org/videolan/LibVLCSharp/-/blob/3.x/docs/how_do_I_do_X.md#how-do-i-use-libvlcs-advanced-options


推荐阅读