J'ai un fichier .ogg (contenant de la parole) avec une qualité de 192 kbps que je voudrais réduire à 32 kbps (pour économiser de l'espace)
Comment puis-je faire ceci?
Jusqu'à présent, j'ai essayé ceci:
ffmpeg -i filename.ogg -ab 32k -f ogg new-filename.ogg
Mais je reçois cette erreur:
[libvorbis @ 0x56157365ab60] encoder setup failed
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
Suis-je en train d'utiliser la mauvaise commande? Existe-t-il une meilleure approche pour économiser de l'espace? Veuillez noter que je n'ai accès qu'au fichier 192kbps (pas à l'original)
Reconnaissant de l'aide!
Il y a deux excellents choix ici:
Les détails des deux sont ci-dessous:
1. Ajustez votre ligne de commande FFmpeg ...
Le problème clé est que FFmpeg ne modifiera pas - automatiquement la fréquence d'échantillonnage audio pour qu'elle corresponde de manière appropriée au débit sélectionné. Mais FFmpeg ne fait généralement pas beaucoup de tenue de main, je suppose!
Gardez à l'esprit qu'un CD audio aura normalement une fréquence d'échantillonnage de 44100 Hz tandis que la téléphonie simple aurait normalement une fréquence d'échantillonnage légèrement supérieure à 8000 Hz. Vous avez donc le choix de choisir le meilleur taux d'échantillonnage pour votre audio Ogg Vorbis 32k. Voici quelques lignes directrices:
Dans cet esprit, mes propres tests suggèrent que vous feriez mieux d'utiliser une fréquence d'échantillonnage de 22050 Hz, notez que cela devrait être parfaitement adéquat pour la parole, et donc votre ligne de commande devrait être:
ffmpeg -i filename.ogg -c:a libvorbis -ab 32k -ar 22050 new-filename.ogg
Et cela a produit un résultat tout à fait raisonnable sur ma propre configuration ...
2. Utilisez FFmpeg pour créer un petit fichier en utilisant libopus ...
Si vous n'êtes peut-être pas tout à fait prêt à utiliser Ogg Vorbis, une excellente alternative consiste à utiliser Opus, qui, dans mes tests, a réduit un nombre raisonnable de kilo-octets de chaque fichier par rapport au codage Ogg Vorbis 32k. Essayez quelque chose comme le suivant qui a été adapté à vos fichiers vocaux:
ffmpeg -i filename.ogg \
-c:a libopus -b:a 16k -ar 16000 -ac 1 -application voip \
new-filename.ogg
Vous serez agréablement surpris par la taille du fichier de sortie et la qualité audio qui en résultent. J'ai inclus un lien vers une excellente ressource HydrogenAudio dans les 'Références' qui devrait guider vers une ligne de commande encore meilleure pour Opus ...
Références:
Qualité d'encodage de la parole : La page HydrogenAudio définitive pour guider les paramètres Opus pour la parole.
15.8 libopus : Options FFmpeg à utiliser avec l'encodage libopus. Noter la -application voip
paramètre que j'ai utilisé ci-dessus et qui n'a pas d'équivalent avec opusenc (contrairement aux autres paramètres).
Ce faible débit n'est pas pris en charge avec le taux d'échantillonnage par défaut du fichier. Vous devez spécifier un taux d'échantillonnage inférieur avant de pouvoir réduire le débit binaire. Ajoutez l'option -ar 8000 pour votre option -b: un 32k à accepter.