Для тестирования я хочу конвертировать файлы MP3 и WAV, которые у меня есть, в Opus, как это сделать?
Для тестирования я хочу конвертировать файлы MP3 и WAV, которые у меня есть, в Opus, как это сделать?
Ответы:
По умолчанию аудио конвертер, поставляемый с инструментами opus, может конвертировать аудио в формат raw, wave или AIFF. Минимальный синтаксис использует настройки по умолчанию:
opusenc input.wav output.opus
Возможно, мы захотим добавить лучшую скорость передачи данных в качестве 96 кбит / с по умолчанию с этой опцией --bitrate N.nnn
(для всех опций обратитесь к man-странице для opusenc).
Конвертировать mp3 "на лету". т.е. без создания временного файла мы можем передать вывод из avconv в opusenc следующим образом:
avconv -i input.mp3 -f wav - | opusenc --bitrate 256 - output.opus
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
-map 0:a
делает? (А может быть подробно вся линия?)
Опус 12.04
Однако 12.04 (Precise) существуют проблемы с зависимостями при установке кодеков и инструментов opus, поэтому я обнаружил, что наилучшим решением является то, которое стало доступно совсем недавно: скомпилируйте аудиокодер и декодер opus, как указано здесь , и собрать ffmpeg
с поддержкой opus, добавив --enable-opus
в настройки опции ffmpeg
(как указано в руководстве по компиляции ).
Я знаю, что ffmpeg
это устарело в Ubuntu в пользу Libav
, но компиляция - это хороший способ интегрировать полностью функционирующий кодер / декодер opus в ffmpeg
себя. Затем вы можете использовать его для преобразования файлов (сначала в wav), а затем в .opus
. Документация, установленная с libopus и ffmpeg, покажет все опции, которые можно использовать для конвертации файлов.
При конвертации файлов ffmpeg
после компиляции вы должны указать -acodec libopus
или ffmpeg
не использовать кодек opus:
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
Есть одна проблема, на которую следует обратить внимание: сборка git, кажется, нужна yasm-1.2
, и она недоступна, поэтому вам нужно скомпилировать исходный код с официального сайта , но это просто. Просто удалите все установленные версии yasm
, затем распакуйте загруженный архив cd
в папку, запустите ./configure && make
и затем sudo checkinstall
. Если для любых других сборок требуется более ранняя версия, вы можете просто удалить эту версию и установить версию репозитория.
Необходимо удалить любые существующие libav
, ffmpeg
, x264
, libvpx
или fdk-aac
пакеты , прежде чем приступить к составлению.
Это критически , что вы скомпилировать и установить x264
, fdk-aac
, libvpx
и , opus
прежде чем строить ffmpeg
, так как эти библиотеки будут использоваться в сборке.
Не забудьте добавить --enable-opus
в настройки параметры при запуске ffmpeg
компиляции.
Скомпилированная версия opus была 1.1alpha, поэтому вам может понадобиться повторно скомпилировать библиотеку opus и ffmpeg в будущем, когда будет выпущена новая версия.
Вы можете использовать ffplay
для воспроизведения любых файлов Opus, которые вы создаете.
Вот как я это делаю:
$ opusenc - bitrate 320 --max-delay 10 "18 - Убежище души - Беглый поезд (альбомная версия) .flac" "18 - Убежище души - Беглый поезд (альбомная версия) .opus"
РЕДАКТИРОВАТЬ:
Для аудиофилов:
$ opusenc - bitrate 510 - max-delay 10 "18 - Убежище души - Беглый поезд (альбомная версия) .flac" "18 - Убежище души - Беглый поезд (альбомная версия) .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 .
Error parsing input file: Hardvapour remix-.mp3
я использую 16.04
opus-tools
а Audex
.Откройте Audex и добавьте новый профиль под названием Opus, добавьте шаблон Command;
opusenc $i --comment="TRACKNUMBER="$trackno"" --artist "$artist" --album "$title" --title "$ttitle" --date "$date" --picture "$cover" $o
и суффикс opus