unity-game-engine - Unity 中采集卡的媒体,带有 Unity 的 Vlc 插件

标签 unity-game-engine libvlcsharp vlc-unity

我正在尝试将来自 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/

相关文章:

javascript - 在unity中调用函数会导致unity崩溃

c# - 着色器可以旋转形状以面向相机吗?

Android/Unity - 全屏模式、Android 的状态栏和 3D 纵横比

c# - 如何用libvlcsharp实现循环播放

c# - 如何选择视频文件并通过VideoLAN.LibVLC.UWP播放

libvlc - VLC libvlc_state_t 状态机?

c# - Unity - 如何以 45 度步长发射粒子?