Как преобразовать звуковой файл в Opus

Для тестирования я хочу конвертировать файлы MP3 и WAV, которые у меня есть, в Opus, как это сделать?

21
задан 2 November 2012 в 21:20

6 ответов

Вот как я это делаю:

  • Сначала откройте терминал в том же каталоге, где находятся ваши аудиофайлы.
  • Затем введите эту команду:
$ opusenc --bitrate 320 --max-delay 10 "18 - Soul Asylum - Runaway Train (Album Version).flac" "18 - Soul Asylum - Runaway Train (Album Version).opus"

РЕДАКТИРОВАТЬ:

Для аудиофилов:

$ opusenc --bitrate 510 --max-delay 10 "18 - Soul Asylum - Runaway Train (Album Version).flac" "18 - Soul Asylum - Runaway Train (Album Version).opus"

Не нужно указывать опцию --maxdelay 10, потому что opusenc сделать это по умолчанию.

Вывод на консоль для этого преобразования файла (--bitrate 320):

    Encoding using libopus 1.1.2 (audio)
    -----------------------------------------------------
       Input: 44.1kHz 2 channels
      Output: 2 channels (2 coupled)
          20ms packets, 320kbit/sec VBR
     Preskip: 356

    Encoding complete   
    -----------------------------------------------------
           Encoded: 4 minutes and 22.4 seconds
           Runtime: 8 seconds
                    (32.8x realtime)
             Wrote: 10955530 bytes, 13120 packets, 13124 pages
           Bitrate: 317.691kbit/s (without overhead)
     Instant rates: 1.2kbit/s to 510.4kbit/s
                    (3 to 1276 bytes per packet)
          Overhead: 4.89% (container+metadata)

Это супер быстро! Менее 8 секунд со сложностью 10 (сложность кодирования (0-10, по умолчанию: 10). Ноль дает самые быстрые кодировки, но более низкое качество, в то время как 10 дает самое высокое качество, но более медленное кодирование) и максимальное время задержки 10 мс ( Максимальная задержка контейнера в миллисекундах (0-1000, по умолчанию: 1000)), поэтому, если вы пропустите время в песне, эффект отсечения будет иметь продолжительность 10 мс, поэтому он незаметен (попробуйте с 1000 и услышите время пропуска разницы с вашим мышь). Битрейт - это VBR по умолчанию. 320 кбит / с у меня сработало так что необязательно, поиграйся с этим номером:
--bitrate N.nnn => Целевой битрейт в кбит / с (6-256 на канал)

Кстати, кодировка из MP3 для OPUS не очень хорошая идея, она не будет звучать лучше, их алгоритмы сжатия слишком разные. Но из FLAC, WAV или любого другого формата аудио без потерь , это другая история.

Примечание. Чтобы кодировать другой файл, просто нажмите стрелку вверх на том же терминале, чтобы вызвать последнюю команду и изменить имя входного и выходного файлов.
Если вы ищете графический интерфейс ffmpeg / avconv, возможно, вам нужен TraGtor .

Вы также можете проверить различия в спектрограммах между форматами Lossless и Lossy при высоких битрейтах с помощью Spek или Audacity .

0
ответ дан 2 November 2012 в 21:20

Ubuntu 14.04 и Debian 8 поставляются с версией 9 из libav-tools в своих репозиториях и имеют встроенную поддержку Opus через пакет libopus0.

Пример 1: Перекодировать аудиофайл как opus

С установленными версиями 9 libav-tools и libopus0 вы можете, например, просто сделать:

avconv -i file.mp3 -map 0:a -codec:a opus -b:a 100k -vbr on file.opus

