Powershell Script for FFMpeg and FFProbe - 02/05/2018 11:33 EDT

2. If ffmpeg not installed or not most current, download and install the latest version.

3. User specifies location or locations of videos to analyze and convert. (could just be variables in script or prompt the user with location(s) selected last time)

4. Script finds all videos that are not already in optimal format (x265 or hevc codec in an .mp4 container, with reasonably low bitrates for audio and video) and orders them from largest to smallest files so that the videos with the largest file size are converted first.

6. Ensure that ffmpeg uses the hevc_nvenc codec to maximize the speed of conversion, but set the preset to slow and ensure it is Main 10 profile

7. After conversion (saving the new video to the same directory as the source file), double check that the resulting movie is of the same duration, dimensions and contains the relevant audio, video, and subtitle tracks that are expected

8. If the file conversion is successful, delete the original file

9. Rename any other .jpg, .nfo, .sub such files that matched the name of the original file, to the new file name

Additional features:

Leveraging powershell's parallel function or something similar, keep two ffmpeg conversion threads going at all times to maximize utilization of the system as the GTX 1080 card can handle 2 hevc_nvenc threads at the same time.

I look to you as the developer to make recommendation to suggest a more optimal solution beyond what I am literally asking for if you what I am asking for is not perhaps the right way to look at this challenge.

I'm asking for powershell because I'd like the ability to examine the code, tweak it over time, and easily customize it in the future using the foundation of what you develop. I've looked at and tried dozens of the open source, as well as paid solutions to this challenge, but find under Windows 10 the quality of most to be lacking severely in small, but significant ways. StaxRip is great, MyFFmpeg is good. I've always been a HUGE fan of HandBrake (and more specifically HandBrakeCLI), and have used various wrapper scripts I've found on GitHub, but none are as simple, effective, and easy to update and tweak as I would like.