audioffmpegoggopus

Convert from opus to ogg file using ffmpeg [python soundfile]


I'm using python soundfile to audio files in one of my projects. I have a dataset that contains opus files.

python soundfile can not read opus files directly but can read ogg files. (https://github.com/bastibe/python-soundfile/issues/252)

How can I convert all the opus files to ogg files with ffmpeg?

I have tried the following command,

 ffmpeg -i test_file_2.opus -c:a libvorbis -b:a 16k test_file_2.ogg

But I get an error,

ffmpeg version 4.3 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 7.3.0 (crosstool-NG 1.23.0.449-a04d0)
  configuration: --prefix=/opt/conda --cc=/opt/conda/conda-bld/ffmpeg_1597178665428/_build_env/bin/x86_64-conda_cos6-linux-gnu-cc --disable-doc --disable-openssl --enable-avresample --enable-gnutls --enable-hardcoded-tables --enable-libfreetype --enable-libopenh264 --enable-pic --enable-pthreads --enable-shared --disable-static --enable-version3 --enable-zlib --enable-libmp3lame
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
[ogg @ 0x55bad6b9cbc0] 543 bytes of comment header remain
Input #0, ogg, from 'test_file_2.opus':
  Duration: 00:00:14.10, start: 0.000000, bitrate: 34 kb/s
    Stream #0:0: Audio: opus, 48000 Hz, mono, fltp
    Metadata:
      album           : Onder Moeders Vleugels
      ENCODER_OPTIONS : --quiet
      artist          : Louisa May Alcott
      title           : 02 - Een vroolijk kerstfeest
      encoder         : opusenc from opus-tools 0.1.10;Lavf57.83.100
Unknown encoder 'libvorbis'


Solution

  • Unknown encoder 'libvorbis'

    Your ffmpeg does not have libvorbis support. It is missing --enable-libvorbis in the configure line. libvorbis is an audio encoder that outputs the Vorbis audio format. Vorbis is the audio format that is typically used in the OGG/OGA container. libvorbis is the recommended encoder for Vorbis audio.

    Find a new version/package of ffmpeg that has --enable-libvorbis or re-compile ffmpeg and include this.

    Experimental vorbis encoder

    FFmpeg has a built-in encoder named vorbis, but it is considered to be experimental and not comparable to libvorbis. Use libvorbis instead if you care about the quality. If you want to try vorbis:

    ffmpeg -i input.opus -c:a vorbis -strict experimental output.ogg
    

    Or pipe to oggenc

    ffmpeg -i input.opus -f wav - | oggenc -o output.ogg -