2

我正在尝试将来自 blackmagic 采集卡的摄像头馈送到 Unity 的 Vlc 插件的媒体播放器中。

我做了什么 :

  • 我可以使用 vlc 桌面应用程序获取捕获设备,因此相机和捕获卡工作正常。

  • 我可以运行 vlc 插件的示例场景,它显示来自 web url 的视频,它工作正常

  • 我搜索了 LIBVLCSharp 试图了解它是如何工作的,https: //code.videolan.org/videolan/LibVLCSharp/-/blob/master/src/LibVLCSharp/Media.cs
  • 我正在尝试修改 UseRenderingPlugin.cs,这是一个在 Unity 场景中的纹理上播放视频的脚本,尤其是选择要播放的媒体的行:

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

到目前为止我所取得的成就(但不起作用)。由于 vlc 桌面应用程序,我将“FromLocation”更改为“FromPath”,并将带有 mrl 的 URL 替换为带有选项的采集卡:

_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

4

1 回答 1

1

谢谢@mfkl 的帮助。

这是有效的:

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

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

于 2020-05-04T10:07:53.103 回答