-
-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
configuration options to make use of external video encoders/decoders like NVENC #31
Comments
Bit of a lapse in brainulating today. Because VodBot deals in MP4's, and uses |
After thinking it over for a while, I've discovered that the above comment can be incorrect in cases where videos from multiple different source files can lead to mixing formats and bitrates, which in turn leads to potentially catastrophic video errors. It's very much worth looking into potential external hardware encoders, although configuration of these encoders in the ffmpeg commands can be tricky. Note to self: search any and all direct drop-in strings for potential security issues. |
Some useful encoding params...
This is specifically for the output, video decoders must be specified with |
https://trac.ffmpeg.org/wiki/HWAccelIntro Seems like hardware acceleration on Linux for AMD is meant to use VAAPI, as it at least has partial support. Instead of custom parameters from config it may be safer to simply provide a config variable with "nvidia-264", "amd-265", "intel-av1", etc. as options. |
So for determining decode type for using hw acceleration, ffmpeg has a side program called ffprobe that can find useful info from a file. So |
SO! VAAPI is exclusive to Linux, and in my testing it is not at all necessary for using AMD hardware acceleration on Linux, and that the FFmpeg wiki is simply out of date. I'm thinking of two config options to add, first is |
Internally, there would simply be a multidimensional dictionary that handles translating the codec and format options to their respective ffmpeg options (like "av1" and "intel" translating to "av1_qsv"). This would not be a simple string manipulation, due to the weird/different names that ffmpeg uses for codecs and formats (h265 is hevc but not by name, intel is qsv, etc). MKV's will still be used because its a great container format. |
Lastly, |
Currently VodBot simply shells out commands to ffmpeg to handle all processing. It'd be good to have some configuration flags to help enable external encoders to be used, or to just use the CPU. I currently don't know if ffmpeg does this automatically, or if it can be controlled with the functions VodBot currently uses.
The text was updated successfully, but these errors were encountered: