Month: July 2005

I am… Elrond

Posted by – 22/07/2005

I just went through the Which Fantasy/SciFi Character Are You? test following Frank Lichtenheld’s current meme post. I never follow these kind of tests and, usually, I think those are just time-killers. But tonight, since I have some time to kill, I decided to check it. Even when I run those tests I try not to bother readers with the results… But being a major LOTR fan, capable of runing long arguments over issues like “Glorfindel of Rivendell being the same elf of Gondolin”, I had to post this result, since it is not nearly expected.

Which Fantasy/SciFi Character Are You?

Surprise! I am Elrond.

Messing with GStreamer

Posted by – 12/07/2005

Since fisl6.0 I’ve been messing with PureData, GStreamer, IceCast, Theora and all this stuff. Really nice work people have done wrt these tools: they are extremely simple (perhaps except PureData, which is not for the uninitiated).

PureData misses a good object reference, without which one can be really lost in no time. Besides that, I’ve been doing some progress, but I feel that mastering it will take a looooooooooong time. Meanwhile, I’ve found more object inspection in GStreamer, and that is something I can, now, say I am begining to understand.

To transcode a DVD into Ogg/Theora using gstreamer, for instance, all one have to do is:

zsh% gst-launch-0.8 oggmux name=mux ! filesink location=ripped.ogg { dvdreadsrc location=/dev/dvd ! dvddemux name=demux .audio_00 ! { queue ! a52dec ! audioconvert ! rawvorbisenc ! queue ! mux. } { demux.video_00 ! queue ! mpeg2dec ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=384,height=288 ! tee name=t ! { queue ! theoraenc ! queue ! mux. } } } { t. ! queue ! ffmpegcolorspace ! sdlvideosink }<br />

Powerful and simple (and it also gives you realtime video – sdlvideosink – of what it is converting). Combine that with Ruby/GStreamer and you can imagine the things one can do!

Also simple is to transcode an already encoded video:

zsh% gst-launch-0.8 { oggmux name=mux ! filesink location=re-encoded.ogg } filesrc location=to_re-encode.XXX ! decodebin name=d { d. ! queue ! ffmpegcolorspace ! theoraenc bitrate=300 ! queue name=theora-q max-size-buffers=0 max-size-bytes=10485760 max-size-time=0 ! mux. } { d. ! queue ! audioconvert ! audioscale ! audio/x-raw-int,rate=26000 ! audioconvert ! audio/x-raw-float,channels=1 ! rawvorbisenc bitrate=16000 ! queue name=vorbis-q ! mux. }<br />

Also, combining that with Ruby/GStreamer is giving me a lot to code these days.

Of special patience have been people at #gstreamer (and of extremely usefulness have been pastebin) and Ruby/GStreamer’s Laurent Sansonetti (who have been kind enough to fix a bug I’ve found with little ESC-b-dw no help from me).

In time, it seems Women FLOSS-related brazilian projects are having some sort of disagreement, which I had to comment at Groklaw…