PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GPAC 0.4.0 released



Teetrinker
28.07.05, 22:44
GPAC 0.4.0 released

Bei GPAC handelt es sich um Framework rund um den MPEG-4 Systems standard (ISO/IEC 14496-1)

Hompage: http://gpac.sourceforge.net/


http://sourceforge.net/forum/forum.php?forum_id=484494
New version of GPAC is out. The most important thing about this release is that GPAC is now licensed under LGPL. This release is a major code rewrite of all GPAC APIs, without backward compatibility.
But also has some new feature:
* anamorphic video support (MP4Box and players)
* experimental X11 output (far from being stable)
* osmozilla plugin quite usable at this stage
* various
* and the usual amount of fixes and optimizations.

Mit MP4Box lassen sich auf einfache Weise MP4 Dateien erstellen. MP4Box übernimmt das muxen und erstellen des BIFS (http://de.wikipedia.org/wiki/BIFS) /OD Track.

Beispiel erstellen einer MP4 Datei (14496-12 http://www.digitalpreservation.gov/formats/fdd/fdd000079.shtml ) mit einem Video und 2 Audio Tracks:

>MP4Box -add audio1.aac:lang=ger -add audio2.aac:lang=eng -add video.264 -fps 25 output.mp4 -out output.mp4

Beispiel erstellen einer MP4 Datei (14496-14 http://www.digitalpreservation.gov/formats/fdd/fdd000155.shtml ) mit einem Video und 2 Audio Tracks unter Verwendung von BIFS Text.

>MP4Box -mp4 BIFS-Text.bt


BIFS-Text.bt
#IOD START
InitialObjectDescriptor {
objectDescriptorID 1
sceneProfileLevelIndication 1
graphicsProfileLevelIndication 1
ODProfileLevelIndication 1
esDescr [
ES_Descriptor {
ES_ID 1
decConfigDescr DecoderConfigDescriptor {
objectTypeIndication 2
streamType 3
decSpecificInfo BIFSv2Config {
isCommandStream true
pixelMetric true
pixelWidth 1024 #Breite der Scene hier angeben
pixelHeight 416 #Höhe der Scene hier angeben
}
}
}
ES_Descriptor {
ES_ID 2
OCR_ES_ID 1
decConfigDescr DecoderConfigDescriptor {
objectTypeIndication 1
streamType 1
}
}
]
}#IOD END
#SCENE START (BIFS Track)
OrderedGroup {
children [
Background2D {
backColor 0 0 0
}
DEF SW1 Switch {
whichChoice 0
choice [
OrderedGroup {}
OrderedGroup {
children [
Sound2D {
source DEF Audio AudioSource {
url [od:20]
}
}
Shape {
appearance Appearance {
texture DEF Video MovieTexture {
url [od:10]
}
}
geometry Bitmap {}
}
DEF MovieControl MediaControl {
url [ "od:10" ]
mediaSpeed 0.0
}
DEF TS3 TouchSensor {}
]
}
]
}
DEF SW2 Switch {
whichChoice 0
choice [
OrderedGroup {
children [
Transform2D {
children [
Shape {
appearance Appearance {
material Material2D {
emissiveColor 0 0 0
filled TRUE
}
}
geometry Rectangle {
size 195 135
}
}
]
}
Transform2D {
translation 0 30
children [
Shape {
appearance Appearance {
material Material2D {
emissiveColor 1 1 1
filled TRUE
}
}
geometry Rectangle {
size 170 55
}
}
]
}
Transform2D {
translation 0 -30
children [
Shape {
appearance Appearance {
material Material2D {
emissiveColor 1 1 1
filled TRUE
}
}
geometry Rectangle {
size 170 55
}
}
]
}
Transform2D {
translation 0 30
children [
Shape {
appearance Appearance {
material Material2D {
emissiveColor 0 0 0
filled TRUE
}
}
geometry Rectangle {
size 167 52
}
}
Transform2D {
translation 0 -10
children [
Shape {
appearance Appearance {
material Material2D {
emissiveColor 1 1 1
filled TRUE
}
}
geometry Text {
string ["GERMAN"]
fontStyle FontStyle {
justify ["MIDDLE"]
size 20
}
}
}
]
}
DEF TS1 TouchSensor {}
]
}
Transform2D {
translation 0 -30
children [
Shape {
appearance Appearance {
material Material2D {
emissiveColor 0 0 0
filled TRUE
}
}
geometry Rectangle {
size 167 52
}
}
Transform2D {
translation 0 -10
children [
Shape {
appearance Appearance {
material Material2D {
emissiveColor 1 1 1
filled TRUE
}
}
geometry Text {
string ["ENGLISH"]
fontStyle FontStyle {
justify ["MIDDLE"]
size 20
}
}
}
]
}
DEF TS2 TouchSensor {}
]
}
]
}
OrderedGroup {}
]
}
DEF PlayAudio1 Conditional {
buffer {
REPLACE SW1.whichChoice BY 1
REPLACE SW2.whichChoice BY 1
REPLACE Audio.url BY [od:20]
REPLACE MovieControl.mediaSpeed BY 1.0
}
}
DEF PlayAudio2 Conditional {
buffer {
REPLACE SW1.whichChoice BY 1
REPLACE SW2.whichChoice BY 1
REPLACE Audio.url BY [od:30]
REPLACE MovieControl.mediaSpeed BY 1.0
}
}
DEF ShowAudioMenue Conditional {
buffer {
REPLACE SW2.whichChoice BY 0
}
}
]
}

ROUTE TS1.isActive TO PlayAudio1.activate
ROUTE TS2.isActive TO PlayAudio2.activate
ROUTE TS3.isActive TO ShowAudioMenue.activate
#SCENE END


#OD Track START
AT 0 {
UPDATE OD [
ObjectDescriptor {
objectDescriptorID 10
esDescr [
ES_Descriptor {
ES_ID 3
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "video.avi#video"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 20
esDescr [
ES_Descriptor {
ES_ID 4
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "german.aac"
}
langDescr LanguageDescriptor {
languageCode "ger"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 30
esDescr [
ES_Descriptor {
ES_ID 5
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "english.aac"
}
langDescr LanguageDescriptor {
languageCode "eng"
}
}
]
}
]
}#OD Track END

MPEG-4 BIFS
and XMT Tutorial (http://gpac.sourceforge.net/tutorial/bifs_intro.htm)

Weitere Beispiele kann man der GPAC Regression Test Suite (http://gpac.sourceforge.net/downloads/gpac_regression_tests-0.2.3.tar.gz) entnehmen.

Zum betrachten von interaktiven Mpeg 4 Content benötigt man einen Mpeg 4 Systems Player wie Osmo4. Andere Player werden nur den Audio/Video Tracks in der MP4 Datei Beachtung schenken.

Wenn man Probleme mit dem SDL Video Output Plugin von Osmo4 hat, einfach die libSDL recompilieren, dann sollte es klappen. Das x11 Ausgabe Plugin ist leider noch zu unstabil.

Eine weitere Anlaufstelle zum erstellen von Mpeg 4 Systems Content ist das IBM Toolkit for MPEG-4 (http://www.alphaworks.ibm.com/tech/tk4mpeg4) .

Teetrinker
03.08.05, 13:06
Bugfix Release der 0.4.0er Version ist jetzt raus.


http://sourceforge.net/forum/forum.php?forum_id=485752
This is the final release for 0.4.0. It includes many compilation fixes from first release and, as an extra, a more-or-less stable X11 output for linux users, allowing to embed the video in Osmo4/wx and osmozilla.

Enjoy it as much as I'll enjoy my holidays!