Что options do

  • -i file.mp3 устанавливает входной файл.
  • -map 0:a выберет все аудиопотоки (a) из входного файла 0. Подробнее о -map на https://libav.org/avconv.html#Advanced-options
  • -codec:a opus выбирает кодер opus для аудиопотоков (a) , Узнайте больше о -codec на https://libav.org/avconv.html#Main-options .
  • -b:a 100k устанавливает битрейт аудио на 100 килобит / с. Подробнее о -b на https://libav.org/avconv.html#Codec-AVOptions
  • -vbr on включается переменный битрейт. Это опция, специфичная для libopus. Вот все параметры для libopus:

    $ avconv -h full | grep opus -A 11
    avconv version 9.11-6:9.11-3+b2, Copyright (c) 2000-2013 the Libav developers
      built on Apr  6 2014 17:45:45 with gcc 4.8 (Debian 4.8.2-16)
    libopus AVOptions:
    -application       <int>   E..A. Intended application type
       voip                    E..A. Favor improved speech intelligibility
       audio                   E..A. Favor faithfulness to the input
       lowdelay                E..A. Restrict to only the lowest delay modes
    -frame_duration    <float> E..A. Duration of a frame in milliseconds
    -packet_loss       <int>   E..A. Expected packet loss percentage
    -vbr               <int>   E..A. Variable bit rate mode
       off                     E..A. Use constant bit rate
       on                      E..A. Use variable bit rate
       constrained             E..A. Use constrained VBR
    
  • file.opus устанавливает выходной файл.

Пример 2: захват аудио из видеофайла и кодирование его как opus

Возьмите второй поток первого входа (-map 0:1), который является аудиопотоком. Кодируйте его с помощью libopus на скорости 100 кбит / с с переменной скоростью передачи данных:

$ avconv -stats -i linuxactionshowep309-432p.mp4 -map 0:1 -c libopus -b 100k linuxactionshowep309-432p-audio-only.opus
avconv version 9.11-6:9.11-3+b2, Copyright (c) 2000-2013 the Libav developers
  built on Apr  6 2014 17:45:45 with gcc 4.8 (Debian 4.8.2-16)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'linuxactionshowep309-432p.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf55.33.100
  Duration: 01:14:48.45, start: 0.042667, bitrate: 466 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 768x432 [PAR 1:1 DAR 16:9], 330 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
    Stream #0.1(und): Audio: aac, 48000 Hz, stereo, fltp, 128 kb/s
Output #0, ogg, to 'linuxactionshowep309-432p-audio-only.opus':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf54.20.3
    Stream #0.0(und): Audio: libopus, 48000 Hz, stereo, flt, 100 kb/s
Stream mapping:
  Stream #0:1 -> #0:0 (aac -> libopus)
Press ctrl-c to stop encoding
size=   54360kB time=4488.47 bitrate=  99.2kbits/s    
video:0kB audio:53875kB global headers:0kB muxing overhead 0.900602%

С установленным пакетом mediainfo:

$ mediainfo linuxactionshowep309-432p-audio-only.opus
General
Complete name                            : linuxactionshowep309-432p-audio-only.opus
Format                                   : OGG
File size                                : 53.1 MiB
Duration                                 : 1h 14mn
Overall bit rate                         : 99.2 Kbps
Writing application                      : Lavf54.20.3
major_brand                              : isom
minor_version                            : 512
compatible_brands                        : isomiso2avc1mp41

Audio
ID                                       : 2104437746 (0x7D6F2BF2)
Format                                   : Opus
Duration                                 : 1h 14mn
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 48.0 KHz
Compression mode                         : Lossy
Writing library                          : Lavf54.20.3
0
ответ дан 2 November 2012 в 21:20
  1. Найдите компакт-диск (или диск с CDEMU) с тем же содержимым, что и mp3.
  2. Инсталл opus-tools и Audex.
  3. Откройте Audex и добавьте новый профиль под названием Opus, добавьте шаблон команд;

    opusenc $i --comment="TRACKNUMBER="$trackno"" --artist "$artist" --album "$title" --title "$ttitle" --date "$date" --picture "$cover" $o

и суффикс opus

