convert audio to libopus with ffmpeg
Just -c on its own will set the encoder for all types of streams: video, audio..etc. libopus can't encode video, obviously. You need to attach a stream specifier to limit it to audio, so

ffmpeg -i abc.mkv -map 0:v -c copy -map 0:a -c:a libopus -b:a 128k xyz.mkv


See the section on stream specifiers and also this answer on how multiple codec settings in a command works.