Video Playback RRS feed

  • Question

  • Hi,

    I am developing a game application that has to run on WinXP and Vista. For UI/Graphics i use WPF since for 2D graphics its better than XNA ( with its ridicolous Shader requirements for doing basic sprite rendering ) and WPF also allows UI designer to work comfortably with good tools, without me having to write a custom GUI definition language/tools for them.

    Anyhow, during gameplay we have to display licensed video content, which must not be easily extractable out of  our distribution media.

    The problem is that i can't find a good solution to this problem using NET3.0/WPF without going the Unmanaged route ( MC ++ ).

    Basically there are several options that come to my mind:

    * Use Windows Media Playback with DRM:
       Pros: Windows Media Video is supported via  MediaPlayer/VideoDrawing/MediaElement

       Cons: Licensing costs to MS for using their DRM System and Codecs
                  Is DRM Supported via MediaPlayer of WPF ?
                  How does one specify the DRM license without popping up the DRM dialog of Windows Media Player.

    * Use DirectShow:
        Pros: Can use any codec i want, especially patent free ones like Theora.

        Cons: No integration with WPF. So blitting would have to  be written by me.
                   No DRM per se, would have to implement a "poor mans DRM" myself. 

    * Use AVIFILE:
          In princple the same pros/cons as DirectShow, just an even older API.

    * Integrate a Codec directly into the application:
       Pros: No Codec depdendencies
                 Better control over playback.
        Cons: DRM has to be written by me,

                    Timing has to be written by me.
                    Blitting to WPF would also need to be written by me.
                    Very limited codec choice, as only Theora has a C# implementation, And no comercial vendor ships its codec as libs, just as prepacked codec dlls which need DirectShow etc.. 
                     Of course i could wrap XVID via MC++ and pay the MPEG4 Licensing fees. 

    Perhaps the ideal solution would be to allow the use of any Codec, allow to reading from a System.IO.Stream ( to have total control over DRM,packaging and so forth ) and blit to WPF...

    Anyone has some suggestions about the topic or even some pointers how to implement an "Ideal" Solution..



    Sunday, December 17, 2006 2:35 PM

All replies

  • Hi,
    You can play in MediaElement any codec that your local WMP can play, all you have to do is have the codec installed. As for DRM i don't know.


    Thursday, December 21, 2006 10:15 AM