it-swarm.com.de

Kann ffmpeg Audio von Raw PCM nach WAV konvertieren?

Ich kann WAV-Datei in PCM konvertieren

ffmpeg -i file.wav -f s16le -acodec pcm_s16le file.pcm

Wie kann ich diesen Vorgang rückgängig machen?

32

Der WAV-Container fügt den PCM-Rohdaten lediglich einen einfachen Header hinzu. Der Header enthält das Format, die Abtastrate und die Anzahl der Kanäle. Da die PCM-Rohdaten diese Informationen nicht enthalten, müssen Sie sie in der Befehlszeile angeben. Optionen werden vor der Datei angegeben, auf die sie angewendet werden. Daher können Optionen vor der Eingabedatei zum Angeben des Formats der Eingabedatei und Optionen nach der Eingabedatei und vor der Ausgabedatei zum Angeben des gewünschten Formats der Ausgabe verwendet werden Datei. Wenn Sie die gleichen Bits/Samples, Sampleraten und die gleiche Anzahl von Kanälen in der Ausgabedatei haben möchten, benötigen Sie in diesem Fall keine Ausgabeoptionen. Das WAV-Container-Format ist bereits durch die Dateierweiterung gekennzeichnet.

Beispiel zur Konvertierung von Roh-PCM in WAV:

ffmpeg -f s16le -ar 44.1k -ac 2 -i file.pcm file.wav
  • -f s16le… Signierte 16-Bit-Little-Endian-Samples
  • -ar 44.1k… Abtastrate 44,1 kHz
  • -ac 2… 2 Kanäle (Stereo)
  • -i file.pcm … Eingabedatei
  • file.wav… Ausgabedatei
57
mark4o
ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav
6
olegog

Seien Sie vorsichtig mit dem RAW-Datenformat

-wenn u8 8-Bit ohne Vorzeichen ist, wird s16 nur für den Fall signiert, dass es andere gibt

 $ ffmpeg -formats | grep PCM
 DE alaw            PCM A-law
 DE f32be           PCM 32-bit floating-point big-endian
 DE f32le           PCM 32-bit floating-point little-endian
 DE f64be           PCM 64-bit floating-point big-endian
 DE f64le           PCM 64-bit floating-point little-endian
 DE mulaw           PCM mu-law
 DE s16be           PCM signed 16-bit big-endian
 DE s16le           PCM signed 16-bit little-endian
 DE s24be           PCM signed 24-bit big-endian
 DE s24le           PCM signed 24-bit little-endian
 DE s32be           PCM signed 32-bit big-endian
 DE s32le           PCM signed 32-bit little-endian
 DE s8              PCM signed 8-bit
 DE u16be           PCM unsigned 16-bit big-endian
 DE u16le           PCM unsigned 16-bit little-endian
 DE u24be           PCM unsigned 24-bit big-endian
 DE u24le           PCM unsigned 24-bit little-endian
 DE u32be           PCM unsigned 32-bit big-endian
 DE u32le           PCM unsigned 32-bit little-endian
 DE u8              PCM unsigned 8-bit
5
barney

Der folgende Code sollte funktionieren:

ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav
0
Jerry Dai