Haben Audioeinstellungen für Bitrate, Audiokanäle und Audio-Sampling-Frequenzen in FFmpeg eine Bedeutung, wenn Sie die RAW-Ausgabe an einen anderen Prozess weiterleiten?

683
JakeGould

Ich verwende FFmpeg Version 3.2.2 und LAME 3.99.5 unter macOS Sierra (10.12.2). Ich habe diesen Befehl, der die FFmpeg-Ausgabe (von einer FLAC-Datei) an LAME zur Kodierung in eine MP3-Datei leitet:

ffmpeg -y -v quiet -nostdin -i test.flac -b:a 320k -ac 2 -ar 44100 -f s16le -acodec pcm_s16le - | \ lame --quiet -r -m s --lowpass 19.7 -V 3 --vbr-new -q 0 -b 96 --scale 0.99 --athaa-sensitivity 1 - test.mp3; 

Es funktioniert gut und ich bin mit den Ergebnissen zufrieden, aber wenn ich die -v quietEinstellung aus dem FFmpeg-Teil der Pipe entferne - damit ich tatsächlich sehen kann, was passiert -, bemerke ich Folgendes in der Ausgabe:

Stream mapping: Stream #0:0 -> #0:0 (flac (native) -> pcm_s16le (native)) size= 81858kB time=00:07:55.18 bitrate=1411.2kbits/s speed=41.2x  

Beachten Sie, dass die Bitrate 1411.2kbitswährend des Konvertierungsprozesses angezeigt wird und nicht die von der eingestellten -b:a 320kOption festgelegte Bitrate von 320k .

Ist das erwartete Verhalten? Ist dieser ganze Teil der Audioparameter ( -b:a 320k -ac 2 -ar 44100) überflüssig, wenn die Ausgabe über RAW-Ausgabe erfolgt, -f s16le -acodec pcm_s16leda diese Bitrateneinstellung ignoriert wird?

1

1 Antwort auf die Frage

4
LordNeckbeard

Ist das erwartete Verhalten?

Ja, Bitrate ( -b:a) wird bei der Ausgabe eines unkomprimierten Formats ignoriert. Die resultierende Bitrate beträgt:

sample rate * bits per sample * number of channels = bitrate 

Also bei dir:

44100 * 16 * 2 = 1411200 bits/s or 1411.2 kilobits/s 

Ist das ganze Stück von Audioparametern ( -b:a 320k -ac 2 -ar 44100) überflüssig, wenn die Ausgabe über RAW erfolgt

Die Bitrate ist überflüssig. Wenn Sie die Anzahl der Kanäle oder die Samplerate aus irgendeinem Grund ändern möchten, können Sie dies beibehalten ( -acund -arwerden dies wahrscheinlich nie tun).