Я только что скомпилировал и установил ffmpeg-4.0 на свой ноутбук Kubunut 17.10, и у меня появляется ошибка при попытке выполнить преобразование с использованием компонентов opus. Похоже, что opus не включен, и я получаю эту ошибку: [opus @ 0x55b30ae65fc0] The encoder 'opus' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it. Я добавил -strict -2 к команде: ffmpeg -strict -2 -y -i 40.mp4 40.opus , но это, похоже, не помогает.

Я видел, как разные люди говорили, что opus теперь включен по умолчанию, а другие говорили, что мне нужно включить --enable-libopus во время компиляции. Каждый раз, когда я пытаюсь это сделать, кажется, это никогда не срабатывает. Я попытался ./configure --enable-libopus и make --enable-libopus , но подпрограммы действовали с недоразумением.

Полный вывод:

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 ответа2

3

FFmpeg поддерживает два кодировщика Opus:

  • Экспериментальный встроенный кодировщик под названием opus ,
  • и libopus который зависит от внешней библиотеки и требует, чтобы ваш ffmpeg был собран с помощью --enable-libopus .

Нативный кодер opus в настоящее время считается экспериментальным, поэтому для него требуется опция вывода -strict experimental (или псевдоним -strict -2).

libopus - очень хороший кодировщик Попробуйте использовать его вместо этого из-за текущего экспериментального статуса opus , если, конечно, opus звучит достаточно хорошо для ваших нужд. (Отказ от ответственности: я еще не пробовал opus . Пишу это в шумной обстановке, поэтому я не могу пройти тест на прослушивание ...)

1

Поскольку вы пытаетесь включить экспериментальный кодировщик, уровень соответствия должен быть установлен на выходе.

ffmpeg -y -i 40.mp4 -strict -2 40.opus

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .