Для тестирования я хочу конвертировать файлы MP3 и WAV, которые у меня есть, в Opus, как это сделать?
Вот как я это делаю:
$ 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 .
Ubuntu 14.04 и Debian 8 поставляются с версией 9 из libav-tools
в своих репозиториях и имеют встроенную поддержку Opus через пакет libopus0
.
С установленными версиями 9 libav-tools
и libopus0
вы можете, например, просто сделать:
avconv -i file.mp3 -map 0:a -codec:a opus -b:a 100k -vbr on file.opus
-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
устанавливает выходной файл.
Возьмите второй поток первого входа (-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
opus-tools
и Audex
. Откройте Audex и добавьте новый профиль под названием Opus, добавьте шаблон команд;
opusenc $i --comment="TRACKNUMBER="$trackno"" --artist "$artist" --album "$title" --title "$ttitle" --date "$date" --picture "$cover" $o
и суффикс opus
По умолчанию аудиоконвертер, поставляемый с 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
Опус на 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
для проигрывания любых файлов опуса, Вы создаете.
Если нужен только маршрут из mp3 в opus, mpg123
может выполнить декодирование в wav / pcm.
mpg123 -w - input.mp3 | opusenc - output.opus
Для незнакомцев тире «-» слева служит как стандартный вывод, который передается по каналу opusencs stdin справа.
Конечно, ffmpeg отлично подходит для общего преобразования и редактирования мультимедиа, но его размер установки и обычные зависимости распространения также имеют больший размер.