dsj - DirectShow <> Java wrapper        
  

humatic - htools - dsj

Resources:  codecs - xgr files - misc. - newsgroup

Media formats and filters
What mediaformats dsj can de- and encode depends entirely on DirectShow filters that are installed on the runtime system. In general, dsj is capeable of playing all files that WindowsMedia Player or alternative players as MediaPlayer Classic or Zoomplayer are able to open. Note though, that dsj does neither bring any codec filters of its own, nor does it explicitely license you to use any 3rd party filters. We also do not deliver support for issues relating to 3rd party DirectShow filters (unless these issues are a dsj issue, of course).
In general, it is recommendable to only install filters you really need. In particular: do not blindly install codec packs. Incompatibilities between DirectShow filters can lead to serious system instability.
Installing ffdshow will usually cover most formats to encounter.

Find in the following a listing of formats and links to the required codecs (this is an incomplete list of course...) :

.asf, .wmv, .wma, .mpg1 & 3, standard .avi codecs (cinepak, Indeo etc.), DV:
no prerequisits, filters are installed on any Windows running DirectX9 and WindowsMediaPlayer 9 or greater.
Windows Media encoder is available free from Microsoft
mpeg2, dvr-ms, dvd & Digital TV:
MPEG2 Decoder required: elecard / Main Concept, ffdshow (not for DVD)
Encoder: Industrial Streams, elecard, Main Concept
mpeg2 transport streams: TSFileSource
DIVX, XVID and derivates: ffdshow, xvid, 3ivX, DivX
Flash Video (.flv): splitter: FLVSplitter, decoder: ffdshow
mp4, m4a, 3gp etc.: 3ivX
ogg (theora, vorbis), speex, flac: illiminable - xiph
mkv: general info: Matroska.org, Splitter: haali matroska splitter (also splits mp4, m4a, m4v files)
VP7: on2 technologies
AC3: AC3 Filter
Quicktime & swf: medialooks
various useful splitters & muxers by gabest: guliverkli (also home of Media Player Classic)
FLVMuxer and a nice free GraphEdit alternative: monogram
Freeware mp4 encoder / multiplexer: avideosoft h264 in Flash: dicas


A filter that can help a lot, is a good Color Space Converter. Both LEAD and elecard have good implementations.

Capture drivers etc:
umediaserver.net - capture source for AXIS IP Cameras, well working screen capture source and more
btwincap - alternative, feature-rich driver for standard TV capture boards
splitcamera - utility to share capture devices among several applications
medialooks - video mixers, multigraph tools a.o. interesting DirectShow filters


Network source and sink filters:
LEADtools video on demand SDK
Morgan RTP filters
Microsoft Research's ConferenceXP


Misc information:
MSDN: DirectShow - System Overview
MSDN Magazine: DirectShow - Core Media Technology in Windows XP
GDCL - website of the original author of the DirectShow architecture
microsoft.public.win32.programmer.directx.video - DirectShow newsgroup
ffdshow wiki
Doom9 - everything about digital video and its steady evolution.



XGR and GRF files
These will let dsj do things, the ready made classes do not support out of the box. Before running these, open the files in your text editor. They may include filters not present on your system. Also you may not want to transcode an mpeg2 file for example, but some other format. In that case either directly modify the xml or open the xgr in GraphEdit, rebuild the graph and save it again.
Note: Some of the functionality in these files is in the meantime (dsj 0_83x) covered by the classes in de.humatic.dsj.sink. We will keep the files downloadable though, as they may serve as examples for the use of xgr in dsj.
3ivXmp4.xgr - MPEG2 to mp4 encoding using the highly recommendable 3ivX filter suite. File will also play in Quicktime7
DVDivX.xgr - DV to XVid Video / mp3 audio
MPEG2encode.xgr - This encodes a Flash Video (.flv) file to mpeg2 using the Industrial Streams MPEG Encoder
theora.xgr - MPEG2 -> ogg encoding
WS_FTP.LOG -

SampleCode
click [here] for some simple dsj application code examples or download the additional samples package.

GraphEdit (as well as the DirectShow SDK) is part of the Windows Platform SDK. The DirectX9 version does not offer export to XML anymore. A DirectX 8 version, that still does can be downloaded from here.

dsj newsgroup
Google Groups
Subscribe to humatic.dsj
Email:

http://groups.google.com/group/humatic_dsj?hl=en


Related APIs and projects (dsj does not use OpenSource, GPL or LGPL licensed code, but - as you are here - these may be of interest, too) :
JMDS - DirectShow Capture api Java wrapper: jmds.dev.java.net    -    fobs4jmf - ffmpeg c++ & java bindings:  http://fobs.sourceforge.net
java VLC - VideoLan java bindings:  http://jvlc.ihack.it    -    DXInput - DirectInput Java wrapper: www.hardcode.de
jARToolkit - ARToolkit java bindings: http://sourceforge.net/projects/jartoolkit/ - jFFmpeg - JMF codec pack: http://jffmpeg.sourceforge.net/
FMJ Open Source, clean room JMF implementation: fmj.sourceforge.net - Quicktime for Java: developer.apple.com



home - htools - dsj DirectShow, Windows, WindowsMedia, wmv & asf are registered trademarks of Microsoft Corp.
Java is a registered Trademark of Sun Microsystems Inc.