web-dev-qa-db-fra.com

Comment spécifier le niveau de compression flac lors de la conversion avec avconv?

J'essaie de convertir certains fichiers aac en fichiers flac, car celui-ci n'est pas pris en charge par un autre périphérique que j'utilise. Après plusieurs tentatives pour trouver une solution, en cherchant sur Internet, j'ai finalement lu que ffmpeg avait été remplacé par avconv et qu’avconv était un fork de ffmpeg. Alors j'ai cherché comment convertir en flac en utilisant avconv et j'ai trouvé cette ligne:

avconv -i (input file) -f flac (output file path)

Cela fonctionne bien, cependant, je ne vois pas de niveau de compression flac dans cette commande et je dois avoir un niveau de compression de 2 ou moins, à cause des ressources CPU sur le périphérique cible. J'ai consulté avconv dans la page de manuel, mais il ne semble pas parler du tout de niveaux de compression flac.

Ma question est donc la suivante: comment spécifier le niveau de compression flac lors de la conversion d’un format d’entrée au format flac avec avconv?

5

Il existe un attribut -compression_level. La page de manuel donne son format comme

-compression_level[:stream_specifier] integer (output,audio,video)

Vous n'aurez probablement pas besoin de spécifier le flux, car vous n'avez qu'un seul fichier dans le fichier, donc -compression_level 2 est votre ami.

À l'avenir, vous voudrez peut-être consulter la page de manuel pour les outils.

  1. Ouvrez le terminal.
  2. Tapez man (name of program). Par exemple, man avconv.
  3. Pour rechercher le manuel, appuyez sur '/' et entrez la chaîne à rechercher. Dans ce cas, j'ai fait '/ compression', c'est la deuxième chose qui a été trouvée.
1
v010dya

L'option est -compression_level et peut être définie avec avconv ou FFmpeg:

ffmpeg -i input.wav -c:a flac -compression_level 12 output.flac

Il est intéressant de noter que l’encodeur flac de commande en ligne offre des niveaux de compression de 0 à 8 mais que FFmpeg/avconv offre des valeurs de 0 à 12. La documentation est visible à 3 endroits:

1. Code source:

Les options pour la compression flac sont visibles dans flacenc.c:

/* set compression option defaults based on avctx->compression_level */
if (avctx->compression_level < 0)         <-------------
    s->options.compression_level = 5;     <-------------
else
    s->options.compression_level = avctx->compression_level;

level = s->options.compression_level;
if (level > 12) {                         <-------------
    av_log(avctx, AV_LOG_ERROR, "invalid compression level: %d\n",
           s->options.compression_level);
    return AVERROR(EINVAL);
}

J'ai "fléché" dans les sections correspondantes!

2. Pages de manuel:

Les options de compression sont également visibles dans man ffmpeg-all plutôt que man ffmpeg :). Cette page de manuel montre:

compression_level
Sets the compression level, which chooses defaults for many other options
if they are not set explicitly. Valid values are from 0 to 12, 5 is the default.

Un peu déroutant avec plusieurs pages de manuel maintenant disponibles pour FFmpeg!

3. Documentation en ligne:

Comme 'Miso Soup' l'a souligné, il existe également ne documentation disponible en ligne pour les options plus profondes de codage flac, y compris les options de compression:

compression_level
Sets the compression level, which chooses defaults for many
other options if they are not set explicitly. Valid values
are from 0 to 12, 5 is the default.

Identique aux pages de manuel mais peut-être un peu plus facile à trouver et à lire pour certains!

Références:

10
andrew.46