Quand vous aimez écouter beaucoup des Podcasts, des cours ou des livres audio par exemple, et vous souhaitez emporter avec vous autant que vous le pouvez, ensuite le codec audio opus est quelque chose que vous pourriez être intéressé. J’utilise rarement ce terme, mais ici il peut être appliqué: Ça m'a foutu un coup, mec. Il est étonnant de voir combien audio vous pouvez emballer sur un appareil mobile avec des limites de capacité extrem.
J’ai converti maintenant ceci :
none 162 Files mp3, 44100 Hz, mono, s16p, 129 kb/s Total Length: 6d 14h 47min 49 Total Size: 9.05 GB
De Go 9,05
à Mo 555
et je suis content avec les résultats.
Veuillez considérer qu’il s’agit d’une conversion de mp3 de la source. Oui, c’est vrai, il est passé de 128k
mp3 à 6k
opus et une valeur d'une semaine d’audio est réduit à la moitié d’une Go, et il a été converti à partir d’une source défavorable. Bien qu’il s’agit de mon réglage hardcore personnel, dans mes recherches j’ai découvert que vous presque ne pouvez pas vous tromper avec 16k
, n’importe dans quel état est la source.
Ce qui est Opus ?
Avec leurs propres mots : > Opus est un codec audio totalement ouvert, libre de redevances, très polyvalent. Opus est inégalée pour la transmission de la technologie vocale interactive et de la musique sur Internet, mais il est également prévu pour le stockage et les applications de streaming. Il est standardisé par l’Internet Engineering Task Force (IETF) comme RFC 6716 qui a incorporé la technologie de codec SILK de Skype et codec CELT de Xiph.Org.
https://www.opus-codec.orghttps://en.wikipedia.org/wiki/Opus_%28audio_format%29
Comparaison graphique entre MP3, AAC et Opus
Longueur | Non compressé | Codec | Débit binaire. | Compressé | Facteur de |
---|---|---|---|---|---|
24 h | 14.88 Go | MP3 | 128k | 1382.4 | 11 |
24 h | 14.88 Go | AAC HE | 64k | 691.2 Mo | 22 |
24 h | 14.88 Go | Opus | 16k | 172.8 Mo | 86 |
24 h | 14.88 Go | Opus | 6k | 64.8 Mo | 233 |
7 d | 104 Go | MP3 | 128k | 9.7 Go | 11 |
7 d | 104 Go | AAC HE | 64k | 4.8 Go | 22 |
7 d | 104 Go | Opus | 16k | 1.2 Go | 86 |
7 d | 104 Go | Opus | 6k | 0.5 Go | 233 |
30 d | 446 Go | MP3 | 128k | 41.5 Go | 11 |
30 d | 446 Go | AAC HE | 64k | 20.7 Go | 22 |
30 d | 446 Go | Opus | 16k | 5.2 Go | 86 |
30 d | 446 Go | Opus | 6k | 1.9 Go | 233 |
365 d | 5.4 To | MP3 | 128k | 504.6 Go | 11 |
365 d | 5.4 To | AAC HE | 64k | 252.3 Go | 22 |
365 d | 5.4 To | Opus | 16k | 63.1 Go | 86 |
365 d | 5.4 To | Opus | 6k | 23.6 Go | 233 |
Calculateur de débit binaire
Débit binaire. | kbit/s |
Longueur | s |
Taille du fichier | MB |
Veuillez noter qu'Opus utilise VBR (il peut être modifié à CBR, que je ne le recommande pas, après avoir vu les résultats). Donc la taille du fichier final est proche mais il peut varier.
La commande de Conversion
Vous presque ne pouvez pas vous tromper avec 16k
. Dans mon expérience même des sources fortement compressé, et avec mauvais sons, résultent aussi bonne que la source.
bash ffmpeg -i <input.file> -acodec libopus -b:a 16k <output.opus>
Lorsque les fichiers source sont d’une qualité supérieure vous obtenez des résultats impressionnants avec 6k
, qui est absolutement le réglage minimum proposé d'Opus, mais vous pouvez certainement entendre l’impact cette compression massive apporte avec elle.
Personnellement, j’utilise la compression de débit de binaire 6k même si la source est de qualité médiocre, parce que je préfère d'avoir plus dans un petit espace que d’avoir moins de meilleure qualité. C’est la décision que vous devez faire vous-même.
C’est le paramètre hardcore que j’utilise :
bash ffmpeg -i <input.file> -acodec libopus -b:a 6k -application voip output.opus
Options de conversion
Par défaut, les options de libopus sont solides. Aux fins de la réduction de la taille extrêmement, nous baissons le débit de binaire. Puis nous optimisons pour la reconnaissance vocale avec l’option application
dans notre cas particulier.
application (N.A.) Set intended application type. Valid options are listed below:
- voip -> Favor improved speech intelligibility.
- audio -> Favor faithfulness to the input (the default).
- lowdelay -> Restrict to only the lowest delay modes.
Traiter plusieurs fichiers simultanément
bash for f in *; do ffmpeg -n -i "$f" -acodec libopus -b:a 16k -application voip "encoded_"${f}".opus"; done
Cette commande effectue une itération de tous les fichiers dans le répertoire de travail et les convertit en format opus. Les fichiers rendu sont stockées dans le même répertoire, portant le même nom que les fichiers d’origine avec un préfixe encoded_
. Le codec Opus fonctionne à une seule unité d'exécution.
Accélérer les choses avec un traitement multifilières
Opus ne supporte pas un traitement multifilières et des encodages sont assignés à un seul cœur de la processeur mais vous pouvez paralléliser les encodages avec les commandes suivantes de bash.
bash bash -c 'ffmpeg_pids=(); for f in *; do ffmpeg -n -i "$f" -acodec libopus -b:a 16k -application voip encoded_"${f}".opus & ffmpeg_pids+=("$!"); done; wait "${ffmpeg_pids[@]}"'
bash # -P8 indicates Number of threads (of 4 core i7 in this case) find . -name "*.mp3" -print0 | xargs -0 -P8 -n1 -I {} ffmpeg -i {} -acodec libopus {}.opus
La première commande convertit tous les fichiers dans le répertoire de travail en même temps. Et la deuxième commande convertit autant des unités d'exécution qui sont attribuées, mais pas plus que ces. La deuxième commande devrait être mieux quand il y a beaucoup de fichiers dans le répertoire de travail.
Ou utilisez gnu parallel.
Lecteurs multimédias Opus pour iOS
Au moins VLC le fait.
Notes finales
Je sais, beaucoup de gens seront en désaccord avec moi sur la réglage de 6k
. Dans ce cas, veuillez tout simplement utiliser 16k
.
Configuration du système et outils utilisés :
- FFmpeg (3.2.2) avec libopus et libfdk-aac activés