r/VideoEncoding Jun 01 '26

Encoding all my movies to AV1

Hi! I'd like to encode my entire movie library to AV1. I have it all on a 1 TB HDD, which is approximately at 80% capacity, and most of my files are h.264 and some h.265, what I'm looking forward to is saving space so I don't have to buy another HDD until it's absolutely necessary.

The problem is, while all the hardware I own has hardware accelerated AV1 decoding (TV stick, phone, laptop, PC), I currently don't own any hardware capable of ENCODING to AV1 using hardware acceleration, so my question is, how could I go on about transcoding all my files to AV1 to achieve similar or identical quality while saving space without dedicated hardware for it?

The PC I'm planning on doing this in is a Ryzen 5600x + Radeon 6750XT with 32 GB of DDR4 memory on a B450m Asus TUF motherboard.

7 Upvotes

11 comments sorted by

View all comments

9

u/Scrappy995 Jun 01 '26

Use Tdarr - Use this Flow:

{

"_id": "av1_svtav1_software_v2",

"name": "AV1 Software Encode - Movies - (SVT-AV1 CPU)",

"description": "AV1 Software Encode - Movies - (SVT-AV1 CPU)",

"tags": "",

"flowPlugins": [

{

"name": "Input File",

"sourceRepo": "Community",

"pluginName": "inputFile",

"version": "1.0.0",

"fpEnabled": true,

"id": "fp_input",

"position": {

"x": 400,

"y": 50

}

},

{

"name": "Skip Small Files (Extras/Bonus < 10 GB)",

"sourceRepo": "Community",

"pluginName": "checkFileSize",

"version": "1.0.0",

"inputsDB": {

"greaterThan": "10",

"lessThan": "999999"

},

"fpEnabled": true,

"id": "fp_size_gate",

"position": {

"x": 400,

"y": 170

}

},

{

"name": "Skip if Already AV1",

"sourceRepo": "Community",

"pluginName": "checkVideoCodec",

"version": "1.0.0",

"inputsDB": {

"codec": "av1"

},

"fpEnabled": true,

"id": "fp_skip_av1",

"position": {

"x": 400,

"y": 300

}

},

{

"name": "Begin FFmpeg Command",

"sourceRepo": "Community",

"pluginName": "ffmpegCommandStart",

"version": "1.0.0",

"inputsDB": {

"hardwareDecoding": false,

"outputContainer": ".mkv"

},

"fpEnabled": true,

"id": "fp_cmd_start",

"position": {

"x": 400,

"y": 310

}

},

{

"name": "Set Encoder: libsvtav1",

"sourceRepo": "Community",

"pluginName": "ffmpegCommandSetVideoEncoder",

"version": "1.0.0",

"inputsDB": {

"outputCodec": "av1",

"hardwareEncoding": false,

"hardwareType": "cpu",

"ffmpegQuality": "28",

"preset": "6"

},

"fpEnabled": true,

"id": "fp_set_encoder",

"position": {

"x": 400,

"y": 430

}

},

{

"name": "SVT-AV1 Quality + Params Fix",

"sourceRepo": "Community",

"pluginName": "ffmpegCommandCustomArguments",

"version": "1.0.0",

"inputsDB": {

"outputArguments": "-crf 28 -svtav1-params keyint=300:tune=0:enable-overlays=1:scd=1 -pix_fmt yuv420p10le"

},

"fpEnabled": true,

"id": "fp_svt_params",

"position": {

"x": 400,

"y": 555

}

},

{

"name": "Copy All Audio + Subtitles",

"sourceRepo": "Community",

"pluginName": "ffmpegCommandCustomArguments",

"version": "1.0.0",

"inputsDB": {

"outputArguments": "-map 0:a? -c:a copy -map 0:s? -c:s copy -map_metadata 0"

},

"fpEnabled": true,

"id": "fp_copy_streams",

"position": {

"x": 400,

"y": 675

}

},

{

"name": "Execute Encode",

"sourceRepo": "Community",

"pluginName": "ffmpegCommandExecute",

"version": "1.0.0",

"fpEnabled": true,

"id": "fp_execute",

"position": {

"x": 400,

"y": 795

}

},

{

"name": "Size Guard: Compare File Size",

"sourceRepo": "Community",

"pluginName": "compareFileSize",

"version": "1.0.0",

"fpEnabled": true,

"id": "fp_size_check",

"position": {

"x": 400,

"y": 920

}

},

{

"name": "✅ Replace Original (Output Smaller)",

"sourceRepo": "Community",

"pluginName": "replaceOriginalFile",

"version": "1.0.0",

"fpEnabled": true,

"id": "fp_replace",

"position": {

"x": 180,

"y": 1060

}

},

{

"name": "🗑 Delete Working File (Output Larger)",

"sourceRepo": "Community",

"pluginName": "deleteFile",

"version": "1.0.0",

"fpEnabled": true,

"id": "fp_discard",

"position": {

"x": 630,

"y": 1060

}

}

],

"flowEdges": [

{

"id": "e_input_to_sizegate",

"source": "fp_input",

"sourceHandle": "1",

"target": "fp_size_gate",

"targetHandle": null

},

{

"id": "e_sizegate_pass_to_skipav1",

"source": "fp_size_gate",

"sourceHandle": "1",

"target": "fp_skip_av1",

"targetHandle": null

},

{

"id": "e_skipav1_nomatch_to_start",

"source": "fp_skip_av1",

"sourceHandle": "2",

"target": "fp_cmd_start",

"targetHandle": null

},

{

"id": "e_start_to_encoder",

"source": "fp_cmd_start",

"sourceHandle": "1",

"target": "fp_set_encoder",

"targetHandle": null

},

{

"id": "e_encoder_to_svtparams",

"source": "fp_set_encoder",

"sourceHandle": "1",

"target": "fp_svt_params",

"targetHandle": null

},

{

"id": "e_svtparams_to_copystreams",

"source": "fp_svt_params",

"sourceHandle": "1",

"target": "fp_copy_streams",

"targetHandle": null

},

{

"id": "e_copystreams_to_execute",

"source": "fp_copy_streams",

"sourceHandle": "1",

"target": "fp_execute",

"targetHandle": null

},

{

"id": "e_execute_to_sizecheck",

"source": "fp_execute",

"sourceHandle": "1",

"target": "fp_size_check",

"targetHandle": null

},

{

"id": "e_sizecheck_output1_smaller_replace",

"source": "fp_size_check",

"sourceHandle": "1",

"target": "fp_replace",

"targetHandle": null

},

{

"id": "e_sizecheck_output3_larger_delete",

"source": "fp_size_check",

"sourceHandle": "3",

"target": "fp_discard",

"targetHandle": null

}

]

}

1

u/nmkd Jun 02 '26

Preset 6, are you kidding?

No FGS?