Do testów chcę przekonwertować plik MP3 i WAV na Opus, jakie są kroki, aby to zrobić?
Do testów chcę przekonwertować plik MP3 i WAV na Opus, jakie są kroki, aby to zrobić?
Odpowiedzi:
Domyślnie konwerter audio dostarczany z opus-tools może konwertować audio w formacie raw, wave lub AIFF. Minimalna składnia wykorzystuje ustawienia domyślne:
opusenc input.wav output.opus
Możemy chcieć dodać lepszą przepływność jako domyślną 96 kb / s z opcją --bitrate N.nnn
(wszystkie opcje znajdziesz na stronie man dla opusenc).
Aby przekonwertować mp3 „w locie”. tzn. bez tworzenia pliku tymczasowego możemy przesłać dane wyjściowe z avconv do opusenc w następujący sposób:
avconv -i input.mp3 -f wav - | opusenc --bitrate 256 - output.opus
Ubuntu 14.04 i Debian 8 są dostarczane z wersją 9 libav-tools
w swoich repozytoriach i ma wbudowaną obsługę Opus poprzez pakiet libopus0
.
W wersji 9 libav-tools
i libopus0
zainstalowanej możesz po prostu na przykład:
avconv -i file.mp3 -map 0:a -codec:a opus -b:a 100k -vbr on file.opus
-i file.mp3
ustawia plik wejściowy.-map 0:a
wybierze wszystkie strumienie audio ( a
) z pliku wejściowego 0
. Przeczytaj więcej -map
na https://libav.org/avconv.html#Advanced-options-codec:a opus
wybiera koder opus dla strumieni audio ( a
). Dowiedz się więcej -codec
na https://libav.org/avconv.html#Main-options .-b:a 100k
ustawia bitrate audio na 100 kilobitów / s. Dowiedz się więcej -b
na https://libav.org/avconv.html#Codec-AVOptions-vbr on
włącza zmienną szybkość transmisji. Jest to opcja specyficzna dla libopus. Oto wszystkie opcje dla 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
ustawia plik wyjściowy.
Weź drugi strumień pierwszego wejścia ( -map 0:1
), który jest strumieniem audio. Zakoduj go przy użyciu libopus przy prędkości 100 kbit / s ze zmienną przepływnością na:
$ 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%
Po mediainfo
zainstalowaniu pakietu :
$ 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
robi? (A może uszczegółowić całą linię?)
Opus 12.04
Jednak w dniu 12.04 (Precyzyjne) występują problemy z zależnością podczas instalowania kodeków i narzędzi opus, więc znalazłem zdecydowanie najlepsze rozwiązanie, które stało się dostępne bardzo niedawno: skompiluj koder i dekoder audio opus, jak wspomniano tutaj , i buduj ffmpeg
z obsługą opus, dodając --enable-opus
do opcji konfiguracji ffmpeg
(wymienionych w przewodniku kompilacji ).
Wiem, że ffmpeg
jest to przestarzałe w Ubuntu na korzyść Libav
, ale kompilacja jest dobrym sposobem na zintegrowanie w pełni działającego kodera / dekodera opus ffmpeg
. Następnie możesz go użyć do konwersji plików (najpierw do wav), a następnie do .opus
. Dokumentacja zainstalowana z libopus i ffmpeg ujawni wszystkie opcje, których można użyć do konwersji plików.
Podczas konwertowania plików ffmpeg
po kompilacji musisz określić -acodec libopus
lub ffmpeg
nie używać kodeka opus:
ffmpeg -i pc.wav -ar 48000 -ac 2 -acodec libopus -ab 256k man.opus
Następnie możesz przetestować plik utworzony za pomocą
ffplay man.opus
Wskazówki dotyczące kompilacji
Nie ma potrzeby reprodukowania tego przewodnika w całości, ale warto zauważyć jedną lub dwie rzeczy:
Najpierw powinieneś zainstalować zależności zgodnie z listą (pomijam yasm
z listy: patrz mój drugi punkt):
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
Jest jedna kwestia, na którą należy zwrócić uwagę: kompilacja git wydaje się być potrzebna yasm-1.2
i nie jest dostępna, więc musisz skompilować źródło z oficjalnej strony , ale jest to proste. Wystarczy usunąć wszystkie zainstalowane wersje yasm
, a następnie rozpakować pobrane archiwum cd
do folderu, uruchomić, ./configure && make
a następnie sudo checkinstall
. Jeśli jakiekolwiek inne kompilacje wymagają wcześniejszej wersji, możesz po prostu usunąć tę wersję i zainstalować wersję repozytorium.
Jest to konieczne, aby usunąć wszelkie istniejące libav
, ffmpeg
, x264
, libvpx
, lub fdk-aac
pakiety przed rozpoczęciem kompilacji.
Jest krytyczny , że skompilować i zainstalować x264
, fdk-aac
, libvpx
a opus
przed budować ffmpeg
, jak te biblioteki zostaną wykorzystane w budowie.
Nie zapomnij dodać --enable-opus
do opcji konfiguracji po uruchomieniu ffmpeg
kompilacji.
Skompilowana wersja opus to 1.1alpha, więc może być konieczne ponowne skompilowanie biblioteki opus i ffmpeg w przyszłości, kiedy zostanie wydana nowa wersja.
Możesz użyć ffplay
do odtworzenia utworzonych plików opus.
Tak to robię:
$ opusenc --bitrate 320 - max-delay 10 "18 - Soul Asylum - Runaway Train (Wersja albumu) .flac" "18 - Soul Asylum - Runaway Train (Wersja albumu) .opus"
EDYTOWAĆ:
Dla audiofilów:
$ opusenc --bitrate 510 - max-delay 10 "18 - Soul Asylum - Runaway Train (Wersja albumu) .flac" "18 - Soul Asylum - Runaway Train (Wersja albumu) .opus"
Nie musisz określać --maxdelay 10
opcji, ponieważ opusenc
domyślnie to rób.
Dane wyjściowe konsoli dla tej konwersji pliku ( --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)
Jest super szybki! Mniej niż 8 sekund ze złożonością 10 (Kodowanie złożoności obliczeniowej (0-10, domyślnie: 10). Zero daje najszybsze kodowanie, ale niższej jakości, podczas gdy 10 daje najwyższą jakość, ale wolniejsze kodowanie) i maksymalny czas opóźnienia 10ms ( Maksymalne opóźnienie kontenera w milisekundach (0-1000, domyślnie: 1000)), więc jeśli pominiesz czas w utworze, efekt przycinania będzie trwał 10 ms, więc będzie niewidoczny (spróbuj z 1000 i usłysz różnicę czasu pomijania z twoim mysz). Domyślnie bitrate to VBR. 320kbps działało dla mnie, więc jest opcjonalne, zagraj z tym numerem:
--bitrate N.nnn
=> Docelowa przepływność w kbit / s (6-256 na kanał)
Nawiasem mówiąc, kodowanie z MP3 do OPUS nie jest dobrym pomysłem, nie będzie brzmiało lepiej, ich algorytmy kompresji są zbyt różne. Ale z FLAC, WAV lub dowolnego innego formatu Lossless Audio to inna historia.
Uwaga: Aby zakodować inny plik, wystarczy nacisnąć strzałkę w górę w tym samym terminalu, aby wywołać ostatnie polecenie i zmienić nazwę plików wejściowych i wyjściowych.
Jeśli szukasz GUI ffmpeg / avconv, być może TraGtor jest tym, czego potrzebujesz.
Możesz także sprawdzić różnice w spektrogramach między formatami bezstratnymi i bezstratnymi przy wysokich przepływnościach za pomocą Spek lub Audacity .
Error parsing input file: Hardvapour remix-.mp3
, że używam 16.04
opus-tools
i Audex
.Otwórz Audex i dodaj nowy profil o nazwie Opus, dodaj wzór poleceń;
opusenc $i --comment="TRACKNUMBER="$trackno"" --artist "$artist" --album "$title" --title "$ttitle" --date "$date" --picture "$cover" $o
i przyrostek opus