如何一步到位的徹底解決eMule/eDonkey不完整avi文件的修復問題 
 

最近抽空查看了最近看到些這段時間討論eMule/eDonkey的強貼,發現問題集中在以下幾個方面:
1>eMule的參數應如何設置
2>不完整avi文件應該如何處理
3>eMule與Outpost的配合問題
4>eMule的安全問題
5>eMule對硬碟的損耗問題
其中以問題2最為突出,雖然有兄弟提出最接近的解決辦法是使用VideoLAN Client (VLC)觀看,先不論實際觀看效果如何,但我
想更多人關心的是如何從龐大的不完整avi文件中分離出可能體積非常小的有用avi片段

以前我通過反覆實驗得到的方法是:
1。用Divfix先Reindex
2。用VirtualDub開啟,scan frame for error
3。再用VirtualDub Extension Option開啟Rederive the key frame
但是這種方法的缺點是速度慢,而且不能確保100%成功

最近得到Myers大俠的指點,終於獲得一步到位的解決方法,特第一時間與CdC眾兄弟分享:
1。在eMule的Preferences_Files選框選擇Try to download the first and last chunk first,這一步雖然是Optional的,但嚴重建議設置
2。利用AviPreview執行修復
AviPreview broken.avi fixed.avi -b
看了下面這段說明,可以發現通過步驟1得到AVI的header就可以使用我提出的命令進行自動修復,否則就要人工說明AVI文件
使用的codec,解析度和其它一系列複雜參數。

USAGE:

To use AviPreview, open a command prompt in the relevant directory and type:

AviPreviewC inputfilename outputfilename [optional switches]

where:
- inputfilename is a file containing compressed video frames with an AVI structure.
- outputfilename is the name of the file you want to be created with your preview in
(don't forget to use a .avi extension!)

Optional switches (without the quotes and with spaces inbetween):
"-c (value)" = Codec that the input file is encoded with (see requirements above).
"-h (value)" = Horizontal resolution.
"-v (value)" = Vertical resolution.
"-r (value)" = Framerate to use for output (frames per second, no more than 9
significant figures).
"-k (value)" = Target keyframe for starting detection at a specified point in the movie.
"-n (value)" = Number of keyframes to extract for preview (all delta frames between
these keyframes are extracted too, so keep this low).
"-s (value)" = Size of file (in Bytes, kBytes or MBytes) to create for preview, so you
can make a predictable size output file. To specify k or M, just put a
k or M on the end of your number, e.g. 500k or 2M.
"-f" = Force resolution detection (in case resolution in the header is wrong).
"-b" = Do aggressive check for variable bitrate audio (use when constant bitrate
is erroneously detected and video playback speed is affected).
"-q" = Don't bother attempting to detect and extract audio (q for Quiet).

If no optional switches are supplied, AviPreview tries to detect the codec used. If the
codec is found, resolution detection is started at the first keyframe. Once the resolution
is found, the audio stream is detected, and then all available video and audio frames are
extracted for previewing. Watch out, the output will be nearly as big as the input file!

Currently support for video codecs other than the DivXs and XviD (using the -c switch)
is only preliminary, and resolution detection is not possible. This means that for MS v2
and other codecs, AviPreview is only useful if you have the header of the AVI file, or
already know the resolution.

Please note that -h and -v must be used as a pair. Also, only use these switches if you
know the resolution of the movie from an earlier detection run - there is no 'best fit'
resolution, and trying to specify the same resolution for all files will result in poor
results!

If you don't want to have AviPreview in the same directory as your input and output
files, just type in the full paths to the files. If the path contains spaces don't forget
to use "speech marks"!


WHAT IT DOES:

When AviPreview starts, it opens the input file and looks to see what of the original
AVI file is there. If it finds the header, you're lucky and you have the beginning of the
file. Otherwise, AviPreview will try to detect the relevant information needed to let you
preview the file. If it gets the resolution correct, write it down so you can preview the
same file again without having to detect (enter the resolution on the command line as
detailed above).

Once AviPreview knows the resolution, it extracts some frames from your input file and
saves them out to your output AVI file. When this file has been created go ahead and open
it in your favourite media player or AVI editor.


WHY IT'S NEEDED:

When the AVI header is lost, the resolution (dimensions) of the image data is lost
also. Although other more user-friendly utilities exist that allow you to play an AVI
that has lost some of its data, they all require that the AVI header is intact.
AviPreview tries to get around this issue by way of Magic.


VIDEO CODECS SUPPORTED:

- div3 (DivX3 Low Motion) - detection and extraction
- div4 (DivX3 Fast Motion) - detection and extraction
- divx (DivX4 Final) - detection and extraction
- DX50 (DivX5) - detection and extraction
- XVID (XviD) - detection and extraction
- mp42 (Microsoft MPEG4 v2) - extraction only


PS.關於其它問題的簡單解答
1>eMule的參數應如何設置
這個問的人實在太多了,其實查看我的舊貼可輕易得到答案(那片文章雖然是E文,但解釋得很詳細)
3>eMule與Outpost的配合問題
對Outpost的策略選擇Allow Most,除了暫停Log,也可以暫停部分plugin
4>eMule的安全問題
建議eMule的同時開啟Outpost+Norton,每次eMule完成後用Norton查Virus,如果有問題多為Trojan
5>eMule對硬碟的損耗問題
建議同時執行的eMule任務保持在3個以下,嚴格執行我提出的eMule參數,在發現硬碟異動時,暫停eMule,重啟電腦換IP再來