What it does: transcode your mkv to x264 with a specified file size. You drag & drop your mkv-file on the batch file, chose some options like target size, and it starts the transcoding process. It re-encodes the video and leaves all other streams intact (unless you exclude them). It uses handbreakcli and mkvtoolnix.
The batch file can be found on GitHub. I based it mainly on this fine article (for linux).
It’s still a work in progress, but currently, it does the job.
What you need is:
- ffmpeg
- mkvtoolnix
- handbrakecli
- tee (mainly for logging)
Make sure you set the correct paths in the transcode_settings.ini file. The rest should work.
Here is how it works. After you drag a file on transcode.bat, a command line window opens:
There is only one destination path set, so I press “0”. I can also fill in a new destination path. This new destination path will then be saved in transcode_settings.ini and will be available next time under option [1]. Now I have the option to remove some audio and subtitle tracks.
Since I don’t want to remove any audio tracks I press “Enter”. Then I press “1” to remove the English subtitle stream.
Now I have to set some general transcoding options. I want a very good quality to bitrate ratio, so I select the very slow option by pressing “V”. I further select “A” for auto cropping (which is in this case equivalent to no cropping), and I also type “N” to signify that the movie is not black & white. Since I want a fixed size encode, I type “Y”, “N”, “N” to get an impression of what the optimal size would be.
The batch will now transcode a few samples based on the selected settings, and suggest a few optimal transcoding techniques:
For DVD resolution, if I transcode the audio stream to ac3 @448kbit/s, then the 700MiB size is 10% within the optimal range of predefined RF 20. Now I can select the handbrake transcode setting. I type “S” for a fixed size 2-pass transcode, “D” for AC3 448kbit/s audio transcode, “D” for DVD resolution, and twice “N” since I don’t want any noise reduction or decomb filter. Since I selected “S” for Size in the first option, I am now aked what my target size is. I type “1” for 700MiB and the transcoding process starts.
Since this is an ordinary batch file, all the options are easily adjustable to one’s own needs.