Pour les tests, je veux convertir un fichier MP3 et WAV que je dois en Opus, quelles sont les étapes pour le faire?
Pour les tests, je veux convertir un fichier MP3 et WAV que je dois en Opus, quelles sont les étapes pour le faire?
Réponses:
Par défaut, le convertisseur audio fourni avec les outils opus peut convertir l'audio au format brut, wave ou AIFF. La syntaxe minimale utilise les paramètres par défaut:
opusenc input.wav output.opus
Nous pouvons vouloir ajouter un meilleur débit binaire comme le 96 kbps par défaut avec l'option --bitrate N.nnn
(pour toutes les options, consultez la page de manuel pour opusenc).
Pour convertir des mp3 "à la volée". c'est-à-dire sans créer de fichier temporaire, nous pouvons diriger la sortie d'avconv vers opusenc comme ceci:
avconv -i input.mp3 -f wav - | opusenc --bitrate 256 - output.opus
Ubuntu 14.04 et Debian 8 sont livrés avec la version 9 de libav-tools
dans leurs référentiels, et il a un support intégré pour Opus via le packagelibopus0
.
Avec la version 9 de libav-tools
et libopus0
installée, vous pouvez simplement, par exemple, faire:
avconv -i file.mp3 -map 0:a -codec:a opus -b:a 100k -vbr on file.opus
-i file.mp3
définit le fichier d'entrée.-map 0:a
sélectionnera tous les flux audio ( a
) du fichier d'entrée 0
. En savoir plus -map
sur https://libav.org/avconv.html#Advanced-options-codec:a opus
sélectionne l'encodeur opus pour les flux audio ( a
). En savoir plus -codec
sur https://libav.org/avconv.html#Main-options .-b:a 100k
définit le débit binaire de l'audio à 100 kilobits / s. En savoir plus -b
sur https://libav.org/avconv.html#Codec-AVOptions-vbr on
active le débit binaire variable. Il s'agit d'une option spécifique à libopus. Voici toutes les options pour 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
définit le fichier de sortie.
Prenez le deuxième flux de la première entrée ( -map 0:1
), qui est le flux audio. Encodez-le avec libopus à 100 kbit / s avec un débit binaire variable sur:
$ 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%
Avec le package mediainfo
installé:
$ 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
fait? (Et peut-être détailler toute la ligne?)
Opus du 12.04
Le 12.04 (précis), cependant, il y a des problèmes de dépendance avec l'installation des codecs et des outils opus, donc j'ai trouvé de loin la meilleure solution est celle qui est devenue disponible très récemment: compilez l'encodeur et le décodeur audio opus comme indiqué ici , et construisez ffmpeg
avec le support opus en ajoutant --enable-opus
aux options de configuration de ffmpeg
(comme indiqué dans le guide de compilation ).
Je sais que ffmpeg
c'est déconseillé dans Ubuntu en faveur de Libav
, mais la compilation est un bon moyen d'obtenir un encodeur / décodeur opus pleinement fonctionnel intégré en ffmpeg
lui-même. Vous pouvez ensuite l'utiliser pour convertir des fichiers (d'abord en wav) puis en.opus
. La documentation installée avec libopus et ffmpeg révèlera toutes les options qui peuvent être utilisées pour convertir des fichiers.
Lors de la conversion de fichiers avec ffmpeg
après compilation, vous devez spécifier -acodec libopus
ou ffmpeg
ne pas utiliser le codec opus:
ffmpeg -i pc.wav -ar 48000 -ac 2 -acodec libopus -ab 256k man.opus
Vous pouvez ensuite tester le fichier créé avec
ffplay man.opus
Conseils de compilation
Il n'est pas nécessaire de reproduire le guide ici dans son intégralité, mais il convient de noter une ou deux choses:
Vous devez d'abord installer les dépendances listées (j'omet yasm
de la liste: voir mon deuxième point):
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
Il y a un problème qui doit être souligné: la construction git semble vouloir yasm-1.2
, et qui n'est pas disponible, vous devez donc compiler la source depuis le site officiel , mais c'est simple. Supprimez simplement toutes les versions installées de yasm
, puis décompressez l'archive téléchargée, cd
dans le dossier, exécutez ./configure && make
puis sudo checkinstall
. Si d'autres versions nécessitent la version antérieure, vous pouvez simplement supprimer cette version et installer la version du référentiel.
Il est nécessaire d'enlever tout existant libav
, ffmpeg
, x264
, libvpx
ou fdk-aac
paquets avant de commencer la compilation.
Il est essentiel que vous compilez et installer x264
, fdk-aac
, libvpx
et opus
avant de construire ffmpeg
, comme les bibliothèques seront utilisés dans la construction.
N'oubliez pas d'ajouter --enable-opus
aux options de configuration lorsque vous exécutez la ffmpeg
compilation.
La version d'Opus compilée était 1.1alpha, vous devrez donc peut-être recompiler la bibliothèque d'opus et ffmpeg à l'avenir lors de la sortie d'une nouvelle version.
Vous pouvez utiliser ffplay
pour lire tous les fichiers d'opus que vous créez.
Voilà comment je le fais:
$ opusenc --bitrate 320 --max-delay 10 "18 - Soul Asylum - Runaway Train (Album Version) .flac" "18 - Soul Asylum - Runaway Train (Album Version) .opus"
MODIFIER:
Pour les audiophiles:
$ opusenc --bitrate 510 --max-delay 10 "18 - Soul Asylum - Runaway Train (Album Version) .flac" "18 - Soul Asylum - Runaway Train (Album Version) .opus"
Pas besoin de spécifier d' --maxdelay 10
option car opusenc
faites-le par défaut.
Sortie console pour cette conversion de fichier ( --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)
C'est super rapide! Moins de 8 secondes avec une complexité de 10 (complexité de calcul de l'encodage (0-10, par défaut: 10). Zéro donne les encodages les plus rapides mais de qualité inférieure, tandis que 10 donne la qualité la plus élevée mais l'encodage plus lent) et un temps de retard maximum de 10 ms ( Délai maximum du conteneur en millisecondes (0-1000, par défaut: 1000)), donc si vous sautez du temps dans une chanson, l'effet d'écrêtage aura une durée de 10 ms, il est donc imperceptible (essayez avec 1000 et écoutez la différence de temps de saut avec votre Souris). Le débit binaire est VBR par défaut. 320kbps a fonctionné pour moi, c'est donc facultatif, jouez avec ce nombre:
--bitrate N.nnn
=> Débit cible en kbit / sec (6-256 par canal)
Soit dit en passant, l'encodage de MP3 en OPUS n'est pas une bonne idée, cela ne sonnera pas mieux, leurs algorithmes de compression sont bien trop différents. Mais de FLAC ou WAV ou de tout autre format audio sans perte , c'est une autre histoire.
Remarque: Pour encoder un autre fichier, appuyez simplement sur la flèche vers le haut dans le même terminal pour appeler la dernière commande et changer le nom des fichiers d'entrée et de sortie.
Si vous recherchez une interface graphique ffmpeg / avconv, TraGtor est peut-être ce dont vous avez besoin.
Vous pouvez également vérifier les différences de spectogramme entre les formats Lossless et Lossy à des débits élevés avec Spek ou Audacity .
Error parsing input file: Hardvapour remix-.mp3
j'utilise 16.04
opus-tools
et Audex
.Ouvrez Audex et ajoutez un nouveau profil appelé Opus, ajoutez un modèle de commande;
opusenc $i --comment="TRACKNUMBER="$trackno"" --artist "$artist" --album "$title" --title "$ttitle" --date "$date" --picture "$cover" $o
et suffixe opus