I've got some OPUS files I've created with FFMPEG on Linux (from MP3 originals I've deleted to save storage space). I'd like to make them playable on a Mac and, if possible, on an iPhone via iTunes. As far as I know Apple hardware and software (not the web browsers though) support OPUS but don't support its native OGG container format and need it to be contained in Core Audio files instead. How do I perform this conversion on Linux and/or on MacOS?

I know I can just convert back to MP3 or AAC and know how to do this but I'm curious about creating Core Audio files without re-encoding the actual audio data.

1 Answer 1


ffmpeg should do this for you, without re-encoding:

ffmpeg -i in-file.opus -c:a copy out-file.caf

That works here, but I don't have a Mac OS X box to test the resulting file on.

PS: You really ought not convert between lossy formats. Losses always get worse.

  • Did anyone get this working on windows? the caf file I generated on windows doesn't play on MAC. I still have to use MAC's afconvert -f caff -d opus -b 64000 xxx.mp3 xxx.caf
    – xinqiu
    Mar 19, 2021 at 2:31
  • FYI does not work on Big Sur: Output file #0 does not contain any stream
    – lzap
    May 3, 2021 at 12:23
  • @xinqiu @lzap ffmpeg and opusenc by default creates VBR opus streams for better quality/bitrate tradeoff. But macOS does not support any VBR. Use -vbr off in ffmpeg and --hard-cbr in opusenc to make it okay for mac. Yes, that would be another step of conversion and more generation loss. Jul 12, 2023 at 13:09
  • @Minye-Wang, Thanks, with -vbr off , I get caf working in IOS/MAC OS!
    – xinqiu
    Jul 17, 2023 at 1:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .