用 mencoder 重建索引

MythTV / MythDVD movie ripping / playback problem (Solved!)

I have used Myth to rip a large number of my DVD's to AVI files (using either the Excellent or Good setting).  Now that I am starting to play back the movies, I have found something that is very troubling.

On many of the movies, the first 95% of the movie (e.g. 1:13 min of a 1:26 movie) plays flawlessly. However, near the end of the movie, the audio and video starts to speed up and get jerky. (Audio/video sync is also thrown off.)

I have copied the files to a different box and played them with totem and mplayer and was happy to find that the files appear to be just fine. (or maybe mplayer/totem deal with them better?)
 
It seems that the problem is with the mythv internal video player.

After a random sample of movies, I'd say that at least 50-70% (but not all!) of the movies have this problem. The problem survives reboots of the mythtv box.

I am using Xvmc for HDTV playback (with no problems), (OSD is B&W) but not for the internal video player. (OSD is in full color)

Even if I ESC from the movie and then go back into it (the internal player resumes at the same spot) the problems continue as before. If I rewind the movie, it works correctly before the "problem starting spot" but when it hits that spot, the problems resume.

I suspect it may be a problem that is caused by the MythTV ripping system, as I have re-encoded movies using mencoder that then play back correctly in the internal video player.

I was able to solve this problem (which appears to be a problem in the index of the avi files generated by MythDVD) by using mencoder to re-create the index for all of my video files.

  mencoder -idx MOVIE_TO_FIX.avi -ovc copy -oac copy -o FIXED_OUTPUT.avi

I created the following script to go through my video files and re-create the index (it takes about a minute per movie). The script will only process a movie one time (keeping track by creating a marker file in the hidden .fixed_list directory) so it's safe to run every time you rip new DVD's without repeating work needlessly:

 #!/bin/bash

 

for movie in *
do
 if [ -f ".fixed_list/$movie.fixed" ]
 then
   echo "$movie already fixed"
 else
   echo "Processing $movie"
   mencoder -idx $movie -ovc copy -oac copy -o temp_file.avi
   mv temp_file.avi $movie
   touch ".fixed_list/$movie.fixed"
 fi
done

Movies with a problem generated the following message when re-creating the index:

 ODML: Starting new RIFF chunk at 1023MB.m:

I'm not sure what a new RIFF chunk is, but apparently the built in MythDVD encoder is not producing them correctly. 

你可能感兴趣的:(F#,bash,UP,Go)