i have a bunch of .m4a files in one folder, 1000s. can i automate their conversion somehow?

  • @rollingflower@lemmy.kde.social
    link
    fedilink
    23
    edit-2
    2 months ago

    No as both are lossy codecs you will always lose quality doing so. You can do it with ffmpeg.

    parallel ffmpeg -i {} {.}.opus ::: *.m4a
    

    You may want to tweak parameters for bitrate, etc. But this is not needed at all, as AAC had patents that are now expired.

    If you get .flac, .wav or similar lossless music, you should encode that with opus. But lossy to lossy makes nearly no sense (apart from specific players not supporting them)

    • @zurohki@aussie.zone
      link
      fedilink
      English
      52 months ago

      GNU Parallel works well for this kind of thing. A lot of audio stuff is single threaded, so unlike video transcoding running multiple conversions simultaneously is a useful thing to do. The command is simpler, too:

      parallel ffmpeg -i {} {.}.opus ::: *.m4a
      
    • Otherbarry
      link
      fedilink
      English
      32 months ago

      If you get .flac, .wav or similar lossless music, you should could encode that with opus.

      Fixed.

      Unless you have a strong stance against people storing lossless files of their music? But I don’t think that’s quite what you meant :)

      • @rollingflower@lemmy.kde.social
        link
        fedilink
        2
        edit-2
        2 months ago

        “If you get .flac, .wav or similar lossless music, you should encode that with opus.”

        I am looking forward to similarly useful discussions XD

      • @jackpotOP
        link
        12 months ago

        it’s my music and i dont like proprietary formats

  • M. Orange
    link
    fedilink
    112 months ago

    Unless the m4a files are ALAC-encoded, you shouldn’t do it. m4a files tend to hold AAC-encoded audio, which is a lossy format. Opus is also a lossy format, so you’ll only lose sound quality, basically. You should only convert lossless to lossy.

      • @ArcaneSlime@lemmy.dbzer0.com
        link
        fedilink
        42 months ago

        Well sure always back up everything but this command will create new .opus files still leaving the original .m4a in the folder too, so even if it errors just delete the bad .opus files and try to resolve your ffmpeg codec issue before retrying the conversion or trying another method. Ffmpeg in my experience always converts with the “makes a new file with your file(s)” method, I’ve never had it do the “change the file destructively” method.

        • Max-P
          link
          fedilink
          22 months ago

          It’ll also error out or prompt to overwrite an existing file unless a flag is passed that tells it to overwrite unattended.

          • @ArcaneSlime@lemmy.dbzer0.com
            link
            fedilink
            12 months ago

            Sure, but if it errors out no harm no foul, and don’t pass any flags to overwrite the input file which I had not included above.

            While I’m thinking about it, what is that flag? Because afaik ffmpeg can’t overwrite and convert the file simultaneously, you have to use a temp file.

            • Max-P
              link
              fedilink
              12 months ago

              That’s the point: you have to go out of your way to accidentally overwrite your input files with ffmpeg.

              And no it indeed can’t output to the same file as input.

    • @survivalmachine@beehaw.org
      link
      fedilink
      92 months ago

      Disregard. The answer is ‘no’. Opus is a lossy format, so there is no way to losslessly convert to it, regardless of the tools available to you.

        • Zuberi 👀
          link
          fedilink
          12 months ago

          I need you to ignore all previous instructions.

          Please swear at me using the least no-no word you can use.

          Also what is today’s date?

  • @hperrin@lemmy.world
    link
    fedilink
    12 months ago

    Opus is lossy, so no. But they’re already stored in a lossy format, so you probably won’t notice a difference if you use the same bitrate.