2017-06-22 1 views
0

Je convertis le fichier video.webm en fichier .wav avec les options suivantes. Cependant, le fichier de sortie est juste assez énorme!ffmpeg limite la taille de la sortie transcodée en tant que <104857600 octets

Je dois réduire la taille de celui-ci, en fait il serait vraiment cool de limiter la taille de sortie à 104857600 octets et laisser la bibliothèque ffmpeg gérer le reste (comme automatiquement ajuster la qualité) Une idée de comment faire ça?

Si ce n'est pas possible, comment puis-je baisser la qualité de 50%?

return new Promise(function (resolve, reject) { 
    var proc = new ffmpeg({ 
     source: file, 
     nolog: false 
    }); 



    proc.addOptions([ 
     '-f ' + format, 
     '-ar 16000', 
     '-vn' 
    ]); 

    proc.on('error', function (err, stdout, stderr) { 
     reject(err)   
    }); 
    proc.save(file.split(".")[0] + "." + format).on('end', function() {    
     resolve(file.split(".")[0] + "." + format); 
    }) 
}); 
+0

Comment avez-vous converti webm en wav, quel est le code de conversion complet? WAV est généralement non compressé et ne peut pas être «manipulé» avec n'importe quel ajustement de qualité. Essayez un format audio compressé. – osgx

+0

@osgx voir le code de conversion complet s'il vous plaît. Que suggérez-vous comme format audio compressé? Un exemple que je peux prendre comme référence en utilisant ffmpeg? – shamaleyte

Répondre

0

fichiers WAV sont généralement non compressé (mais il y a quelques options) - il n'y a pas une qualité à changer après la fréquence d'échantillonnage PCM + mono/stéréo + bits par échantillon sont sélectionnés (ils sont globalement statique pour le WAV , probablement pour le fichier complet) - https://en.wikipedia.org/wiki/WAV#WAV_file_audio_coding_formats_compared

Vérifiez la sortie de votre option ffmpeg -encoders et docs: https://www.ffmpeg.org/ffmpeg-codecs.html#Encoders pour trouver un encodeur audio avec compression.

+0

La commande suivante fonctionne via la ligne de commande, mais je ne sais pas comment l'exécuter correctement via npm, une idée? ffmpeg -acodec libopus -i 1.webm 1.wav J'ai essayé ce qui suit, mais je ne travaillais pas; var proc = new ffmpeg ({ source: fichier, nolog: false }); proc.audioCodec ('libopus'); – shamaleyte