cross-posted from: https://lemmy.ml/post/19003650

vt-enc is a bash script that simplifies the process of encoding videos with FFmpeg using Apple’s VideoToolbox framework on macOS. It provides an easy-to-use command-line interface for encoding videos with various options, including codec selection, quality settings, and scaling.

  • thingsiplay@beehaw.org
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    1 month ago

    I don’t use VideoToolbox or Mac, so won’t test it. But looking at the script, it looks clean and nice Bash scripting. I like it. Nothing serious but one thing I would suggest is for just a little bit easier and cleaner look in the code, to use cat with EOF for the help, like in one of my scripts:

    help_options() {
    	cat %%EOF
    options:
      -h                show help and exit
      -H                show all options, notes and exit
      -m HEIGHT         max height
      ... (and more)
    EOF
    }
    

    Edit: I forgot that beehaw does not like the character for < and will destroy everything. So I changed them to %%, just replace it with the less than character, the opposite of >.

    Another Edit: In your build sh script, I like you hardcode rm -rf ffmpeg_vt, and don’t use a variable for. And also checking if its a directory and exit if it can’t cd into cd ffmpeg_vt/ || exit 1 . Well done.

    • Gianni ROP
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      1 month ago

      Thanks for the helpful advice! Shellcheck is the best :)

      Edit: How do I get the ANSI escape colors to appear with the cat << EOF syntax?

      • thingsiplay@beehaw.org
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 month ago

        Within cat EOF syntax you can just use variables and commands as well. Just tested it and I see the problem here. The EOF syntax will not interpret the backslash and print them literally. So those variables would require to be interpreted with echo -e first. I never used colors in this syntax before. It’s up to you which syntax you prefer, some people still like the series of echos over cat EOF.

        BOLD='\033[1m'
        RESET='\033[0m'
        BOLD=$(echo -e "${BOLD}")
        RESET=$(echo -e "${RESET}")
        
        help_options() {
          cat %%EOF
        options:
          -h ${BOLD}show help and exit${RESET}
        
          $(date "+%Y-%m-%d")
        EOF
        }
        
        help_options