Log in

View Full Version : StaxRip - 2 pass h.265, fixed bitrate?


apeg
7th January 2017, 16:02
I think my confusion comes from a lack of understanding.

I'm under the impression 2 pass does a once over on the to-be encoded file to figure out where the high action and low movement scenes are to apply a veritable bit rate?

But if that's the case, how come when 2 pass is selected an option for a fixed bitrate shows up?

In a nut shell i'm trying to figure out how to batch encode into h.265 but not disregard the original file size (or bitrate). For instance i have a 1h program that is h.264 (~2GB) high action and a h.264 (~1GB) low action.

How do i best batch encode to a ~30% reduction?

also does anyone have any insight on the advantages of 3 pass? on the encoding tests I've done its seems to have a VERY slight improvement over 2 pass @ the same file size.

Thanks,
apeg

sneaker_ger
7th January 2017, 16:08
Usually you choose the average bitrate with 2pass. If you want 30% reduction choose 30% less bitrate than the original file used (see MediaInfo of original file). Plus maybe some percent more to account for audio and container overhead bitrate. I don't know if there's a way to automate this in StaxRip.

3 pass is overkill. If you have time to waste it's better to invest it an a slower preset.

apeg
9th January 2017, 02:21
ahh it represents the average bitrate... that makes more sense.

thanks sneaker, ya i cant seem to figure out how to automate a percentage based target. I may have to live with fixed size and have the high & low actions videos meet somewhere in the middle.

Cheers,

stax76
10th January 2017, 19:18
something this special can only be done via scripting

at tools > advanced > event commands you can create a event command using the event 'After Source Loaded' and execute the command ExecuteCSharpScript using following code:

using System;
using static StaxRip.ShortcutModule;
var bitrate = Int32.Parse(MediaInfo.GetVideo(
p.LastOriginalSourceFile, "BitRate")) / 1000;
g.MainForm.tbBitrate.Text = ((int)(bitrate * 0.7)).ToString();

or if you want to save the script in a file you can save it in an csx file and use the action ExecuteScriptFile