使用 Unity 的 Vlc 插件从 Unity 中的采集卡获取媒体
Media from capture card in Unity with Vlc plugin for Unity
我正在尝试将摄像机信号从 blackmagic 采集卡传输到 Unity 的 Vlc 插件的媒体播放器中。
我做了什么:
我可以用vlc桌面应用程序获取采集设备,所以相机和采集卡工作正常。
我可以运行显示网络视频的vlc插件的示例场景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);
以及我到目前为止所取得的成就(但没有用)。我将 '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");
...
我正在尝试将摄像机信号从 blackmagic 采集卡传输到 Unity 的 Vlc 插件的媒体播放器中。
我做了什么:
我可以用vlc桌面应用程序获取采集设备,所以相机和采集卡工作正常。
我可以运行显示网络视频的vlc插件的示例场景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);
以及我到目前为止所取得的成就(但没有用)。我将 '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");
...