sipsorcery-org / SIPSorceryMedia.Windows

BSD 3-Clause "New" or "Revised" License
10 stars 22 forks source link

The VM cannot run in windows #17

Closed Hu-Said closed 8 months ago

Hu-Said commented 8 months ago

image image

Hu-Said commented 8 months ago

I tried versions 6.0.3 to 6.0.5 and they didn't work

sipsorcery commented 8 months ago

Are you doing a Debug build? Those libvpx libraries are debug builds and won't work for a Release build.

Other than that it's probably some permutation of "dll hell". The vpxmd.dll library I built depends on certain version of the MS C runtime and other OS libraries. Normally it should work on later versions of Windows but when they don't it's tricky to track down. If your using a VM it could be the dll is relying on some libraries from the Windows Media Foundation, check that it's installed.

Other than that you could try using VP8.Net which is an attempt at porting libvpx to C# to get around the need for native libraries and all the probelms that causes. VP8.Net definitely won't perform anywhere near as well as the native version and is likely to be very buggy but it can still be useful. An example of how to use it can be found here.

Hu-Said commented 8 months ago

Are you doing a Debug build? Those libvpx libraries are debug builds and won't work for a Release build.

Other than that it's probably some permutation of "dll hell". The vpxmd.dll library I built depends on certain version of the MS C runtime and other OS libraries. Normally it should work on later versions of Windows but when they don't it's tricky to track down. If your using a VM it could be the dll is relying on some libraries from the Windows Media Foundation, check that it's installed.

Other than that you could try using VP8.Net which is an attempt at porting libvpx to C# to get around the need for native libraries and all the probelms that causes. VP8.Net definitely won't perform anywhere near as well as the native version and is likely to be very buggy but it can still be useful. An example of how to use it can be found here.

Yes, I am trying to use the current library and Encoders library to perform WebRTC audio and video communication with Android applications. The current results are:

  1. Mosaics are more likely to occur when receiving videos
  2. Sending videos is lagging
  3. Windows version requirements are too high
  4. Too much CPU usage
sipsorcery commented 8 months ago

Yep, all to be expected. VP8.Net is a proof of concept attempt.

Nobody expects to pay for video codecs so unless a big tech company somewhere decides to implement a .Net based one we'll be stuck having to interop with native libraries. Far from ideal but well beyond my remit to solve. I was interested to see if it could be done at all and went as far as answering that question. I don't expect to go any further.