2014-02-20 52 views
0

我有一個C#應用程序。獲取參數傳遞給vlc

我使用羅馬金茲伯格創立了卓越的VLC包裝,我發現在CodeProject nvlc

我有一個RTSP相機連接到我的本地網絡。它位於192.168.100.100的靜態IP地址上。

如果我使用的32位版本的VLC項目的DLL它的作品。

如果我使用64位版本的VLC項目的DLL,它不起作用。但是,如果我實際上只是使用VLC 64位應用程序,而不通過我的C#應用​​程序,它的工作原理。

所以,我認爲它必須下到我傳遞給libvlc.dll的參數。

我曾嘗試添加和刪除所有參數,我知道,與32位版本的成功工作,但我得到的是黑色幀/圖像。

我回到了VLC應用程序,看看我是否可以在任何地方找到使用的參數。

我似乎無法找到任何東西。

我曾嘗試查看生成的日誌文件,但從未創建日誌文件。我已經使用了最多4個字節,但仍然沒有創建日誌文件。

我甚至嘗試過使用Fiddler來查看我是否可以「捕獲」參數,但它只是查看HTTP/HTTPS流。

這是我與32位的作品使用的參數:

 string[] args = new string[] 
     { 
      "-I", 
      "dummy", 
      "--ignore-config", 
      "--no-osd", 
      "--disable-screensaver", 
      "--ffmpeg-hw", 
      "--live-caching=100 ", 
      "--rtsp-caching=100", 
      "--realrtsp-caching=100", 
      "--network-caching=0", 

      "--skip-frames", 
      "--drop-late-frames", 
      "--plugin-path=./plugins" 
     }; 

它看起來像我可能要回去的32位版本。

除非任何人可以向嘗試在應用程序中使用VLC的可憐的Windows開發人員推薦任何內容嗎?

+1

你如何建立你的C#應用​​程序?去檢查***「項目屬性」 - >選項卡「建設」***,並告訴我們你的目標是什麼架構 – RononDex

+0

嗨,會做。 1秒:) –

+0

它被設置爲'任何CPU'。我只是嘗試在'x64'下運行它,但仍然存在相同的問題 –

回答

0

我有同樣的問題,這是我的解決方案:

media.AddOptions(new[] { ":network-caching=300" }); 

我認爲重要的是,它需要「:」在選項的開始。

這是我用來打開流全碼:

IMediaPlayerFactory factory = new MediaPlayerFactory(); 
var media = factory.CreateMedia<IMedia>(string.Format(@"rtsp://{0}:5658", hostTxt.Text)); 
media.AddOptions(new[] { string.Format(":network-caching={0}", networkCaching) }); 
VideoStreamingPlayer = factory.CreatePlayer<IVideoPlayer>(); 
VideoStreamingPlayer.WindowHandle = video.Handle; 
VideoStreamingPlayer.Open(media); 
VideoStreamingPlayer.Events.MediaEnded += VideoStreamingPlayer_MediaEnded; 
VideoStreamingPlayer.Play();