handbrake-loader v1.0.2
handbrake-loader
Use HandBrake to Encode/Transcode Video files with Webpack.
Install
$ npm install handbrake-loader --saveUsage
In your webpack.config.js add the handbrake-loader, chained with the file-loader, url-loader or raw-loader:
{
test: /\.(mov|mkv|avi|mp4)$/,
use: [
/** file-loader | url-loader | raw-loader **/
{ loader: 'file-loader' },
{
loader: 'handbrake-loader',
options: {
enable: process.env.NODE_ENV === 'production',
format: 'mp4',
srtFile: path.resolve(__dirname, 'sample-files/subtitle.srt'),
srtLang: 'eng',
srtBurn: 1,
preset: 'Very Fast 1080p30',
optimize: true
}
}
]
}Options
preset string
Select preset by name (case-sensitive) Enclose names containing spaces in double quotation marks (e.g. "Preset Name")
preset-import-file filespec
Import presets from a json preset file. 'filespec' may be a list of files separated by spaces, or it may use shell wildcards.
preset-export string
Create a new preset from command line options and write a json representation of the preset to the console or a file if '--preset-export-file' is specified. The required argument will be the name of the new preset.
preset-export-file filename
Write new preset generated by '--preset-export' to file 'filename'.
preset-export-description string
Add a description to the new preset created with '--preset-export'
no-dvdnav
Do not use dvdnav for reading DVDs
no-opencl
Disable use of OpenCL
title number
Select a title to encode (0 to scan all titles only, default: 1)
min-duration
Set the minimum title duration (in seconds). Shorter titles will be ignored (default: 10).
scan
Scan selected title only.
main-feature
Detect and select the main feature title.
chapters string
Select chapters (e.g. "1-3" for chapters 1 to 3 or "3" for chapter 3 only, default: all chapters)
angle number
Select the video angle (DVD or Blu-ray only)
previews number:boolean
Select how many preview images are generated, and whether to store to disk (0 or 1). (default: 10:0)
start-at-preview number
Start encoding at a given preview.
start-at string:number
Start encoding at a given duration (in seconds), frame, or pts (on a 90kHz clock) (e.g. duration:10, frame:300, pts:900000)
stop-at string:number
Stop encoding at a given duration (in seconds), frame, or pts (on a 90kHz clock) (e.g. duration:10, frame:300, pts:900000)
format string
Select container format av_mp4, av_mkv or mp4, mkv
markers
Add chapter markers
no-markers
Disable preset chapter markers
optimize
Optimize MP4 files for HTTP streaming (fast start, s.s. rewrite file to place MOOV atom at beginning)
no-optimize
Disable preset 'optimize'
ipod-atom
Add iPod 5G compatibility atom to MP4 container
no-ipod-atom
Disable iPod 5G atom
use-opencl
Use OpenCL where applicable
encoder string
Select video encoder: x264, x265, mpeg4, mpeg2, VP8, VP9, theora
encoder-preset string
Adjust video encoding settings for a particular speed/efficiency tradeoff (encoder-specific)
- x264
- x265
ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow,placebo
- VP8
- VP9
veryfast,faster,fast,medium,slow,slower,veryslow
encoder-tune string
Adjust video encoding settings for a particular type of source or situation (encoder-specific)
- x264
film,animation,grain,stillimage,psnr,ssim,fastdecode,zerolatency
- x265
psnr,ssim,grain,zerolatency,fastdecode
encopts string
Specify advanced encoding options in the same style as mencoder (all encoders except theora): option1=value1:option2=value2
encoder-profile string
Ensure compliance with the requested codec profile (encoder-specific)
- x264
auto,high,main,baseline
- x265
auto,main,mainstillpicture
encoder-level string
Ensures compliance with the requested codec level (encoder-specific)
- x264
auto,1.0,1b,1.1,1.2,1.3,2.0,2.1,2.2,3.0,3.1,3.2,4.0,4.1,4.2,5.0,5.1,5.2
quality float
Set video quality (e.g. 22.0)
vb number
Set video bitrate in kbit/s (default: 1000)
two-pass
Use two-pass mode
no-two-pass
Disable two-pass mode
turbo
When using 2-pass use "turbo" options on the first pass to improve speed (works with x264 and x265)
no-turbo
Disable 2-pass mode's "turbo" first pass
rate float
Set video framerate (5,10,12,15,20,23.976,24,25,29.97,30,48,50,59.94,60,72,75,90,100,120 or a number between 1 and 1000). Be aware that not specifying a framerate lets HandBrake preserve a source's time stamps, potentially creating variable framerate video
vfr, cfr, pfr
Select variable, constant or peak-limited frame rate control. VFR preserves the source timing. CFR makes the output constant rate at the rate given by the -r flag (or the source's average rate if no -r is given). PFR doesn't allow the rate to go over the rate specified with the -r flag but won't change the source timing if it's below that rate. If none of these flags are given, the default is --pfr when -r is given and --vfr otherwise
More at https://handbrake.fr/docs/en/1.0.0/cli/cli-guide.html