[theora] More examples?
Manuel Dahmen
manuel.dahmen at gmail.com
Tue Feb 26 12:26:33 PST 2008
On Tue, 26 Feb 2008 20:54:30 +0100
Yorn <yorn at gmx.net> wrote:
> Hi Manuel,
>
> have you had a look at wikipedia?
>
> http://en.wikipedia.org/wiki/YUV
>
> The explanation is ok, to understand the idea behind YUV (against RGB
> for example)
>
> As Monty said, the input/output format in theora is YUV420
>
> That means, the first (width x hight) bytes are representing the
> luminance (Y) of the picture. The U and V are the color(-difference)
> information to blue and red respectivly.
>
> As the human eye is more focused on luminance than on color, the
> color differences are places in the subsequent (width/2 x hight/2)
> bytes. So that the one color difference is responsible for a square
> of 2x2 luminance pixels.
>
> All information (Y, U and V) are placed in 8 Bit.
>
> All this is visualized on the wikipedia picture:
>
> http://upload.wikimedia.org/wikipedia/en/2/25/Yuv420.png
>
> Hope that helps you.
>
> - Yorn
>
> PS: If you want to convert pictures, maybe imagemagick can help you.
> (I never tried it so I do not really know)
Thank you and thanks to Monty too. Now I understand yuv coding.
For the moment I use etheora and libjpeg62 on linux, but I think after
the 1st version of my app I'll use libtheora. For extraction from
video and picture writing I use etheora a very simple function i found
in libjpeg examples, i just have to fill an array with rgb values for
each pixel. I think encoding will be simple, too.
In fact what I want to do is a library for Processing IDE
(processing.org, a java project for graphics and animation creation -
with a scripting language near from Java). My library will add some
functionality:
- displaying theora videos' frames:
e.g.:
TheoraMovie tm;
setup() {
tm = new TheoraMovie("movie.ogg", ... params);
}
draw() {
// Drawings
tm.drawNextFrame(x, y , ... other params);
// Drawing
}
tm.finish();
- encoding animation in Theora:
e.g.:
TheoraMovieMaker tmm
setup() {
tm = new TheoraMovieMaker("movie.ogg", ... params);
}
draw() {
// Drawings
tm.addFrame();
}
tmm.finish();
I think it's a good idea because Processing, which is free software,
uses Quicktime for video recording. And Quicktime is not available on
linux.
I don't know if there is an Java Library, which uses
libtheora and exposes a very simple API like this...
Thanks.
Manu.
>
> Am Montag 25 Februar 2008 13:31:37 schrieb Manuel Dahmen:
> > Hello,
> >
> > I want to make a program to extract frame from a theora movie as
> > images. I tried with the decoding example located at theora web site
> > (dump_video.c. I use it to extract a frame as yuv image but when I
> > try to convert it to ppm with yuvtoppm program i obtain a strange
> > image ( see http://poux.be/tmp/file.ppm ). I think it's a problem
> > with the byte order for yuv, but don't I don't know anything about
> > this format.
> >
> > I'd like to make a simple program to encode chosen frame into ppm.
> > Perhaps it's just ordering properly the bytes issued from the
> > write_video() function in the example and using yuvtoppm to make the
> > conversion.
> >
> > What is the yuv format issued from dump_video.c (444, 422, 420 ?)
> > and when can I find a not-too-hard-to-understand explanation of
> > this format?
>
>
>
> >
> > Thanks in advance for your answers.
> _______________________________________________
> theora mailing list
> theora at xiph.org
> http://lists.xiph.org/mailman/listinfo/theora
--
Manuel Dahmen
More information about the theora
mailing list