gstreamer

This is an old revision of the document!


Videos umwandeln mit dem GStreamer Framework

GStreamer ist ein Video-Framework, das eigentlich Anwendungsentwicklern helfen soll, mit Multimediaformaten umzugehen. Mithilfe von gst-launch kann man aber das in viele Plugins zerlegte Framework auch so nutzen. Jedes Plugin hat eine/mehrere “source” und einen/meherere “sink”. So kann man die ganzen Plugins in eine Kette hängen, angefangen vom lesen einer Datei, über das umwandeln des Videos und dem Muxen über das speichern in eine Datei

Sollte auf den meisten Linux-Distributionen über die gst-plugins-[good,bad,ugly] (oder ähnlich) Pakete gehn. OS X hat bestimmt irgendnen Port. FIXME Windows?

  gst-inspect

Alleine aufgerufen listet die installierten Plugins auf. Mag man z.B wissen was das “vorbisenc” denn alles verwursten kann, gibt man

  gst-inspect vorbisenc
  

ein.

Umwandeln von nem haufen PNG-Bildern und ner FLAC-Tonspur in ein WebM Video

  gst-launch-0.10 webmmux name="mux" ! filesink location=test.ivf . multifilesrc location="/home/brot/sintel_trailer-720/sintel_trailer_2k_%04d.png" index="1" caps="image/png,framerate=24/1" ! pngdec ! ffmpegcolorspace ! video/x-raw-yuv,format=\(fourcc\)I420 ! vp8enc threads=2 quality=8 speed=0 max-latency=25 mode=vbr ! multiqueue ! mux. filesrc location="/home/brot/sintel_trailer-720/sintel_trailer-audio.flac" ! flacdec ! audioconvert ! vorbisenc quality=0.25 ! mux.
  

Anmerkung: Am Anfang wird der filesink definiert, mit dem namen “mux”. Danach kommt die Video- und die Ton-Pipeline, die beide mit “mux.” aufhören, was den Stream durch den webmmuxer in den filesink leitet.

Umwandeln von einem y4m Video in WebM

gst-launch-0.10 webmmux name="mux" ! filesink location=test.ivf . filesrc location="sunflower.y4m" ! ffdemux_yuv4mpegpipe ! vp8enc threads=2 quality=8 speed=0 max-latency=25 mode=vbr ! multiqueue ! mux.

DVD's Abspielen

gst-launch-0.10 dvdreadsrc title=1 ! dvddemux name=demux demux.current_audio ! queue ! a52dec ! audioconvert ! pulsesink demux. ! mpeg2dec ! xvimagesink
 gst-launch-0.10 filesrc location=/home/brot/fu.mkv ! matroskademux ! dtsdec ! audiorate ! audioconvert ! audio/x-raw-int,channels=6 ! flacenc ! filesink location=out.flac
 
 gst-launch-0.10 multifilesrc location=big_buck_bunny_%05d.png index=1 caps=”image/png,framerate=24/1″ ! pngdec ! ffmpegcolorspace ! jpegenc quality=100 ! queue ! mux. filesrc location=../BigBuckBunny-stereo.flac ! flacdec ! audioconvert ! audioresample ! queue ! mux. avimux name=mux ! filesink location=input226_mjpeg.avi
 
 gst-launch-0.10 v4l2src device=/dev/video0 ! tee name=videoout ! queue ! video/x-raw-yuv,width=640,height=480 ! queue  ! theoraenc quality=30 ! muxout. osssrc device=/dev/dsp ! tee name=audioout ! queue ! audio/x-raw-int,rate=44000 ! queue ! audioconvert ! vorbisenc !  muxout. oggmux name=muxout ! filesink location=media2.ogg videoout. ! queue ! ffmpegcolorspace ! xvimagesink audioout. ! queue ! osssink
 
 

http://diracvideo.org/wiki/index.php/Encode_Big_Buck_Bunny

  • gstreamer.1276977186.txt.gz
  • Last modified: 2010/06/19 19:53
  • by brot