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.

June 2015, at long last here's another update: dsj 0_8_8 released. [ download ]

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:

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

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.

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

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.