Mercurial > mplayer.hg
changeset 16383:3cc0d81806bf
In order to make sure A/V sync is preserved, MEncoder really has to be fed with an audio track.
Added a paragraph that explains why, and nuked all the occurences of "-nosound".
author | gpoirier |
---|---|
date | Sun, 04 Sep 2005 12:21:47 +0000 |
parents | 5dcfda676742 |
children | afe6be7b2d48 |
files | DOCS/xml/en/encoding-guide.xml |
diffstat | 1 files changed, 47 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/DOCS/xml/en/encoding-guide.xml Sun Sep 04 10:21:38 2005 +0000 +++ b/DOCS/xml/en/encoding-guide.xml Sun Sep 04 12:21:47 2005 +0000 @@ -1295,7 +1295,9 @@ algorithms were designed with the intention of recovering files with broken sync. However, in some cases they can cause unnecessary skipping and duplication of -frames, and possibly slight A/V desync, when used with proper input. +frames, and possibly slight A/V desync, when used with proper input +(off course, A/V sync issues apply only if you process or copy the +audio track while transcoding the video, which is strongly encouraged). Therefore, you may have to switch to basic A/V sync with the <option>-mc 0</option> option, or put this in your <systemitem>~/.mplayer/mencoder</systemitem> config file, as long as @@ -1363,6 +1365,43 @@ </para> <para> + Do <emphasis>not</emphasis> use <option>-nosound</option> when encoding + a file with audio, even if you will be encoding and muxing audio + separately later. + Though it may work in ideal cases, using <option>-nosound</option> is + likely to hide some problems in your encoding command line setting. + In other words, having a soundtrack during your encode assures you that, + provided you don't messages such as + <quote>Too many audio packets in the buffer</quote>, you will be able + to get proper sync. +</para> + +<para> + You need to have <application>MEncoder</application> process the sound. + You can for example copy the orignal soundtrack during the encode with + <option>-oac copy</option> or convert it to a "light" 4 kHz mono WAV + PCM with <option>-oac pcm -channels 1 -srate 4000</option>. + otherwise, in some cases, it will generate a video file that won't sync + with the audio. + Such cases are when the number of video frames in the source file do + not match up to the total length of audio frames or whenever there + are discontinuities/splices where there are missing or extra audio frames. + The correct way to handle this kind of problem is to insert silence or + cut audio at these points. + However <application>MPlayer</application> cannot do that, so if you + demux the AC3 and encode it with a separate app (or dump it to PCM with + <application>MPlayer</application>), the splices will be left incorrect + and the only way to correct them is to drop/dup video frames at the + splice. + As long as <application>MEncoder</application> sees the audio when it's + encoding the video, it can do this dropping/duping (which is usually ok + since it takes place at full black/scenechange, but if + <application>MEncoder</application> can't see the audio, it will just + process all frames as-is and they won't fit the final audio stream when + you for example merge your audio and video track into a Matroska file. +</para> + +<para> First of all, you will have to convert the DVD sound into a WAV file that the audio codec can use as input. For example: @@ -1822,7 +1861,7 @@ </para> <para> - <screen>mencoder dvd://1 -nosound -ovc lavc -ofps 24000/1001</screen> + <screen>mencoder dvd://1 -avc copy -ovc lavc -ofps 24000/1001</screen> </para> <para> @@ -1871,7 +1910,7 @@ will encode macroblocks as non-interlaced in places where there is no motion. Note that <option>-ofps</option> is NOT needed here. - <screen>mencoder dvd://1 -nosound -ovc lavc -lavcopts ildct:ilme:mbd=2</screen> + <screen>mencoder dvd://1 -avc copy -ovc lavc -lavcopts ildct:ilme:mbd=2</screen> </para></listitem> <listitem><para> Use a deinterlacing filter before encoding. There are several of @@ -1885,7 +1924,7 @@ cropping <link linkend="menc-feat-telecine-footnotes">[1]</link> and before scaling. - <screen>mencoder dvd://1 -nosound -vf pp=lb -ovc lavc</screen> + <screen>mencoder dvd://1 -avc copy -vf pp=lb -ovc lavc</screen> </para></listitem> <listitem><para> Unfortunately, this option is buggy with @@ -1910,7 +1949,7 @@ <option>-fps</option> and <option>-ofps</option> to be twice the framerate of your original source. - <screen>mencoder dvd://1 -nosound -vf tfields=2 -ovc lavc -fps 60000/1001 -ofps 60000/1001</screen> + <screen>mencoder dvd://1 -avc copy -vf tfields=2 -ovc lavc -fps 60000/1001 -ofps 60000/1001</screen> </para></listitem> <listitem><para> If you plan on downscaling dramatically, you can extract and encode @@ -1922,7 +1961,7 @@ <link linkend="menc-feat-telecine-footnotes">[1]</link> and scale appropriately. Remember that you will have to adjust the scale to compensate for the vertical resolution being halved. - <screen>mencoder dvd://1 -nosound -vf field=0 -ovc lavc</screen> + <screen>mencoder dvd://1 -avc copy -vf field=0 -ovc lavc</screen> </para></listitem> </orderedlist> </sect3> @@ -1953,7 +1992,7 @@ accurate method available for encoding both telecine and "mixed progressive and telecine". - <screen>mencoder dvd://1 -nosound -vf pullup,softskip -ovc lavc -ofps 24000/1001</screen> + <screen>mencoder dvd://1 -avc copy -vf pullup,softskip -ovc lavc -ofps 24000/1001</screen> </para> @@ -1968,7 +2007,7 @@ <option>ivtc</option>, the final result will be entirely progressive. <option>-ofps 24000/1001</option> is needed. - <screen>mencoder dvd://1 -nosound -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001</screen> + <screen>mencoder dvd://1 -avc copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001</screen> </para> </listitem>