Next task: Generate QuickTime output for Cinelerra editing

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Next task: Generate QuickTime output for Cinelerra editing

Jason Buberel
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

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Next task: Generate QuickTime output for Cinelerra editing

Stefan Sauer
Hi Jason,

the ffmux_mov seems to not work well. GStreamer applied for Google Summer of
Code again and one task would be a mov muxer:
http://gstreamer.freedesktop.org/wiki/QuicktimeMP4Muxer

Stefan

Jason L. Buberel schrieb:

> 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
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel