[gst-devel] Next task: Generate QuickTime output for Cinelerra editing
Jason L. Buberel
jason at buberel.org
Sat Mar 8 07:42:34 CET 2008
Now that (I think) I have done as much damage as possible to the art of
creating Ogg-formatted files containing vorbis-encoded audio and
theora-encoded video (http://www.buberel.org/best.ogg) with a webcam, I
would now like to capture video + audio to a file format that can be
edited by Cinelerra.
According to the Cinelerra docs here:
http://cv.cinelerra.org/docs/cinelerra_cv_manual_en.html#SEC70
The preferred file format is QuickTime-formatted files containing
MPEG4-encoded video and MPEG4-encoded audio.
In reviewing the gstreamer documentation, I found that 'ffmux_mov'
should be able to mux those two inputs:
ffmux_mov: audio/mpeg
ffmux_mov: rate: [ 8000, 96000 ]
ffmux_mov: channels: [ 1, 2 ]
ffmux_mov: mpegversion: 4
[snip]
ffmux_mov: video/mpeg
ffmux_mov: width: [ 16, 4096 ]
ffmux_mov: height: [ 16, 4096 ]
ffmux_mov: framerate: [ 0/1, 2147483647/1 ]
ffmux_mov: mpegversion: 4
ffmux_mov: systemstream: false
After reviewing the set of audio and video codecs, it looked like I
should be using:
ffenc_mpeg4: video/mpeg
ffenc_mpeg4: width: [ 16, 4096 ]
ffenc_mpeg4: height: [ 16, 4096 ]
ffenc_mpeg4: framerate: [ 0/1, 2147483647/1 ]
ffenc_mpeg4: mpegversion: 4
ffenc_mpeg4: systemstream: false
and for the audio there seems to be a single option:
faac: audio/mpeg
faac: mpegversion: { 4, 2 }
faac: channels: [ 1, 6 ]
faac: rate: [ 8000, 96000 ]
But when I run a test command to validate just the audio pathway, the
file that is generated cannot be played back in xine or mplayer. The
error message produced seems to indicate that the problem is with the
quicktime file format and header information:
> gst-launch-0.10 -v alsasrc device="hw:1,0" !
audio/x-raw-int,rate=16000,channels=1,depth=16 ! faac bitrate=16000
name=aenc ! ffmux_mov name=mux ! filesink location=out.mov
See: http://www.buberel.org/qt-audio.mov
> mplayer out.mov
Playing out.mov.
ISO: File Type Major Brand: Original QuickTime
MOV: missing header (moov/cmov) chunk! Maybe broken file...
ISO: File Type Major Brand: Original QuickTime
MOV: missing header (moov/cmov) chunk! Maybe broken file...
libavformat file format detected.
LAVF: no audio or video headers found - broken file?
The debug output from the gstreamer encoding command is:
Setting pipeline to PAUSED ...
/pipeline0/alsasrc0.src: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)16000,
channels=(int)1
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstAudioSrcClock
/pipeline0/capsfilter0.src: caps = audio/x-raw-int,
endianness=(int)1234, signed=(boolean)true, width=(int)16,
depth=(int)16, rate=(int)16000, channels=(int)1
/pipeline0/capsfilter0.sink: caps = audio/x-raw-int,
endianness=(int)1234, signed=(boolean)true, width=(int)16,
depth=(int)16, rate=(int)16000, channels=(int)1
/pipeline0/aenc.sink: caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)16000,
channels=(int)1
0:00:00.441527000 19778 0x80698c0 DEBUG faac
gstfaac.c:366:gst_faac_configure_source_pad:<aenc> allowed caps:
audio/mpeg, mpegversion=(int)4, channels=(int)[ 1, 2 ], rate=(int)[
8000, 96000 ]
0:00:00.442645000 19778 0x80698c0 DEBUG faac
gstfaac.c:413:gst_faac_configure_source_pad:<aenc> retrieving decoder info
0:00:00.443035000 19778 0x80698c0 DEBUG faac
gstfaac.c:427:gst_faac_configure_source_pad:<aenc> src pad caps:
audio/mpeg, mpegversion=(int)4, channels=(int)1, rate=(int)16000,
codec_data=(buffer)0c08
/pipeline0/aenc.src: caps = audio/mpeg, mpegversion=(int)4,
channels=(int)1, rate=(int)16000, codec_data=(buffer)0c08
/pipeline0/mux.audio_0: caps = audio/mpeg, mpegversion=(int)4,
channels=(int)1, rate=(int)16000, codec_data=(buffer)0c08
Is there something about the ffmux_mov that I am missing? There are no
options that I can give it (besides 'name').
Thanks,
jason
More information about the gstreamer-devel
mailing list