使用 Unity 的 Vlc 插件从 Unity 中的采集卡获取媒体

Media from capture card in Unity with Vlc plugin for Unity

我正在尝试将摄像机信号从 blackmagic 采集卡传输到 Unity 的 Vlc 插件的媒体播放器中。

我做了什么:

原来的代码行: _mediaPlayer.Media = new Media(_libVLC, "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4", FromType.FromLocation);

以及我到目前为止所取得的成就(但没有用)。我将 'FromLocation' 更改为 'FromPath',并将 URL 替换为带有选项的采集卡的 mrl,感谢 vlc 桌面应用程序:

_mediaPlayer.Media = new Media(_libVLC, "dshow://  :dshow-vdev=Blackmagic WDM Capture :dshow-adev=Entrée ligne (Blackmagic DeckLink Mini Recorder 4K Audio)  :dshow-aspect-ratio=16\:9 :dshow-chroma= :dshow-fps=50 :no-dshow-config :no-dshow-tuner :dshow-tuner-channel=0 :dshow-tuner-frequency=0 :dshow-tuner-country=0 :dshow-tuner-standard=0 :dshow-tuner-input=0 :dshow-video-input=-1 :dshow-video-output=-1 :dshow-audio-input=-1 :dshow-audio-output=-1 :dshow-amtuner-mode=1 :dshow-audio-channels=0 :dshow-audio-samplerate=0 :dshow-audio-bitspersample=0 :live-caching=300 ", FromType.FromPath);

我想问问你是否有人知道在该函数中使用 directshow 的正确语法,或者将我重定向到类似的主题(虽然我没能找到,但如果我错过了,我深表歉意) 或者如果我弄错了。

非常感谢您抽出时间,这是我第一次使用此插件和 LibVLCSharp,所以请耐心等待 :D

感谢@mfkl 的帮助。

这是有效的方法:

_mediaPlayer.Media = new Media(_libVLC, "dshow:// ", FromType.FromLocation );

并像这样添加所有选项: _mediaPlayer.Media.AddOption(":dshow-vdev='Blackmagic WDM Capture'"); _mediaPlayer.Media.AddOption(":dshow-fps=50"); ...