user11285: I have this linux command line app called avcon. It is used to converting files. For instance if I have a file called video.mp4 I can run avconv -i video.mp4 video.ogg and it will convert this video.mp4 to video.ogg. 
So my problem(question):
Whenever it converts any file the output file's quality is super bad compared to the original video (the input video). How can I get around with that? I mean how can I convert the file and still get the same quality?  
If this is not possible using this app. Can anybody suggest anything else for converting video files using the command line?

user11426: Use: 
$ avconv -i video.mp4 -vcodec copy video.ogg

this should work, the -vcodec copy option copies the video track from mp4 container into the ogg container.
If it does not work, see: 
$ avconv -codecs

the -codecs option to see which are supported by your program. That depends on the libraries linked after compilation of the source.
See the manual: 
$ man avconv

for more information on options like -r (video bit rate option).
That option allows you to select a better bit rate for video, a similar one to the source video may be a good choice, if it does not works fine, try a higher rate.
Although avconv is a development derived from a fork of FFmpeg it can still lack features and bug fixes that are present in ffmpeg.

user1760: Get ffmpeg
Download a recent build of ffmpeg. Binaries for Windows, Linux, and OS X are available on the FFmpeg Download page. Development is very active and there is no need to use buggy avconv (note that this answer was written for ffmpeg, so I'm not sure if any examples will work with avconv).
Theora video & Vorbis audio in OGG
Theora is old and has been superseded in many cases by VP8/VP9 video in WebM (see example below), so there are few reasons to use Theora in OGG/OGV.
ffmpeg -i input -c:v libtheora -q:v 5 -c:a libvorbis -q:a 5 output.ogv


-q:v – video quality. Range is 0-10, where 10 is highest quality. 5-7 is a good range to try. If you omit -q:v then ffmpeg will use the default of -b:v 200k which will most likely provide a poor quality output, and libtheora may drop/skip frames if the bitrate is too low. 
-q:a – audio quality. Range is 0-10, where 10 is highest quality. 3-6 is a good range to try. Default is -q:a 3. 

Adapted from FFmpeg Wiki: A Brief Theora and Vorbis Encoding Guide.
VP8 video & Vorbis audio in WebM
ffmpeg -i input -c:v libvpx -qmin 0 -qmax 50 -crf 5 -b:v 1M -c:a libvorbis -q:a 5 output.webm


See FFmpeg Wiki: VP8 Encoding Guide and VP8 Encode Parameter Guide to optimize your command.
If you want to encode VP9 video, then use -c:v libvpx-vp9. It is currently a slow encoder.


11285: <p>I have this linux command line app called <a href="http://libav.org/avconv.html" rel="nofollow">avcon</a>. It is used to converting files. For instance if I have a file called video.mp4 I can run <code>avconv -i video.mp4 video.ogg</code> and it will convert this <code>video.mp4</code> to <code>video.ogg</code>. </p>

<p>So my problem(question):
Whenever it converts any file the output file's quality is super bad compared to the original video (the input video). How can I get around with that? I mean how can I convert the file and still get the same quality?  </p>

<p>If this is not possible using this app. Can anybody suggest anything else for converting video files using the command line?</p>
 11426: <p>Use: </p>

<pre><code>$ avconv -i video.mp4 -vcodec copy video.ogg
</code></pre>

<p>this should work, the <code>-vcodec copy</code> option copies the video track from mp4 container into the ogg container.</p>

<p>If it does not work, see: </p>

<pre><code>$ avconv -codecs
</code></pre>

<p>the <code>-codecs</code> option to see which are supported by your program. That depends on the libraries linked after compilation of the source.</p>

<p>See the manual: </p>

<pre><code>$ man avconv
</code></pre>

<p>for more information on options like <code>-r</code> (video bit rate option).</p>

<p>That option allows you to select a better bit rate for video, a similar one to the source video may be a good choice, if it does not works fine, try a higher rate.</p>

<p><em>Although <code>avconv</code> is a development derived from a fork of FFmpeg it can still lack features and bug fixes that are present in <code>ffmpeg</code>.</em></p>
 1760: <h1>Get <code>ffmpeg</code></h1>

<p>Download a recent build of <code>ffmpeg</code>. Binaries for Windows, Linux, and OS X are available on the <a href="http://ffmpeg.org/download.html" rel="nofollow">FFmpeg Download</a> page. Development is very active and there is no need to use buggy <code>avconv</code> (note that this answer was written for <code>ffmpeg</code>, so I'm not sure if any examples will work with <code>avconv</code>).</p>

<h1>Theora video &amp; Vorbis audio in OGG</h1>

<p>Theora is old and has been superseded in many cases by VP8/VP9 video in WebM (see example below), so there are few reasons to use Theora in OGG/OGV.</p>

<pre><code>ffmpeg -i input -c:v libtheora -q:v 5 -c:a libvorbis -q:a 5 output.ogv
</code></pre>

<ul>
<li><p><code>-q:v</code> – video quality. Range is 0-10, where 10 is highest quality. 5-7 is a good range to try. If you omit <code>-q:v</code> then <code>ffmpeg</code> will use the default of <code>-b:v 200k</code> which will most likely provide a poor quality output, and libtheora may drop/skip frames if the bitrate is too low. </p></li>
<li><p><code>-q:a</code> – audio quality. Range is 0-10, where 10 is highest quality. 3-6 is a good range to try. Default is <code>-q:a 3</code>. </p></li>
</ul>

<p>Adapted from <a href="https://trac.ffmpeg.org/wiki/TheoraVorbisEncodingGuide" rel="nofollow">FFmpeg Wiki: A Brief Theora and Vorbis Encoding Guide</a>.</p>

<h1>VP8 video &amp; Vorbis audio in WebM</h1>

<pre><code>ffmpeg -i input -c:v libvpx -qmin 0 -qmax 50 -crf 5 -b:v 1M -c:a libvorbis -q:a 5 output.webm
</code></pre>

<ul>
<li><p>See <a href="http://trac.ffmpeg.org/wiki/Encode/VP8" rel="nofollow">FFmpeg Wiki: VP8 Encoding Guide</a> and <a href="http://www.webmproject.org/docs/encoder-parameters/" rel="nofollow">VP8 Encode Parameter Guide</a> to optimize your command.</p></li>
<li><p>If you want to encode VP9 video, then use <code>-c:v libvpx-vp9</code>. It is currently a slow encoder.</p></li>
</ul>
