Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Making ISMA compliant MPEG-4 files in Quicktime



Who to know the detail stdQTConstants.kQTfileTypeMovie value for profile-0
or profile-1 of MovieExporter setting ?


-----Original Message-----
From: Chris Adamson [mailto:email@hidden]
Sent: Thursday, January 30, 2003 9:57 PM
To: email@hidden
Cc: Brian Williamson
Subject: Re: Making ISMA compliant MPEG-4 files in Quicktime


On Wed, 29 Jan 2003 11:33:28 -0800 (PST), Brian Williamson
<email@hidden> wrote:

> Hello. I am trying to build an encoder application that will create an
> MPEG-4 file that can be streamed and play back in QT, Real and Windows
> Media. Using WinVDIG it is easy enough to capture using the MPEG-4
> codec and save out a Quicktime .mov, but those files won't play back
> outside of Quicktime. I looked at the tracks on the movie and the
> SDSM and ODSM tracks are missing and I believe the audio is not the
> standards compliant type. Is there any way to create ISMA compliant
> MPEG-4 using WinVDIG and/or QT Java or something else (that's cheap).

How 'bout you open a Movie in QTJ (from a file, in memory, from the
SequenceGrabber or whatever), get a MovieExporter of subtype 'mpg4'
(note that that's a 32-bit _int_ of those characters), and then call
MovieExporter.doUserDialog() to let the user specify the compression
and other settings. I think that should write a real MPEG-4 file for
you.

BTW, this _might_ require QuickTime Pro. Don't know that there's a way
to "un-register" my copy to test that. It definitely requires
QuickTime 6, for the MPEG-4 support.

I hacked an app of mine to test this, and here's what the relevant
section looks like:

int MPEG_4_SUBTYPE = 0x6d706734; // yikes, no const for
this?
MovieExporter exporter =
new MovieExporter (MPEG_4_SUBTYPE);
boolean cancelledExport =
exporter.doUserDialog (myMovie, // movie
null, // onlyThisTrack
0, // start
myMovie.getDuration());
//duration
if (! cancelledExport) {
System.out.println ("Exporting");
QTFile expFile = new QTFile ("expmovie.mp4");
exporter.toFile (expFile, // file
myMovie, // movie
null, // onlyThisTrack
0, // start
refMovie.getDuration()); //duration
}

Just tried the above and it brings up that giant MPEG-4 dialog that
tells you whether your exported movie is going to be ISMA-compliant
given your current settings. Resulting file certainly looks like real
MPEG-4 (it's got an "iods" atom -- that's a good sign!). Note that the
export runs a long time without feedback, so a real app should call
setProgressProc to set up a callback to provide some kind of %-complete
GUI niceness.

--Chris


-----------
Chris Adamson
Java Media and GUI development
email@hidden _______________________________________________
quicktime-java mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/quicktime-java
Do not post admin requests to the list. They will be ignored.
_______________________________________________
quicktime-java mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/quicktime-java
Do not post admin requests to the list. They will be ignored.



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.