dsj - DirectShow <> Java wrapper

humatic - htools
htools RSS feed

Need indepth media support for your desktop or online java application? Play modern video formats as well as edit and encode them? Access all of a system's capture devices? Control a firewire DV or HDV camera? Play DVDs, integrate Digital TV? Do so on 64 bit systems? Then maybe this can help you. dsj is a java abstraction layer around Microsoft's DirectShow API, Windows' long time core media system. Today Direct Show (and maybe Java alike) is legacy API, but it's sure to stick around for quite some time. dsj has grown from artistic work and is in use in many real world applications today.
 
Quick links
download
javadocs
samplecode


Feb 7 2013 dsj 0_8_7 released. [ download ] [ release notes ]

Unlike the C# and Delphi wrappers to DirectShow, dsj does not attempt to wrap the original api 1:1. Instead it presents a much easier to use approach of abstracting common media tasks into a straightforward api of its own. In theory, no specific knowledge of the complex and massive native DirectShow api is needed to use dsj. However, those familiar with or interested in DirectShow programming will still find low-level functionality, that closely matches some of the most used methods in Microsoft's C++ interface.


dsj's java api is pretty much easy to use and allows to implement most everyday media tasks with just a handful of lines of code. You will be surprised how small an effort things can be. The programming interface has clear inheritance structures and avoids the use of interfaces whenever possible. It is built around the core DSFiltergraph class, that represents a flow graph of DirectShow filters and has dedicated subclasses for the different areas of interest:

DSFiltergraph
   -> DSMovie - for movie and stream playback, movie editing and media encoding
   -> DSCapture - for accessing a system's audio and video capture devices
   -> DSDVCam - to work with standard DV Camcorders
   -> DSDvd- play and interact with DVDs
   -> DSGraph - baseclass for lower level things
   -> DSStreamBufferGraph - for timeshifted recording of TV and capture data
   -> DSBDAGraph - digital TV, using devices that follow the BDA standard
   -> DSHDVTape - for mpeg HDV cameras and D-Vhs decks



All classes allow for sample level access and can use both light- or heavyweight renderers, including maximum performance native DirectShow screen or hardware renderers.

dsj extensions:
jdl is a small extension providing access to proprietary interfaces in the DirectShow api available with Blackmagic Design's Decklink boards. These cards are frequently used with dsj and jdl attempts to deliver on a number of requests we had to deepen the integration. [ more ]

vpj allows for detailed configuration of the VP8 (TM) de- and encoder DirectShow filters from the WebM project.[ download ] [ samplecode ] [ javadoc ]


dsj_applethelper is a little helper library made to simplify deployment of dsj in standard java applets. This is from the days where having a java enabled browser was not outright suicidal. But who knows, it may still be useful to some today.. [ more ]

Sitting on top of a plugable architecture, dsj profits from the wide variety of available third-party DirectShow filters. Depending on what filters are installed on a particular system, dsj will enable you to play (and in a lot of cases also encode) a vast number of media formats and will let you work with all the hardware that native applications access through DirectShow.






Use terms
Be aware that dsj is not free, open source software. The library is free for use in non-commercial projects, but if it helps you make money, i.e. if it is used in commercial applications or in scenarios where you are otherwise paid for what you are doing, you must enter a license agreement with us. We do not ask millions but dsj is not a gift all in all.

All binaries in the download are fully functional. Prior to registration some more advanced functions are however limited to a 1 minute span
Unlock codes for non-commercial use are available online: Click [ here ] and you will be ready to go in a minute.

For commercial use, please review the dsj license pdf in the download and [ contact ] C.Graupner directly.

The download contains the dsj.dll and jar files, javadocs and demo applications incl. source code. To get it running you will also need DirectX 9 and Windows Media Player 9 or greater (standard since XP SP1). Installation instructions, general notes, DirectShow resource links etc. can be found in the readme file



download dsj

browse javadocs




home - htools - dsj DirectShow, Windows, WindowsMedia, wmv & asf are registered trademarks of Microsoft Corp.
Java is a registered trademark of Oracle and/or its affiliates.
VP8 is a registered trademark of Google Inc.
Decklink is a registered trademark of Blackmagic Design Pty.
Other names may be trademarks of their respective owners.