[gst-devel] FAAC bitrate

Stefan Kost ensonic at hora-obscura.de
Sun Jan 10 12:16:29 CET 2010


Am 08.01.2010 12:22, schrieb Mike Dyer:
> On Fri, 2010-01-08 at 11:03 +0200, Stefan Kost wrote:
>> Mike Dyer wrote:
>>> Hi all,
>>>
>>> I'm trying to capture and encode some live audio/video to an mpeg-ts.
>>> The audio is compressed using faac. However I've noticed that whatever
>>> bitrate I request from faac, its always 128kbps.
>>>
>>> I can replicate using an audio-only pipeline:
>>>
>>> gst-launch alsasrc device=hw:0 !
>>> audio/x-raw-int,channels=2,rate=44100,width=16 ! audioconvert ! faac
>>> outputformat=1 profile=2 bitrate=8000 ! ffmux_mpegts ! filesink
>>> location=faac.ts
>>>   
>>
>> hat looks correct, also the plugin code itself does not show anything
>> obviously wrong. How did you verify the bitrate?
>>
>> Stefan
> 
> I used an mpeg ts analyser and checked the payload rate (in bps) for the
> audio stream.
> 
> As a sanity check:
> 
> gst-launch -v audiotestsrc is-live=true wave=9 do-timestamp=true
> num-buffers=450 ! audio/x-raw-int,channels=2,rate=44100,width=16 !
> audioconvert ! faac outputformat=1 profile=2 bitrate=8000 !
> ffmux_mpegts ! filesink location=8mbps.ts
> 
> gst-launch -v audiotestsrc is-live=true wave=9 do-timestamp=true
> num-buffers=450 ! audio/x-raw-int,channels=2,rate=44100,width=16 !
> audioconvert ! faac outputformat=1 profile=2 bitrate=128000 !
> ffmux_mpegts ! filesink location=128mbps.ts
> 
> ls -l *.ts gives:
> 
> -rw-rw-r--. 1 mike mike  234436 2010-01-08 10:13 128mbps.ts
> -rw-rw-r--. 1 mike mike  232556 2010-01-08 10:13 8mbps.ts
> 
> Two files of about the same size, for two very different 'bitrates'.


Could you please fiel a bug report, mention these dateils, your distro and faac
version?

Stefan

> 
> Mike
> 
>>
>>> gst-launch -v gives:
>>>
>>> Setting pipeline to PAUSED ...
>>> /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0: actual-buffer-time = 200000
>>> /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0: actual-latency-time = 10000
>>> /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0.GstPad:src: caps =
>>> audio/x-raw-int, endianness=(int)1234, signed=(boolean)true,
>>> width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2
>>> Pipeline is live and does not need PREROLL ...
>>> Setting pipeline to PLAYING ...
>>> New clock: GstAudioSrcClock
>>> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps =
>>> audio/x-raw-int, endianness=(int)1234, signed=(boolean)true,
>>> width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2
>>> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps =
>>> audio/x-raw-int, endianness=(int)1234, signed=(boolean)true,
>>> width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2
>>> /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src: caps =
>>> audio/x-raw-int, endianness=(int)1234, signed=(boolean)true,
>>> width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2
>>> /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink: caps =
>>> audio/x-raw-int, endianness=(int)1234, signed=(boolean)true,
>>> width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2
>>> /GstPipeline:pipeline0/GstFaac:faac0.GstPad:src: caps = audio/mpeg,
>>> mpegversion=(int)4, channels=(int)2, rate=(int)44100,
>>> codec_data=(buffer)1210
>>> /GstPipeline:pipeline0/GstFaac:faac0.GstPad:sink: caps =
>>> audio/x-raw-int, endianness=(int)1234, signed=(boolean)true,
>>> width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2
>>> /GstPipeline:pipeline0/ffmux_mpegts:ffmux_mpegts0.GstPad:audio_0: caps =
>>> audio/mpeg, mpegversion=(int)4, channels=(int)2, rate=(int)44100,
>>> codec_data=(buffer)1210
>>> /GstPipeline:pipeline0/GstFileSink:filesink0.GstPad:sink: caps =
>>> video/mpegts, systemstream=(boolean)true
>>>
>>> How do I make faac listen to the bitrate setting?  
>>>
>>>  
> 
> 
> ------------------------------------------------------------------------------
> This SF.Net email is sponsored by the Verizon Developer Community
> Take advantage of Verizon's best-in-class app development support
> A streamlined, 14 day to market process makes app distribution fast and easy
> Join now and get one step closer to millions of Verizon customers
> http://p.sf.net/sfu/verizon-dev2dev 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel





More information about the gstreamer-devel mailing list