0) Silverlight is highly platform dependent. I would not consider using it.
1) I would take a step forward to html5 video support, with fallback to Flash. Check this little one:
http://www.videojs.com/[
^]
2) You can convert video on server side with ffmpeg for example. Use a
simple process starter[
^] or this wrapper for example:
http://www.ffmpeg-csharp.com/[
^]. For more details about video conversion with ffmpeg, consult it's documentation and the plenty of community additions on the web.