Initial commit
[biamove.git] / doc / biamove-doc.docbook
1 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.5//EN"
2 [<!ENTITY bia "<application>BiaMovE</application>">
3 <!ENTITY author "Harishankar">
4 <!ENTITY menc "<application>Mencoder</application>">
5 <!ENTITY ffmpeg "<application>FFMpeg</application>">]>
6 <Book>
7 <title>&bia; documentation</title>
8 <bookinfo>
9 <author>
10 <firstname>&author;</firstname>
11 <surname>V</surname>
12 </author>
13 <abstract>
14 <para>A short guide to video encoding using &bia; (via &menc;)</para>
15 </abstract>
16 </bookinfo>
17 <chapter id="intro">
18 <title>Introduction</title>
19 <para>
20 &bia; (pronounced "by-a-movie") is a graphical user interface to <ulink url="http://www.mplayerhq.hu/">&menc;</ulink>, an extremely powerful and versatile cross-platform video encoding command-line utility. The problem with &menc; is that it is very complex and non-trivial to lay users.
21 </para>
22 <para>
23 Adding to the complexity is the existence/non-existence of video/audio codecs, proprietary technologies and technical terminology related to audio and video. I had a very difficult time poring over the &menc; documentation to find specific options so I decided that while I was learning how to use it, why not create a GUI front-end for it?
24 </para>
25 <sect1 id="why">
26 <title>Why &menc;</title>
27 <para>
28 Why &menc; and why not &ffmpeg;? Well, for one, &menc; can wrap around &ffmpeg; libraries using <filename>libavcodec</filename>. Secondly I found using the &ffmpeg; command line much easier than &menc; and felt that it would be better to write a GUI around &menc; instead.
29 </para>
30 </sect1>
31 <sect1 id="philosophy">
32 <title>Philosophy</title>
33 <para>
34 When I wrote &bia; I wanted to mainly explore the codec-specific options of &menc;. I did so because video/audio codecs are extremely complex creatures. I cannot pretend that I understood everything I read in the &menc; manual pages. With &bia; I've tried to hide a little bit of the complexity, but without restricting the advanced user.
35 </para>
36 <para>
37 &bia; is not a tool for the newbie though. It is just a thin (albeit useful) GUI wrapper to &menc;. It does <emphasis>not</emphasis>:
38 <itemizedlist>
39 <listitem><para>Check for the sanity of your &menc; configuration, nor does it check for codec availability on your setup.</para></listitem>
40 <listitem><para>Does not verify the sanity of your options. It just passes on your choices to the underlying &menc; command line.</para></listitem>
41 </itemizedlist>
42 </para>
43 <para>
44 Along the way, I've been bumbling along, discovering by trial and error, by experimentation and research, the proper way to mix video and audio codecs and produce valid video streams. If you are a newbie to video encoding and want to learn more, I suggest your read the section on <link linkend="videobasics">video encoding basics</link> and also study the &menc; manual pages in depth.
45 </para>
46 </sect1>
47 </chapter>
48 <chapter id="videobasics">
49 <title>Video encoding basics</title>
50 <para>
51 Before you jump into video encoding, it's useful to understand a few video (and audio) related concepts. This will help you exploit the full power of &bia; and &menc;. While most of the information here is common knowledge, I've documented some of my thoughts and discoveries in an easily accessible manner. However, before you dive in, I suggest you read the <link linkend="concepts">concepts</link> section for definitions to common terms specific to digital audio/video technologies.
52 </para>
53 <para>
54 If you are of the "just want to rip my DVDs to my iPod" type, feel free to skip this section.
55 </para>
56 <sect1 id="theproblems">
57 <title>The problems</title>
58 <para>
59 For most people simply using a command-line tool like &menc; can be a daunting task. The &menc; manual page alone is scary enough, because it documents both the player <application>MPlayer</application> as well as the encoder.
60 </para>
61 <para>
62 Apart from the command-line itself, video and audio codecs are complex and tricky subjects in themselves. Apart from the variety of standards and formats adopted by different organizations (for instance, <abbrev>MPEG-4</abbrev>, <abbrev>H.264</abbrev>, <acronym>DivX</acronym>, <acronym>XViD</acronym> etc.), there exists hundreds of specifications within even these formats. Worse still, many of these standards are not compatible with each other and many video players, particularly hardware players, do not recognize open standards codecs (the <trademark class="trade">Apple iPod</trademark> is a case in point).
63 </para>
64 <para>
65 Complicating it is the fact that not all muxers (container formats) work with all codecs and not all video and audio codecs are compatible with each other. Again, certain codecs provide very sane default parameters while other codecs require to be told exactly how to encode the underlying data. Last, but not least, some codecs are plain buggy and broken or don't work very well with &menc;.
66 </para>
67 <para>
68 &bia; cannot overcome these problems for you for the reasons already mentioned earlier. However reading these notes should help you avoid some of the pitfalls.
69 </para>
70 </sect1>
71 <sect1 id="concepts">
72 <title>Concepts</title>
73 <sect2 id="bitrate">
74 <title>Bitrate</title>
75 <para>
76 Bitrate is the number of bits which encode the information per unit of time. It is usually measured in kilobits per second (kbit/s) or megabits per second (mbit/s). In practical terms, higher the bitrate, higher the quality of the information stored (whether video or audio).
77 </para>
78 <para>
79 The best bitrate depends on several factors including desired video/audio quality versus size trade-off, the resolution of the video as well as the number of frames per second.
80 </para>
81 </sect2>
82 <sect2 id="framerate">
83 <title>Framerate</title>
84 <para>
85 Framerate is the number of frames per unit time. Frames may be audio or video frames. Think of a single frame as a still. Over the years, different video standards (<acronym>PAL</acronym>, <abbrev>NTSC</abbrev> etc.) have evolved and use standard framerates (24.997 fps, 25 fps, 29.997 fps, 30 fps etc.) but theoritically any video can have any framerate or even variable framerates.
86 </para>
87 <para>
88 The higher the framerate, smoother the animation. Usually 25 to 30 fps is more than enough for the human eye.
89 </para>
90 </sect2>
91 </sect1>
92 </chapter>
93
94 </Book>