Opus > Vorbis conversion w/ffmpeg Q's - eviltoast

When I use yt-dlp -x to grab audio only, the resulting opus files are often troublesome to play back in strawberry, stopping unexpectedly. They also sometimes don’t index at all, and metadata including embedded cover art don’t seem to stick.

So, since most of my library is already vorbis in OGG files, I have been converting the files, but my inexperience with audio codecs and YouTube audio formats in general is shining through. I use 320kbps, but the resulting files are typically about twice the size afterward. I’m thinking I’m probably wasting space for no reason.

What is a comparable bitrate for the OGG files for a given bitrate opus source file?

EDIT: Here is my conversion script find ./ -iname "*.opus" | parallel --load 0.9 ffmpeg -i {} -c:a libvorbis -b:a 320k "{.}.ogg"

EDIT2: Here is the updated version with a suggestion from @Supermariofan67@programming.dev find ./ -iname "*.opus" | parallel --load 0.9 ffmpeg -i {} -c:a libvorbis -q:a 6 "{.}.ogg" which results in only slightly larger files (5.4MB > 7.2MB).

  • Supermariofan67@programming.dev
    link
    fedilink
    arrow-up
    8
    arrow-down
    1
    ·
    edit-2
    5 months ago

    Before trying the conversion, I suggest checking if you are missing a library that strawberry needs (probably libopus or libopusfile). For me, strawberry reads opus files perfectly normally, so I wonder if yours is falling back to using ffmpeg or something to decide them

    If you really must convert, use Vorbis with the variable bitrate mode -q6 (or -q:a 6 option in ffmpeg) which usually ends up around 192 kbps, or push it up one more to q7 which will be a little higher. This is the level that is usually transparent, but do keep in mind that any conversion between lossy codecs is much more likely to cause perceivable loss in quality than a conversion from a lossless source. Btw opus is the direct successor to Vorbis and is superior in quality per bitrate (128k is what YouTube uses and is indistinguishable the vast majority of the time). It’s probably better than 320k mp3 at least

    • s38b35M5@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      5 months ago

      Thank you for the comment. I have libopus0 1.3.1-3 installed. While I can play back opus files in strawberry, there are many missing integrations, like metadata cover art, and also audio level normalization seems to skip my opus files completely, as evidenced by viewing scanned files in the playlist with the “integrated loudness” or “loudness range” columns visible, or in the context tab if configured to display loudness parameters. Until I can get that sorted, vorbis is my go to.

      Thanks also for the tip about variable bitrate. After reading some more about both codecs, I realized my constant br isn’t doing me any favors, and both excel when it comes to vbr. I’ll also dial back to the 6 or 7 vbr level and go from there. Honestly, my process to develop the conversion that “worked” for me was to take several 320k mp3s from way back in my collection and do a CBR conversion to vorbis that resulted in approximately the same file size, or slightly smaller. Not a very scientific benchmark. I just stuck with that when converting from opus.

      Thanks again!

      PS I added my current conversion string to my OP. I’ll share my results back here after I trial the new one.

      ETA: I think I recall now that some conversions using variable bitrate would fail because the source files didn’t match up to the bit depth or some mathematical multiple of the source bitrate or some such thing that confused me, and was fixed by switching to a constant bitrate. Course, I could have it backwards. I do that a lot these days…)

  • solrize@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    5 months ago

    Maybe use a little higher because of conversion losses but archive the opus files so you can always convert again. Sometimes you can get vorbis directly with ytdl.

    • s38b35M5@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 months ago

      Now that you mention it, I think I can tell yt-dlp to give me vorbis, but it might still entail a conversion.