Como você está tentando ativar um codificador experimental, o nível de conformidade precisa ser definido na saída.
ffmpeg -y -i 40.mp4 -strict -2 40.opus
Eu apenas compilei e instalei ffmpeg-4.0
no meu laptop Kubunut 17.10, e estou recebendo um erro ao tentar fazer conversões usando os componentes opus. Parece que o opus não está ativado e recebo este erro: [opus @ 0x55b30ae65fc0] The encoder 'opus' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.
adicionei -strict -2
ao comando: ffmpeg -strict -2 -y -i 40.mp4 40.opus
, mas isso não parece ajudar.
Eu vi várias pessoas dizendo que o opus está incluído por padrão agora, e outros disseram que eu precisava ativar --enable-libopus
durante a compilação. Toda vez que tento fazer isso, parece que nunca funciona. Eu tentei ./configure --enable-libopus
e make --enable-libopus
, mas as sub-rotinas agiram com confusão.
Saída completa:
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!
O FFmpeg suporta dois codificadores Opus:
opus
, libopus
, que dependem de uma biblioteca externa e exigem que seu ffmpeg
seja criado com --enable-libopus
. O codificador nativo opus
é atualmente considerado experimental, por isso requer a opção de saída -strict experimental
(ou o alias -strict -2
).
libopus
é um codificador muito bom. Considere usá-lo em vez disso, devido ao status experimental atual de opus
, a menos que, é claro, opus
pareça bom o suficiente para suas necessidades. (Disclaimer: Eu não tentei opus
ainda. Escrevendo isso em um ambiente barulhento, então eu não posso fazer um teste de audição ...)