Fairly major revision. Been using this locally for months on HEVC & AV1 encodes and not had any issues currently.
I can't verify if my 4k HDR & DoVi setups are 'actually' working for real but they seem to look correct & I've not had errors for encodes or on Plex.
With AV1 support, admittedly this may be confusing since the plugin ID still specifies HEVC but I have updated the name. I didn't want to split this into a new plugin since the logic is pretty much exactly the same & I don't want to maintain two almost identical plugins)
- Adding AV1 encode support, added as drop down selector (default is still hevc)
- Logic should pick valid video profile for either encoder setting
- HDR detection & encode improvement (Appears to work on my HDR content & DoVi)
- Added target bitrate modifier so it's possible to tune the bitrate (useful for AV1 to crunch it down further)
- Better bitrate detection, should error if it can't be found at all
- Mac support is over. Doubt anyone was really using it on Mac but it's not worth touching further. Plugin should still use videotoolbox when on Mac but I won't be fixing up errors.
- Cleaned up descriptions & info logs where reasonable to try and clarify what's happening
- Tests updated & added new test for a fully loaded AV1 setup
- Added HDR support. Tested as working but can have issues. Warning applied
- Made duration check a bit better with try statement
- Cleaned up how the info log was used so it's more consistent & fixed up trailing spaces & line breaks
- Initial test fix up but more will be needed
- Corrected some Mac/Darwin support, incorrect 10 bit options (In future will remove videotoolbox support and split into separate plugin)
- Improved video check loops, some logic did seem to not correctly stop when needed & the remove stream option had the wrong syntax so probably wouldn't have worked
Ended up finding more cases where errors would pop up and looks to all to do with HW decode.
- Now ensured that unless the incoming format is in the white list then sw decode is done instead
- Correctly removed -hwaccel cmd when sw decode happens preventing accidental hwdecode
- Specify the format to decode when using sw
- renamed oldformat var to match its use case (now swDecode)
- Info log updated with when SW decode happens and will report which incoming format caused it
- Removed mkvpropedit remux behaviour - No longer seems to be needed (It's upto the user to have the mkvpropedit option enabled on Tdarr side)
- Corrected parts of the ffmpeg cmd to define the output format based on container
- Updated win32 hwaccel cmd to use a more correct type
- Enabled hwupload & hwupload frames
- Added check to ensure video bitrate is actually a number
- Updated QSV decoders since VC1 & VP8 aren't supported on latest hardware (according to wikipedia...) & AV1 added
- Added new video codec check which enables protection for 10 bit encoding, basically trying to encode from something like mpeg4 into 10bit could cause issues
Fixed up an issue with HW decoding. If the -hwaccel qsv is set then ffmpeg seems to automatically enable hw decoding even when we don't want it. There's been several reports of issues with certain files & I think this is the cause. I've tested and that appears to resolve the transcode error