[ 119]
  • пусть рвет!
    0
    ответ дан 2 November 2012 в 21:20

    По умолчанию аудиоконвертер, поставляемый с opus-tools Install opus-tools , может конвертировать аудио в формате raw, wave или AIFF. Минимальный синтаксис использует настройки по умолчанию:

    opusenc input.wav output.opus
    

    Мы можем захотеть добавить лучший битрейт как 96 кбит / с по умолчанию с опцией --bitrate N.nnn (для всех опций обратитесь к странице руководства для opusenc).

    Конвертировать mp3 "на лету". то есть, не создавая временный файл, мы можем перенаправить вывод из avconv в opusenc следующим образом:

    avconv -i input.mp3 -f wav - | opusenc --bitrate 256 - output.opus
    
    0
    ответ дан 2 November 2012 в 21:20

    Опус на 12,04

    На 12,04 (Точный), однако, существуют проблемы зависимости с установкой кодеков опуса и инструментов, таким образом, я нашел безусловно, что лучшим решением является то, которое стало доступным совсем недавно: скомпилируйте кодер аудио опуса и декодер, как отмечено здесь и сборку ffmpeg с опусом поддерживают путем добавления --enable-opus к настраивать опциям ffmpeg (как перечислено на руководстве по компиляции).

    Я знаю это ffmpeg удерживается от использования в Ubuntu в пользу Libav, но компиляция является хорошим способом получить полностью функционирующий кодер/декодер опуса, интегрированный в ffmpeg самостоятельно. Можно затем использовать его для преобразования файлов (сначала к wav) и затем к .opus. Документация, установленная с libopus и ffmpeg, покажет все опции, которые могут использоваться для преобразования файлов.

    При преобразовании файлов с ffmpeg после компиляции необходимо указать -acodec libopus или ffmpeg не будет использовать кодек опуса:

    ffmpeg -i pc.wav -ar 48000 -ac 2 -acodec libopus -ab 256k man.opus
    

    Можно затем протестировать файл, созданный с

    ffplay man.opus
    

    Подсказки по компиляции

    Нет никакой потребности воспроизвести руководство здесь в целом, но стоит отметить одну или две вещи:

    • Необходимо сначала установить зависимости, как перечислено (я опускаю yasm из списка: посмотрите мою вторую точку):

       sudo apt-get -y install autoconf build-essential checkinstall git libass-dev libfaac-dev libgpac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev librtmp-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev
      
    • Существует одна проблема, на которую нужно указать: сборка мерзавца, кажется, хочет yasm-1.2, и это не доступно, таким образом, необходимо скомпилировать источник от официального сайта, но это просто. Просто удалите любые установленные версии yasm, затем распакуйте загруженный архив, cd к папке, выполненной ./configure && make и затем sudo checkinstall. Если какие-либо другие сборки требуют более ранней версии, можно просто удалить эту версию и установить версию репозитория.

    • Необходимо удалить любого существующего libav, ffmpeg, x264, libvpx, или fdk-aac пакеты, прежде чем Вы начнете компилировать.

    • Очень важно, что Вы компилируете и устанавливаете x264, fdk-aac, libvpx и opus перед созданием ffmpeg, поскольку теми библиотеками будут пользоваться в сборке.

    • Не забывайте добавлять --enable-opus к настраивать опциям, когда Вы работаете ffmpeg компиляция.

    • Версия скомпилированного опуса была 1.1alpha, таким образом, Вы, возможно, должны перекомпилировать библиотеку опуса и ffmpeg в будущем снова, когда новая версия выпущена.

    • Можно использовать ffplay для проигрывания любых файлов опуса, Вы создаете.

    5
    ответ дан 2 November 2012 в 21:20

    Если нужен только маршрут из mp3 в opus, mpg123 может выполнить декодирование в wav / pcm.

    mpg123 -w - input.mp3 | opusenc - output.opus
    

    Для незнакомцев тире «-» слева служит как стандартный вывод, который передается по каналу opusencs stdin справа.

    Конечно, ffmpeg отлично подходит для общего преобразования и редактирования мультимедиа, но его размер установки и обычные зависимости распространения также имеют больший размер.

    1
    ответ дан 1 March 2020 в 18:31

    Другие вопросы по тегам:

    Похожие вопросы: