2016-04-21 4 views
0

J'utilise la commande suivante pour prendre un fichier audio audio et en faire une vidéo (en utilisant une image jpg statique). Mon but est d'obtenir un son mp3 aussi petit que possible avec une qualité encore acceptable.Optimisation de la sortie libav/ffmpeg pour les petites tailles de fichier

frequency="11000" 
bitrate="45000" 
avconv -loop 1 -i a.jpg -i audio.mp3 -shortest -r 1 -metadata STEREO_MODE=mono -c:v libx264 -ar "$frequency" -b:a "$bitrate" -ac 0 result.mkv 

Mes questions sont les suivantes: 1. comment puis-je réaliser que le fichier résultant est MONO? 2. est-il possible de réduire le débit en plus? Je voudrais utiliser des valeurs inférieures à 45000, aussi. 3. Mon but est d'obtenir le contrôle des paramètres qui influencent le plus la taille du fichier. Actuellement, je sais que la fréquence est assez importante. Y a-t-il d'autres paramètres qui pourraient m'aider à obtenir un très petit fichier de sortie avec une qualité encore acceptable?

Merci d'avance.

Répondre

1

Étant donné que vous codez un codec audio compressé, la fréquence n'affecte pas directement la taille du fichier. Cependant, une fréquence de 11 kHz réduira la qualité de la musique.

Au lieu de cela, je vous suggère

frequency="22050" 
bitrate="48000" 
ffmpeg -loop 1 -i a.jpg -i audio.mp3 -shortest -r 1 -c:v libx264 -crf 28 \ 
     -ar "$frequency" -b:a "$bitrate" -ac 1 result.mkv 

Le paramètre CRF contrôle qualité vidéo - des valeurs inférieures produisent une meilleure qualité, mais des fichiers plus volumineux. Vous obtiendrez plus d'économies en contrôlant cela que le débit audio, qui est de toute façon inférieur.

Si votre build a libfdk_aac inclus, vous pouvez utiliser à la place

frequency="22050" 
bitrate="32000" 
ffmpeg -loop 1 -i a.jpg -i audio.mp3 -shortest -r 1 -c:v libx264 -crf 28 \ 
     -ar "$frequency" -c:a libfdk_aac -profile:a aac_he_v2 -b:a "$bitrate" -ac 1 result.mkv