Difference between revisions of "Gstreamer"
From ArmadeusWiki
(→Audio) |
(→Audio) |
||
Line 74: | Line 74: | ||
* play a music file (here a .ogg, supposing the libgstogg plugin was installed): | * play a music file (here a .ogg, supposing the libgstogg plugin was installed): | ||
<pre class="apf"> | <pre class="apf"> | ||
− | # gst-launch | + | # gst-launch filesrc location=toto.ogg ! decodebin ! audioconvert ! audioresample ! alsasink |
</pre> | </pre> | ||
* record a sound from a mic (APF27 only) and store it as an uncompressed wav file: | * record a sound from a mic (APF27 only) and store it as an uncompressed wav file: | ||
<pre class="apf"> | <pre class="apf"> | ||
− | # gst-launch | + | # gst-launch alsasrc ! audioconvert ! audioresample ! wavenc ! filesink location=mic.wav |
</pre> | </pre> | ||
* record a sound from a mic (APF27 only) and compress it (ogg/worbis): | * record a sound from a mic (APF27 only) and compress it (ogg/worbis): | ||
<pre class="apf"> | <pre class="apf"> | ||
− | # gst-launch | + | # gst-launch alsasrc ! audioconvert ! audioresample ! vorbisenc ! oggmux ! filesink location=mic.ogg |
+ | </pre> | ||
+ | * record a sound from a mic (APF27 only) @ 8KHz (16KHz is too CPU consuming), compress it with [[Speex]] and send it to your Host (here 192.168.1.2) at port 6666: | ||
+ | <pre class="apf"> | ||
+ | # gst-launch -v alsasrc ! audioconvert ! audioresample ! 'audio/x-raw-int,rate=8000,width=16,channels=1' ! speexenc ! rtpspeexpay ! udpsink host=192.168.1.2 port=6666 | ||
+ | </pre> | ||
+ | <pre class="host"> | ||
+ | $ gst-launch udpsrc port=6666 caps="application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)SPEEX, encoding-params=(string)1, payload=(int)110" ! gstrtpjitterbuffer ! rtpspeexdepay ! speexdec ! audioconvert ! audioresample ! autoaudiosink | ||
+ | </pre> | ||
+ | <pre class="host"> | ||
+ | $ gst-launch udpsrc port=6666 caps="application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)SPEEX, encoding-params=(string)1, payload=(int)110" ! gstrtpjitterbuffer ! rtpspeexdepay ! speexdec ! audioconvert ! audioresample ! wavenc ! filesink location=toto.wav | ||
</pre> | </pre> | ||
==Links== | ==Links== |
Revision as of 20:04, 12 February 2010
Page under construction... Informations on this page are not guaranteed !!
Note: gstreamer has only been introduced recently in Buildroot, so you will need to use our "still in development" migration to Buildroot 2010.xx version. |
Installation
$ make menuconfig
Package Selection for the target ---> Audio and video libraries and applications ---> ... [*] gstreamer [*] require libxml2 for registry and load/save -*- gst-plugins-base ---> [*] gst-plugins-good ---> [*] gst-plugins-bad ---> [*] gst-plugins-ugly --->
Plugins worth to activate:
- base:
- good:
- bad:
- ugly:
Usage
Check installed plugins
- To see all installed plugins:
# gst-inspect videoscale: videoscale: Video scaler queue2: queue2: Queue ffmpegcolorspace: ffmpegcolorspace: FFMPEG Colorspace converter audiorate: audiorate: Audio rate adjuster audioconvert: audioconvert: Audio converter audioresample: audioresample: Audio resampler volume: volume: Volume ...
- To have more details about one particular plugin (here alsasrc):
# gst-inspect alsasrc Factory Details: Long name: Audio source (ALSA) Class: Source/Audio Description: Read from a sound card via ALSA Author(s): Wim Taymans <wim@fluendo.com> Rank: primary (256) Plugin Details: Name: alsa Description: ALSA plugin library Filename: /usr/lib/gstreamer-0.10/libgstalsa.so Version: 0.10.25 License: LGPL Source module: gst-plugins-base Binary package: GStreamer Base Plug-ins source release Origin URL: Unknown package origin ... <cut>
Audio
- play a monotic tone to check your sound configuration is working (if not please configure ALSA):
# gst-launch audiotestsrc ! audioconvert ! audioresample ! alsasink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstAudioSinkClock
- play a music file (here a .ogg, supposing the libgstogg plugin was installed):
# gst-launch filesrc location=toto.ogg ! decodebin ! audioconvert ! audioresample ! alsasink
- record a sound from a mic (APF27 only) and store it as an uncompressed wav file:
# gst-launch alsasrc ! audioconvert ! audioresample ! wavenc ! filesink location=mic.wav
- record a sound from a mic (APF27 only) and compress it (ogg/worbis):
# gst-launch alsasrc ! audioconvert ! audioresample ! vorbisenc ! oggmux ! filesink location=mic.ogg
- record a sound from a mic (APF27 only) @ 8KHz (16KHz is too CPU consuming), compress it with Speex and send it to your Host (here 192.168.1.2) at port 6666:
# gst-launch -v alsasrc ! audioconvert ! audioresample ! 'audio/x-raw-int,rate=8000,width=16,channels=1' ! speexenc ! rtpspeexpay ! udpsink host=192.168.1.2 port=6666
$ gst-launch udpsrc port=6666 caps="application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)SPEEX, encoding-params=(string)1, payload=(int)110" ! gstrtpjitterbuffer ! rtpspeexdepay ! speexdec ! audioconvert ! audioresample ! autoaudiosink
$ gst-launch udpsrc port=6666 caps="application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)SPEEX, encoding-params=(string)1, payload=(int)110" ! gstrtpjitterbuffer ! rtpspeexdepay ! speexdec ! audioconvert ! audioresample ! wavenc ! filesink location=toto.wav