So David Schleef is kicking ass currently and our Dirac implementation, Schrodinger, is moving quickly forward these days. I just cut a new development releases of both Schroedinger and libtsmux so be sure to check them out.
The plan is to try to make much more frequent releases from here out as things are coming together fast now and the package is at least generally useful for testing.
Be aware that the weakest link in the package is currently the encoder, but this is also what David is focusing on at the moment so expect to see big strides forward in the next few weeks and months in terms of quality of encoded video. Could be we need to tweak the encoder setting further also, although David tried add some sensible defaults for this release.
Here is a couple of screenhots of Totem in action playing a movie I transcoded from a HD Quicktime clip.
The pipeline used to create this movie was:
gst-launch-0.10 filesrc location=animusic2dvd_m720p.mov ! decodebin2 name="decode" decode. ! ffmpegcolorspace ! videoscale method=1 ! "video/x-raw-yuv, width=(int)640, height=(int)360" ! ffmpegcolorspace ! schroenc ! queue ! oggmux name=mux ! gnomevfssink location=file:///tmp/anime.ogg decode. ! audioconvert ! vorbisenc ! queue ! mux.
I tried compiling schrodinger on Fedora Core 6 but I wasn’t able to. schrodinger/ seems to compile.
Here’s the top-level make compile:
if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -Wall -I../.. -I/usr/include/liboil-0.3 -g -O2 -MT it-it.o -MD -MP -MF “.deps/it-it.Tpo” -c -o it-it.o `test -f ‘it.c’ echo ‘./’`it.c; \
then mv -f “.deps/it-it.Tpo” “.deps/it-it.Po”; else rm -f “.deps/it-it.Tpo”; exit 1; fi
it.c:2:19: error: check.h: No such file or directory
it.c:8: warning: return type defaults to ‘int’
it.c: In function ‘START_TEST’:
it.c:12: warning: implicit declaration of function ‘fail_unless’
it.c: At top level:
it.c:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
make: *** [it-it.o] Error 1
make: Leaving directory `/home/patrick/src/schroedinger-0.4.0.0/testsuite/check’
make: *** [all-recursive] Error 1
make: Leaving directory `/home/patrick/src/schroedinger-0.4.0.0/testsuite’
make: *** [all-recursive] Error 1
make: Leaving directory `/home/patrick/src/schroedinger-0.4.0.0′
make: *** [all] Error 2
Trying to compile just the gst/ directory gives me:
gstschroenc.c:25:29: error: gst/video/video.h: No such file or directory
gstschroenc.c:121: warning: implicit declaration of function ‘GST_VIDEO_CAPS_YUV’
gstschroenc.c:121: error: initializer element is not constant
gstschroenc.c:121: error: (near initialization for ‘gst_schro_enc_sink_template.static_caps.string’)
make: *** [libgstschro_la-gstschroenc.lo] Error 1
Patrick: You need gst-plugins-base-devel installed to compile. This is due to the gstreamer plugin for Dirac shipping with Schroedinger. This plugin will eventually go into GStreamer instead, but for now it do add a GStreamer dependency.
Is there any way to set the bitrate?
No you can’t set the bitrate, the way Dirac work you can’t target a bitrate in the way you do with for instance various MPEG codecs. So in order to adjust ‘bitrate’ with Dirac you need to tweak the encoding settings and then measure what Bitrate that gives you on the other end. I don’t know enough about this to give you a full account so if you are still wondering about this and want a better explanation please email the schrodinger-devel mailing list.