Skip to content

[FEATURE ADD] Scan for available encoders present in the installed version of FFmpeg #10

@HunterAP23

Description

@HunterAP23

Describe the feature that is being tested/implemented
Scan for and present a list of encoders available in the installed version of FFmpeg to the user.
The scan should include checking for valid hardware for different hardware video encoders.

Get and store the FFmpeg version and feature set. This is so we can know whether the FFmpeg build being used by the user supports the encoders they wish to use, and if it supports the libvmaf filter

  • On first launch, get ffmpeg version and and enabled features with ffmpeg -version
    • On subsequent launches (or if the config file is deleted), check if ffmpeg version changes. If the version changed, then tell the user that it must go through an FFmpeg feature rescan
  • Provide option to user to scan for all encoders and test if they work on the system with their available hardware.
    • If user agrees to the FFmpeg scan, get and parse list of available video encoders with ffmpeg -encoders
      • Then in a multithreaded/asynchronous fashion, scan for all options used in all encoders by running ffmpeg -h encoder=X for all found video encoders
      • For hardware encoders, use sample video as an input to check if the encoders work with `ffmpeg -i SAMPLE -c:v ENCODER -t 0.01 -pix_fmt nv12 -f null -"
    • Otherwise block out the encoder application tab in the GUI, and throw an error when trying to encode through CLI
  • Save all this information into the TOML config file

List any relations to other issues in this repository or in other repositories
N/A

Metadata

Metadata

Assignees

Labels

CalculatorTasks relating to the calculator portion of the applicationEncoderTasks relating to the encoder portion of the applicationGeneralTasks relating to the entire applicationenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions