My cartoons are almost done. I took a look at the queue last night, and there were 99 episodes left…. 97 of them all on one machine. I still haven’t coded it so that you can (easily) reassign the episodes in the queue from one machine to another. All it would really take, though, is moving the files from one machine to another and then a funky sub-select query to update the queue. I’d go into details, but it would be extremely boring. Needless to say, I just need to get off my duff and finish polishing up the frontend admin.
Anyway, since the cartoons will finish encoding today, now I’m left with a completely different beast — live-action shows. The same generic mencoder settings I’m using for cartoons work fine on these as well, but they don’t look quite as nice. It’s probably going to be back to the drawing board for a few days as I resume testing and research.
A while back, I thought I had the perfect solution. Since all I really needed to do to fix them so that transcode could process them was fix the variable framerate, I would just encode them, copying the audio and video, and then forcing the output fps. That actually worked great until you go to encode them *after* that.
To be honest, I’ve only tested that idea on two series so far, and they were both on TV shows from Universal Studios (A-Team and Murder, She Wrote in case you were curious). I don’t know if I’ve mentioned this before, but Universal makes pretty much the worst discs out of the entire lot. The Incredible Hulk is the first series I’ve gotten from them where I could actually play all the discs. And I’m not just talking about my computer can’t play them, they send the DVD firmware for a wild loop as well.
Depending on which DVD drive I’m using, some of them might be able to actually pull the entire file off. My Pioneer and Lite-On drives work great, while the Sony one would lock up my computer completely, and I’d have to hardboot it. In fact, I’ve been pleasantly surprised by the results with my Pioneer drives. They throw a lot of error messages to the system log, but if it really freaks out, all I have to do is forcibly open the tray, and the drive actually resets itself! Normally when I have to rip a disc out myself, the drive won’t be able to read until I reboot the computer to kind of clear the drive’s head. The Pioneer drives, however, still work. After I take them out, the open/close button still works, and I’m able to keep on ripping. I’m impressed.
So, my sampling of testing the worst discs in the bunch may not be the best approach. When I tried the A-Team one, it worked fine, but you could tell where it was switching framerates. Well, I need to clarify a little bit. The first copy/copy pass where I just used -ofps, *that* video looked great. It was when I transcoded from that that it looked like crap. Part of the problem might have been that I had to reindex the video because the AVI stream was broken.
One thing I could do is do a near-lossless encode on the audio or video so it at least processes the media file, albeit lightly, so the index is working without having to rebuild it. The audio would be pretty simple … just use ‘pcm’ as the output codec, pretty much copying it as a wav file. The video would be a little harder. I suppose I could export it as an MPEG2 stream again, and see what that does. Hmm, I hadn’t thought of that. Another idea is to give up on the AC3 stream and encode to the audio to MP3 or Vorbis or something. Doing any kind of encoding will keep the index intact. I’m just trying to find a solution that will leave it as near the original as possible.
I think that broken AVI index is what’s causing the awful artifacts though. Well, either that or the fact that it’s dropping (or duplicating, depending on what your target fps is) frames on the first encode. What happens though is you take that re-indexed video with the forced standard framerate, and *then* you run it through transcode. Again, I haven’t done much testing at all, just tried a two-pass encode on two different files. On Murder, She Wrote, the second file I tested, it actually looked really good for about the first twenty minutes. Then the entire thing was offset horizontally by about 60%, and there was a nasty green overlay. I wish I still had that original transcode, I could have posted a snapshot.
Whoops … one thing I just noticed is that my little reindex script was outputting the framerate to 29.97 (30000/1001) instead of 23.97 (24000/1001). That definately wouldn’t work well. I wonder if that’s how I was doing it on those first tries. I don’t think I was, but that might explain quite a few things. Time for more testing!
Well, this post ended up much longer than I had intentioned, but it definately got the wheels turning in my head a little bit. I’ve got a few ideas now that I can’t wait to try out. There may just be a perfect solution yet. :)