我正在尝试将来自 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);
以及我到目前为止所取得的成就(但不起作用)。我将“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");
...
关于unity-game-engine - Unity 中采集卡的媒体,带有 Unity 的 Vlc 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61524292/