# Automated HEVC-Video-Converter

A PowerShell script for converting video to the HEVC video format using GPU hardware acceleration with NVEnc for Windows.

The main advantage is that you can (usually) save a lot of disk space this way.

![image](/attachments/985e0fa6-ec4a-4ad0-a1c7-d70f59e7a23d)

## Space Saving Examples

- 2.5GB MP4 to 500MB HEVC MP4
- 3GB MP4 to 800MB HEVC MP4

_Results vary and depend on the input video's format, bitrate etc._

## Minimum System Requirements

- Computer with at least two CPU cores and 4GB Ram
- Recent nvidia graphics card ([see: NVENC support matrix](https://developer.nvidia.com/video-encode-decode-gpu-support-matrix))
- Latest nvidia graphics drivers

## Encoding

During encoding (conversion), high **CPU** and **GPU** usage is normal. Make sure that you only run the script if no other graphics processes are running on the computer. (Example computer games)

The script converts the files next to the original with '-HEVC' at the end or by replacing the string x264 (old) in the file name with x265.
After conversion, a test of the new video file is performed to ensure its integrity.
If this test is successful, the old file is deleted.
If not, the failed conversion file is deleted and logged.

## Script Usage

1. Clone this repository on your computer
2. Download the latest NVEnc for Windows: https://github.com/rigaya/NVEnc/releases
3. Extract the files to "video-in-place-hevc-converter\encoder\" and replace the old files.
4. Edit the $videoPath variable in the PowerShell file to point to the folder of your "video files" to convert. (**ATTENTION: The ending-slash must be preserved in the path specification!**)
5. Execute **convert_Videos.ps1** to convert the video files under the specified path to HEVC.

## Extra Content (\_extras folder)

- **manually_review_videos.ps1** - Redoes the review process using the "review_needed.log" -> before useing set the "$logFolderName" variable in file.
