Introduction
Theora video coding standard released in 2008 by Xiph.Org Foundation, and its specifications are here . Theora’s code sources are here .
Notice that the ffmpeg tool by default supports Theora encoding ‘-c:v libtheora‘ (provided that in the configuration of ffmpeg set –enable-libtheora), but the output stream is not played, ffplay reports the errors: error in unpack_block_qpis
Theora is a VLC coding, DCT-based compression scheme, like most common video codecs.
As reported in the article “COMPARISON OF OPEN AND FREE VIDEO COMPRESSION SYSTEMS A Performance Evaluation”, Till Halbach, 2009, H264 and Dirac significantly outperform Theora:
Interesting paper on Ogg Theora and H264 “Ogg Theora vs. H.264: head to head comparisons” by Jan Ozer
Despite Ogg Theora is inferior to h264 and Daala, i believe that for some marginal applications Ogg Theora is still attractive due to its simplicity and patent-free.
How Compile Theora Codec in Windows
First of all you need to get Ogg and Vorbis sources , you can unpack tar.gz with a free 7z tool .
Under libtheora-1.1.1\include\ create the folder ‘vorbis‘ and copy codec.h , vorbisenc.h and vorbisfile.h from libvorbis-1.3.3\include\vorbis\ .
Building Vorbis Static Library
Open Win32 solution vorbis_static.sln in libvorbis-1.3.3\win32\VS2010 (if you have more advanced Visual Studio apply retargetting). Build libvorbis_static.lib in Win32 Release and copy this library to libtheora-1.1.1\win32\VS2008\Win32\Release
Building Ogg Static Library
Open Win32 solution libogg_static.sln in ogg\win32\VS2010 (if you have more advanced Visual Studio apply retargetting). Build libogg_static.lib in Win32 Release and copy this library to libtheora-1.1.1\win32\VS2008\Win32\Release
Building Theora Encoder
Open Win32 solution libtheora_static.sln in libtheora-1.1.1\win32\VS2008 (if you have more advanced Visual Studio apply retargetting).
In encoder_example.c remove ‘static’ before the function ‘rint’
double rint(double x)
{
if (x < 0.0)
return (double)(int)(x – 0.5);
else
return (double)(int)(x + 0.5);
}
Build the project encoder_example_static in Win32 Release/
you get libtheora-1.1.1\win32\VS2008\Win32\Release\encoder_example_static.exe , the encoder_example_static.exe is statically built and hence can be moved to any place.
How Run Theora Codec (encoder_example_static)
encoder_example_static.exe gets as input only y4m files, if you have yuv420p file you need to convert it to y4m format with ffmpeg (for example) as follows:
ffmpeg -s 352×288 -i test_cif.yuv -vsync 0 -y test_cif.y4m
encoder_example_static.exe -h provides full help.
Example [encoding y4m-file with the frame rate 30 fps (-f 30 -F 1), with key frame distance 30 frames and video quality middle (the quality is in the range 0..10)]
encoder_example_static.exe -o test.ogg -f 30 -F 1 -k 30 -v 5 test_cif.y4m
23+ years’ programming and theoretical experience in the computer science fields such as video compression, media streaming and artificial intelligence (co-author of several papers and patents).
the author is looking for new job, my resume
I do agree with all of the ideas you have presented in your post. They are really convincing and will certainly work. Still, the posts are too short for starters. Could you please extend them a bit from next time? Thanks for the post.
Ogg is not so popular standard to elaborate it
I like this website because so much utile material on here : D.
Thanks for your blog, nice to read. Do not stop.
Very nice post and straight to the point. I don’t know if this is in fact the best place to ask but do you folks have any thoughts on where to employ some professional writers? Thanks in advance 🙂
many medium-size and big-size hi=tech companies have technical writers in their staff.
It is appropriate time to make some plans for the future and it is time to be happy. I have read this post and if I could I want to suggest you some interesting things or suggestions. Maybe you can write next articles referring to this article. I wish to read even more things about it!
Wonderful work! This is the type of information that should be shared around the web. Shame on Google for not positioning this post higher! Come on over and visit my website . Thanks =)
I regard something truly special in this web site.
Please let me know if you’re looking for a article author for your weblog. You have some really good articles and I think I would be a good asset. If you ever want to take some of the load off, I’d really like to write some content for your blog in exchange for a link back to mine. Please send me an e-mail if interested. Kudos!
Great blog here! Also your site loads up very fast! What web host are you using? Can I get your affiliate link to your host? I wish my site loaded up as quickly as yours lol
I’ve been exploring for a bit for any high-quality articles or blog posts on this kind of area . Exploring in Yahoo I at last stumbled upon this site. Reading this info So i’m happy to convey that I have an incredibly good uncanny feeling I discovered just what I needed. I most certainly will make sure to do not forget this site and give it a look on a constant basis.
Hiya, I’m really glad I have found this info. Nowadays bloggers publish only about gossips and net and this is actually frustrating. A good site with exciting content, that’s what I need. Thank you for keeping this website, I will be visiting it. Do you do newsletters? Can’t find it.
at the main page there is Newsletter button
I’d have to examine with you here. Which isn’t something I usually do! I enjoy reading a submit that can make people think. Also, thanks for permitting me to comment!
Really nice design and style and wonderful articles, nothing at all else we need : D.
Hi there! This post couldn’t be written any better! Reading through this post reminds me of my previous room mate! He always kept talking about this. I will forward this article to him. Pretty sure he will have a good read. Thank you for sharing!
It is truly a great and helpful piece of information. I?¦m satisfied that you just shared this helpful information with us. Please keep us informed like this. Thanks for sharing.
Sweet web site, super design and style, real clean and employ friendly.
Thanks for a marvelous posting! I genuinely enjoyed reading it, you may be a great author.I will always bookmark your blog and will often come back down the road. I want to encourage you to ultimately continue your great work, have a nice evening!
Thank you for sharing superb informations. Your web site is so cool. I am impressed by the details that you¦ve on this web site. It reveals how nicely you understand this subject. Bookmarked this website page, will come back for extra articles. You, my friend, ROCK! I found just the information I already searched everywhere and just couldn’t come across. What a perfect website.