1

I just compiled and installed ffmpeg-4.0 on my Kubunut 17.10 laptop, and and I'm getting an error when trying to do conversions using the opus components. It appears that opus is not enabled, and I get this error: [opus @ 0x55b30ae65fc0] The encoder 'opus' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it. I added -strict -2 to the command: ffmpeg -strict -2 -y -i 40.mp4 40.opus, but this doesn't seem to help.

I saw various people say that opus is included by default now, and others said that I needed to enable --enable-libopus during compilation. Every time I try to do this, it never seems to work though. I tried ./configure --enable-libopus and make --enable-libopus, but the subroutines just acted with confusion.

Full output:

ffmpeg version 4.0 Copyright (c) 2000-2018 the FFmpeg developers built with gcc 7 (Ubuntu 7.2.0-8ubuntu3.2) configuration: libavutil 56. 14.100 / 56. 14.100 libavcodec 58. 18.100 / 58. 18.100 libavformat 58. 12.100 / 58. 12.100 libavdevice 58. 3.100 / 58. 3.100 libavfilter 7. 16.100 / 7. 16.100 libswscale 5. 1.100 / 5. 1.100 libswresample 3. 1.100 / 3. 1.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '40.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 creation_time : 2014-02-10T22:28:37.000000Z Duration: 00:01:56.77, start: 0.000000, bitrate: 310 kb/s Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 480x360 [SAR 1:1 DAR 4:3], 211 kb/s, 25 fps, 25 tbr, 50 tbn, 50 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 95 kb/s (default) Metadata: creation_time : 2014-02-10T22:28:37.000000Z handler_name : IsoMedia File Produced by Google, 5-11-2011 Stream mapping: Stream #0:1 -> #0:0 (aac (native) -> opus (native)) Press [q] to stop, [?] for help [opus @ 0x55dbad5801c0] The encoder 'opus' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it. Average Intensity Stereo band: 0.0 Dual Stereo used: -nan% Conversion failed!

2 Answers 2

2

Since you're trying to enable an experimental encoder, the compliance level has to be set on the output.

ffmpeg -y -i 40.mp4 -strict -2 40.opus
1
  • So this needs to be done every time? There isn't a way to enable this permanently? It worked BTW thanks! Commented Apr 21, 2018 at 19:51
4

FFmpeg supports two Opus encoders:

  • The experimental built-in encoder named opus,
  • and libopus which depends on an external library and requires your ffmpeg to be built with --enable-libopus.

The native encoder opus is currently considered to be experimental, so it requires the output option -strict experimental (or the alias -strict -2).

libopus is very good encoder. Consider using it instead due to the current experimental status of opus, unless of course opus sounds good enough for your needs. (Disclaimer: I haven't tried opus yet. Writing this in a noisy environment so I can't do a listening test...)

You must log in to answer this question.

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