The Digital Media Project
|
Source
|
Angelo Di Fino
|
Date
|
2007/07/17
|
Title
|
Chillout – MediaPlayer Layer
|
No.
|
1026/Chillout
|
Chillout – MediaPlayer Layer
The story so far:
- JMF was chosen as Chillout Media Player
- Fobs4JMF/ffmpeg was chosen to support modern codec (p.ex. AVC) (w/out DRMTools integrated in the multimedia chain)
Next to do:
- Separate Chillout's DRMProcessing from Media Rendering
- Improving quality: support AVC (DRMTools has to be integrated in the multimedia chain)
What we need?
- A player or a media player framework?
- A player with demux that not 'mark' the es-data with the related codectype?
Analize on:
- audiovideo encoding-decoding support
- easy to integrate in java
- easy to manage an ad hoc chain (who support es filtering?)
- licence type
FFmpeg
|
http://ffmpeg.mplayerhq.hu/
|
The FFmpeg project hosts the libavcodec codec library, a decoder/encoder codec-suit that forms the basis of most free and open source software multimedia programs. It aims to support all popular and less known codec formats and it is closer to that goal than any other (commercial or open source) program or library. FFmpeg also contains libavformat, a library for multimedia container formats and libpostproc for postprocessing.
Last release: (no formal release) 0.4.9-pre1
Supported platform: BSD, Windows, BEOS (and many others, i suppose)
Supported fileformats-codecs: http://ffmpeg.mplayerhq.hu/ffmpeg-doc.html#SEC21
-
H.264: support only decoding?
Licensed as LGPL, but... it depends!
ES filtering: no detailed architecture is depicted.
-
libavformat/rm.c : The Demux is directly connected to the Decoders. Need to investigate
Java binding:
-
jffmpeg (http://jffmpeg.sourceforge.net): Last release jffmpeg-1.1.0 (2006-01-20)
Is this project closed?
-
Fobs4JMF (http://fobs.sourceforge.net): Last release Fobs 0.4.1 (January 18, 2007)
Perfect for rendering, no mux support
Community: http://lists.mplayerhq.hu/pipermail/ffmpeg-user (600 posts/month)
FFPlay
http://www.ffmpeg.org/
Basic multimedia player from the FFmpeg project.
Ffdshow
http://ffdshow-tryout.sourceforge.net
Ffdshow is an open source decoder (and encoder) based on Ffmpeg and it's used for decoding and encoding numerous video and audio codecs, (practically every decoder and encoder that FFmpeg supports). It runs on Microsoft Windows operating-systems and is implemented as a DirectShow decoding filter as well as VMW (Video for Windows) encoding DLL (Dynamic Link Library).
GStreamer
|
http://www.gstreamer.net
http://gstreamer.freedesktop.org/
|
Gstreamer is a multimedia framework with the longterm goal of allowing complex audio mixing and video editing. It employs codecs from several places, FFmpeg among them. GStreamer is a library that allows the construction of graphs of media-handling components, ranging from simple Ogg/Vorbis playback to complex audio (mixing) and video (non-linear editing) processing. Applications can take advantage of advances in codec and filter technology transparently. Developers can add new codecs and filters by writing a simple plugin with a clean, generic interface.
Last release: Gstreamer Plugins (Good 0.10.6, Bad 0.10.5 & Ugly 0.10.6) (2007-06-19)
GStreamer has been ported to a wide range of operating systems, processors and compilers. This include but are not limited to Linux on i86,PPC, ARM using GCC. Solaris on x86 and SPARC using both GCC and Forte, MacOSX, Microsoft Windows using MS Visual Developer and IBM OS/400. Symbian?
Format: any supported by FFMpeg. Missing detailed list from website.
GStreamer is released under the LGPL
ES filtering:
-
GStreamer's development framework makes it possible to write any type of streaming multimedia application
-
The plugins can be linked and arranged in a pipeline
-
The core of GStreamer is essentially media-agnostic
-
Capabilities of a pad – do you need to specify the type of ES? Need to investigate
Java binding: http://code.google.com/p/gstreamer-java/source
-
Preliminary version (but last update 2 years ago')
Community:
-
http://sourceforge.net/mailarchive/forum.php?forum_name=gstreamer-devel down?
MPlayer
|
http://www.mplayerhq.hu/
|
Full-featured, fast and portable multimedia player. Uses the libavcodec codec library (and optionally the libavformat container library) from the FFmpeg project. The MPlayer project also develops Mencoder (Transcoding program from the MPlayer project).
Last release: MPlayer v1.0rc1 (2006-10-22)
Supported platform: Linux. Porting to *BSD, Commercial Unix, Windows, Mac OS, QNX, Amiga/MorphOS (http://www.mplayerhq.hu/DOCS/HTML/en/ports.html)
Supported fileformats-codecs: http://www.mplayerhq.hu/DOCS/codecs-status.html
Released under GNU General Public License.
No ES filtering is described. No architecture's schema was found.
Requested infosomeone proposed piped demuxer. Need to investigate
Java binding: Jmemcode (http://jmencode.sourceforge.net)
-
Last release: JMencode_v0.64 (2007-05-26)
-
“Manual has not yet been written, but the program is quite simplistic”
Community seems very active: mplayer-users@mplayerhq.hu
VLC media player
|
http://www.videolan.org/vlc/
|
VLC is a portable media player that is extremely popular on Windows. Like all free software multimedia players it uses the libavcodec library from FFmpeg for codec support.
Last release: VLC 0.8.6 (2007-06-17)
Supported platform:: Windows, Mac OS X, BeOS, Debian GNU/Linux, Ubuntu Linux, Mandriva Linux, Fedora Core, Familiar Linux, SUSE Linux, Red Hat Linux, Slackware Linux, ALT Linux, YOPY/Linupy, Zaurus, WinCE / PocketPC, Arch Linux. Ad hoc compile: NetBSD, OpenBSD, FreeBSD, Solaris, QNX, Gentoo Linux, Crux Linux
Supported fileformats-codecs: http://www.videolan.org/vlc/features.html
Released under GNU General Public License.
No ES filtering is described. Architecture permits it? Seems we need to add a new ad hoc multiplexer
Java bindings: Jvlc (http://trac.videolan.org/jvlc)
-
Preliminary... but it works!
Community seems very active: http://forum.videolan.org/
xine
|
http://www.xinehq.de/
|
Xine is a free high-performance, portable and reusable multimedia playback engine. Xine itself is a shared library with an easy to use, yet powerful API which is used by many applications for smooth video playback and video processing purposes.
Last release: xine-lib 1.1.7 (07.06.2007)
Supported platforms: GNU/Linux (x86, alpha, sparc, ppc, ...) FreeBSD (x86) Solaris (sparc and x86) Irix (mips) Darwin/MacOS X (ppc) via the fink project (in progress - partially working and committed to CVS) MS Windows (in progress - patches received) HPUX (in progress - patches received) OpenBSD (in progress - external site) OS/2
Supported fileformats-codecs: http://www.xinehq.de/index.php/features
(xine uses code from the following external free software projects: liba52, libmpeg2, libmad, libffmpeg)
Released under GNU General Public License
No ES filtering is described. Architecture is: http://www.xinehq.de/index.php/hackersguide#AEN467.
Requested information...
Java bindings: none.
Community quite active (60posts/month): http://sourceforge.net/mailarchive/forum.php?forum_name=xine-user
gpac
|
http://gpac.sourceforge.net/
|
GPAC is a multimedia framework based on the MPEG-4 Systems standard (ISO/IEC 14496-1) developed from scratch in ANSI C.
Last release: GPAC Release 0.4.4 (May 31st 2007)
GPAC is currently running under Windows 2K, XP, 98 and ME, Linux platforms with X11 and OSS support, WindowsCE (SmartPhone 2002/2003 and PocketPC 2002/2003) (3D rendering through OpenGL-ES), Embedded Linux platforms (familiar 8 + GPE), All GCC-powered platforms with SDL support, Experimental Symbian S60 3rd edition is available since 0.4.4
Supported fileformat-codec: DVD is not on the todo list. Since version 0.1.2, GPAC supports FFMPEG libraries for demuxing and decoding, so should play most AV file formats known
Released under GNU Lesser General Public License
ES filtering? No way to understand how the framework works (how the chains are created, how to plug new module, ...). It seems useful for MPEG-4 content authoring.
Requested info...
Java binding: none, but someone are talking about: http://formation.enst.fr/MIX/supports/2006/PresentationProjets.ppt.pdf
Community seems alive and interested
Apple QuickTime Player
|
http://www.apple.com/quicktime/
|
QuickTime is software that allows Mac and Windows users to play back audio and video on their computers. But taking a deeper look, QuickTime is many things: a file format, an environment for media authoring and a suite of applications:
-
QuickTime Player — for playing back audio and video files
-
QuickTime Pro — for flexible multimedia authoring
-
Browser plug-ins — for viewing media within a web page
-
PictureViewer — for working with still images
-
QuickTime Streaming Server — Open source streaming server for delivering streaming media files on the Internet in real time (Mac OS X only)
-
Darwin Streaming Server — for delivering streaming media with Linux, Solaris and Windows
-
QuickTime Broadcaster — for delivering live events on the Internet (free download; Mac OS X only)
-
MPEG-2 Playback Component — for playing back MPEG-2 content (requires separate purchase)
AVC support integrated in version 7.2
Porting on java: http://developer.apple.com/quicktime/qtjava/
Flash Player
|
http://www.adobe.com/products/flashplayer
|
Flash player is a popular platform for web multimedia
REAL
|
http://www.real.com/
|
It is designed mainly for the code family from Real but supports some other formats as well nowadays. At some point Real made parts of RealPlayer open source, the result is Helix on which RealPlayer is built.
Windows Media Player
|
http://www.microsoft.com/windows/windowsmedia/default.mspx
|
Multimedia player made by Microsoft. It is the default media player on Windows. WMP plays a number of multimedia formats, most notably the formats created by Microsoft themselves
DRM-opera
https://drm-opera.dev.java.net/
DRM InterOPERAbility Framework is a DRM architecture implementing standardized interfaces and processes for the interoperability of DRM systems. The DRM InterOPERAbility Framework architecture is independent of specific hardware and operating system, and is not restricted to specific media formats. It enables user based license provision as opposed to the situation today where licenses are assigned to devices.
JOGL
https://jogl.dev.java.net/
The JOGL project hosts the development version of the Java™ Binding for the OpenGL® API (JSR-231), and is designed to provide hardware-supported 3D graphics to applications written in Java. JOGL provides full access to the APIs in the OpenGL 2.0 specification as well as nearly all vendor extensions, and integrates with the AWT and Swing widget sets. It is part of a suite of open-source technologies initiated by the Game Technology Group at Sun Microsystems.
JMF
http://java.sun.com/products/java-media/jmf/
FMJ
http://fmj.sourceforge.net/
Last release: 1315 version (2007-07-11)
Share with your friends: |