如何从 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"}'(我找到了此示例 here)。
据我所知,可以像这样在 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 时什么也没有发生(至少没有创建目标文件,它必须是转码的输出),所以我正在寻找一种运行 vlc 命令的方法来自 c# 应用程序。

解决方法

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

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