Для тестування я хочу перетворити файл MP3 і WAV, який я маю в Opus, які кроки зробити для цього?
Для тестування я хочу перетворити файл MP3 і WAV, який я маю в Opus, які кроки зробити для цього?
Відповіді:
За замовчуванням аудіо-конвертер, що постачається разом із інструментами opus, може конвертувати аудіо в сирому, хвильовому або AIFF форматі. Мінімальний синтаксис використовує параметри за замовчуванням:
opusenc input.wav output.opus
Ми можемо захотіти додати кращий бітрейт в якості опції за замовчуванням 96 кбіт / с --bitrate N.nnn
(для всіх варіантів зверніться до manpage для opusenc).
Для перетворення mp3 "на льоту". тобто без створення тимчасового файлу ми можемо передавати висновок з avconv в opusenc таким чином:
avconv -i input.mp3 -f wav - | opusenc --bitrate 256 - output.opus
for f in *.flac; do ffmpeg -i "$f" -f wav - | opusenc --bitrate 140 - "${f%.flac}.opus"; done
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
вмикає змінний бітрейт. Це варіант, специфічний для лібопуса. Ось усі варіанти лібопуса:
$ 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
), який є аудіопотоком. Кодуйте його лібопусом зі швидкістю 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 (точно), є проблеми залежності при встановленні кодеків та інструментів opus, тому я знайшов, безумовно, найкращим рішенням є те, що стало доступним зовсім недавно: компілюйте кодер і декодер Opus як описано тут , і створити ffmpeg
з підтримкою opus, додавши --enable-opus
до параметрів налаштування ffmpeg
(як зазначено в посібнику з компіляції ).
Я знаю, що ffmpeg
це застаріле в Ubuntu на користь Libav
, але компіляція - це хороший спосіб інтегрувати в ffmpeg
себе повністю функціонуючий кодер / декодер opus . Потім ви можете використовувати його для перетворення файлів (спочатку в 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.1 альфа, тому вам може знадобитися знову скласти бібліотеку опусу та ffmpeg знову, коли вийде нова версія.
Ви можете використовувати ffplay
для відтворення будь-яких створених файлів opus.
Ось як я це роблю:
$ opusenc --бітрат 320 - макс-затримка 10 "18 - Притулок душі - Побіжний поїзд (версія альбому) .flac" "18 - Притулок душі - Побіжний поїзд (версія альбому) .opus"
Редагувати:
Для аудіофілів:
$ opusenc --бітрет 510 - макс-затримка 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, додайте командний шаблон;
opusenc $i --comment="TRACKNUMBER="$trackno"" --artist "$artist" --album "$title" --title "$ttitle" --date "$date" --picture "$cover" $o
і суфікс opus