View Single Post
Posts: 398 | Thanked: 301 times | Joined on Sep 2007 @ Texas
#1
Hi,

I was using tablet-encode for the first time today on a Mac and wanted to share some things that will hopefully help others save time.

I found that I had to build mencoder from source as I couldn't find an up to date binary. No big deal, default options are fine.

Perl is present by default so I didn't have to install that.

From here I tried to convert a DVD I had ripped to my hard drive. It wasn't obvious to me that I didn't need to tell mencoder to use the -dvd-device option as tablet-encode will detect this case based on the prescence of the VIDEO_TS folder. Nice touch but I missed this in the documentation.

Having figured that out, I then tried a best preset conversion and got a zero length file. There were some cryptic errors on the console but nothing too helpful. I finally tried running the same command line outside of tablet-encode and found that the lavc audio encoder wouldn't handle mp3.

It would be nicer if tablet-encode and mencoder gave the same output as it seems tablet-encode suppresses some useful information. In this case I found that I needed to install lame.

Back to google, compile from source, install lame.

Now tablet-encode finds that mencoder supports mp3lame and tries to use it. This resulted in another silent failure of mencoder for me. But I found that if I instead used lavc and told it to use libmp3lame that it then worked.

if ($options{'copy-audio'} or (($info->{aformat} || '') eq '85') && (($info->{abitrate} || 0) <= $preset->{abitrate})) {
push @params, '-oac', 'copy';
$af = '';

#} elsif (&mencoderSupports('oac')->{'mp3lame'}) {
# push @params, '-oac', 'mp3lame',
# '-lameopts', 'vbr=0:br='.$preset->{abitrate}.
# ($preset->{abitrate} < 64 ? ':mode=3' : '');
} else {
push @params, '-oac', 'lavc', '-lavcopts', 'acodec=libmp3lame:abitrate='.$preset->{abitrate};
}

Finally I had an avi and I tried several of the presets.

But not being satisfied with less than perfect, I tried 2 pass encoding and again found a silent failure. Running from the command line I found that mencoder didn't like a non zero minimum bit rate.

[mpeg4 @ 0x1023800]Warning min_rate > 0 but min_rate != max_rate isn't recommended!
[mpeg4 @ 0x1023800][lavc rc] Error: bitrate too low for this video with these parameters.
Could not open codec.

So I made the minimum rate zero.

':vrc_buf_size=450'.
#':vrc_minrate='.int($ovbitrate / 2).
':vrc_minrate='.int(0).
':vrc_maxrate='.max($ovbitrate * 1.25, 1000);

And now I can do a two pass encode.

I'm not sure why the player would require a minimum bit rate but I suppose it's possible.

Frank