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 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? -- Mike Dyer R&D Engineer ProVision Communications ------------------------------------------------------------------------------ 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 [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
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 > 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 [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
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'. 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 [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
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 > [hidden email] > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel ------------------------------------------------------------------------------ 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 [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |