Hi fellow sailors,

i have lots of downloaded… ISOs… that i need to converto to save space. I would like to make them all of the same size, let’s say 720p, and same format, let’s say h265.

I am on linux and the… ISOs… are sorted into a neatly named hierarchy of sub-folderds, which i want to preserve too. What is the best tool (CLI) for the scope? I can use ffmpeg with a bash script, but is there anything better suited?

  • AnEilifintChorcra@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    16
    ·
    edit-2
    10 months ago

    I’ve been using a for loop with ffmpeg to convert to AV1

    I start in the series root folder and it iterates through each seasons subfolder

    for f in ./**/*.mkv; do
          ffmpeg -i "$f" -c:v libsvtav1 -crf 0 "{f%.*}.av1.mkv"; done
    

    Since I’m happy with the quality of everything so far, I’ve added this to the start to make it easier to delete the old files

    for f in ./**/*.mkv; do
          mv "$f" "${f%.*}.xyz.mkv"; done
    

    And at the end I’ve added this to delete the old files

    for f in ./**/*.xyz.mkv; do
          rm " $f"; done
    
      • AnEilifintChorcra@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        5
        ·
        10 months ago

        The valid CRF value range is 0-63, with the default being 30. Lower values correspond to higher quality and greater file size.

        https://trac.ffmpeg.org/wiki/Encode/AV1

        I compared a bunch of crf values, taking video quality, encode time and file size into account on a few episodes from some of my favorite shows and ended up settling on this.

        For the most part, I don’t notice a quality difference compared to my source, but it might just be because of my bad eyes or my monitor lol. But I did notice quality differences around 35 + so they were out.

        At crf 0 I’m encoding a 40 min epsisode in about 5 mins which I’m happy with, I probably could have saved time going for a higher value but most of the time I run the script when I’m sleeping so time wasn’t a big issue as long as it wasn’t taking 20+ mins to encode 1 file

        Going for 0 meant I’d have as close to the same quality as my source, using the default preset, and I didn’t notice huge file size differences between 0 and 30.

        I’ve encoded pretty much all of my TV shows now and I’ve dropped the size of my TV directory to about 1/4 of the original size so going for a higher crf value didn’t seem worth it to me, if I had noticed that my file size at crf 5 was half what it is at crf 0 then I would probably have went with crf 5

        I think its pretty subjective some people are happy with 720p and others won’t settle for less than 4k so I don’t think this would be a great solution for everyone to do but I think people should play around with different parameters to see what works best for them.