Zum Testen möchte ich eine MP3- und WAV-Datei, die ich zu Opus habe, konvertieren. Was sind die Schritte dazu?
Zum Testen möchte ich eine MP3- und WAV-Datei, die ich zu Opus habe, konvertieren. Was sind die Schritte dazu?
Antworten:
Standardmäßig kann der mit den Opus-Tools gelieferte Audiokonverter Audio im RAW-, WAV- oder AIFF-Format konvertieren. Die Minimalsyntax verwendet Standardeinstellungen:
opusenc input.wav output.opus
Möglicherweise möchten wir eine bessere Bitrate als die Standardrate von 96 KBit / --bitrate N.nnn
s mit der Option hinzufügen (Informationen zu allen Optionen finden Sie auf der Manpage für opusenc).
Mp3 "on the fly" konvertieren. dh ohne eine temporäre Datei zu erstellen, können wir die Ausgabe von avconv wie folgt an opusenc leiten:
avconv -i input.mp3 -f wav - | opusenc --bitrate 256 - output.opus
Ubuntu 14.04 und Debian 8 werden mit Version 9 von libav-tools
in ihren Repositories ausgeliefert, und es hat eine eingebaute Unterstützung für Opus durch das Paket libopus0
.
Mit Version 9 von libav-tools
und libopus0
installiert können Sie zum Beispiel einfach Folgendes tun:
avconv -i file.mp3 -map 0:a -codec:a opus -b:a 100k -vbr on file.opus
-i file.mp3
Legt die Eingabedatei fest.-map 0:a
wählt alle Audio-Streams ( a
) aus der Eingabedatei aus 0
. Weitere Informationen finden Sie -map
unter https://libav.org/avconv.html#Advanced-options-codec:a opus
Wählt den Opus-Encoder für die Audio-Streams ( a
). Weitere Informationen finden Sie -codec
unter https://libav.org/avconv.html#Main-options .-b:a 100k
Stellt die Bitrate des Audios auf 100 Kilobit / s ein. Weitere Informationen finden Sie -b
unter https://libav.org/avconv.html#Codec-AVOptions-vbr on
schaltet die variable Bitrate ein. Dies ist eine für libopus spezifische Option. Hier sind alle Optionen für 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
Legt die Ausgabedatei fest.
Nehmen Sie den zweiten Stream des ersten Eingangs ( -map 0:1
), bei dem es sich um den Audio-Stream handelt. Codiere es mit libopus bei 100 kbit / s mit variabler Bitrate auf:
$ 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%
Mit dem mediainfo
installierten Paket :
$ 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
macht? (Und vielleicht die gesamte Zeile detaillieren?)
Opus vom 12.04
Ab 12.04 (Precise) gibt es jedoch Abhängigkeitsprobleme bei der Installation der Opus-Codecs und -Tools. Daher habe ich mit Abstand die beste Lösung gefunden, die seit kurzem verfügbar ist: Kompilieren Sie den Opus-Audio-Codierer und -Decodierer wie hier angegeben . und erstellen Sie ffmpeg
mit Opus-Unterstützung, indem Sie --enable-opus
die Konfigurationsoptionen von ffmpeg
(wie im Kompilierungshandbuch aufgeführt ) hinzufügen .
Ich weiß, dass dies ffmpeg
zugunsten von Ubuntu veraltet ist Libav
, aber das Kompilieren ist ein guter Weg, um einen voll funktionsfähigen Opus-Encoder / Decoder in ffmpeg
sich zu integrieren . Sie können es dann verwenden, um Dateien (zuerst in WAV) und dann in zu konvertieren .opus
. Die mit libopus und ffmpeg installierte Dokumentation zeigt alle Optionen, die zum Konvertieren von Dateien verwendet werden können.
Wenn Sie Dateien ffmpeg
nach der Kompilierung konvertieren , müssen Sie den Opus-Codec angeben -acodec libopus
oder ffmpeg
werden ihn nicht verwenden:
ffmpeg -i pc.wav -ar 48000 -ac 2 -acodec libopus -ab 256k man.opus
Sie können dann die mit erstellte Datei testen
ffplay man.opus
Kompilierungstipps
Es ist nicht erforderlich, den Leitfaden hier vollständig wiederzugeben, es sollten jedoch ein oder zwei Punkte beachtet werden:
Sie sollten zuerst die aufgeführten Abhängigkeiten installieren (ich lasse yasm
die Liste aus: siehe meinen zweiten 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
Es gibt ein Problem, auf das hingewiesen werden sollte: Der Git-Build scheint es zu wollen yasm-1.2
, und das ist nicht verfügbar, daher müssen Sie den Quellcode von der offiziellen Website kompilieren , aber es ist einfach. Entfernen Sie einfach alle installierten Versionen von yasm
, entpacken Sie das heruntergeladene Archiv cd
in den Ordner, führen Sie es aus ./configure && make
und dann sudo checkinstall
. Wenn andere Builds die frühere Version erfordern, können Sie diese Version einfach entfernen und die Repository-Version installieren.
Es ist notwendig , eine bestehende zu entfernen libav
, ffmpeg
, x264
, libvpx
, oder fdk-aac
Pakete , bevor Sie kompilieren beginnen.
Es ist entscheidend , dass Sie kompilieren und installieren x264
, fdk-aac
, libvpx
und opus
bevor Sie bauen ffmpeg
, da diese Bibliotheken in der Build verwendet werden.
Vergessen Sie nicht --enable-opus
, die Konfigurationsoptionen zu erweitern, wenn Sie die ffmpeg
Kompilierung ausführen .
Die kompilierte Opus-Version war 1.1alpha, daher müssen Sie die Opus-Bibliothek und das ffmpeg möglicherweise in Zukunft erneut kompilieren, wenn eine neue Version veröffentlicht wird.
Sie können ffplay
alle von Ihnen erstellten Opus-Dateien abspielen.
So mach ich es:
$ opusenc --bitrate 320 --max-delay 10 "18 - Soul Asylum - Ausreißer (Album Version) .flac" "18 - Soul Asylum - Ausreißer (Album Version) .opus"
BEARBEITEN:
Für Audiophile:
$ opusenc --bitrate 510 --max-delay 10 "18 - Soul Asylum - Ausreißer (Album Version) .flac" "18 - Soul Asylum - Ausreißer (Album Version) .opus"
--maxdelay 10
Option muss nicht angegeben werden, da opusenc
dies standardmäßig erfolgt.
Konsolenausgabe für diese Dateikonvertierung ( --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)
Es ist super schnell! Weniger als 8 Sekunden bei einer Komplexität von 10 (Komplexität der Codierung (0-10, Standard: 10). Null gibt die schnellsten Codierungen bei geringerer Qualität an, während 10 die höchste Qualität bei langsamerer Codierung bietet.) Und eine maximale Verzögerungszeit von 10 ms ( Maximale Verzögerung des Containers in Millisekunden (0-1000, Standard: 1000). Wenn Sie also die Zeit in einem Song überspringen, dauert der Clipping-Effekt 10 ms, sodass er nicht wahrnehmbar ist Maus). Die Bitrate ist standardmäßig VBR. 320kbps funktionierten bei mir also ist optional, spiele mit dieser Nummer:
--bitrate N.nnn
=> Zielbitrate in kbit / sec (6-256 pro Kanal)
Übrigens ist das Codieren von MP3 zu OPUS keine gute Idee, es wird nicht besser klingen, ihre Kompressionsalgorithmen sind viel zu unterschiedlich. Aber von FLAC oder WAV oder einem anderen verlustfreien Audioformat ist das eine andere Geschichte.
Hinweis: Um eine andere Datei zu kodieren, drücken Sie einfach den Aufwärtspfeil im selben Terminal, um den letzten Befehl aufzurufen und den Namen der Eingabe- und Ausgabedateien zu ändern.
Wenn Sie nach einer ffmpeg / avconv- Benutzeroberfläche suchen, ist TraGtor vielleicht das Richtige für Sie.
Sie können auch die Spektrogrammunterschiede zwischen den Formaten Lossless und Lossy mit hoher Bitrate mit Spek oder Audacity überprüfen .
Error parsing input file: Hardvapour remix-.mp3
ich mit 16.04
opus-tools
und Audex
.Öffnen Sie Audex und fügen Sie ein neues Profil mit dem Namen Opus hinzu. Fügen Sie ein Befehlsmuster hinzu.
opusenc $i --comment="TRACKNUMBER="$trackno"" --artist "$artist" --album "$title" --title "$ttitle" --date "$date" --picture "$cover" $o
und Suffix opus