Wie spielt man eine PCM-Datei auf einem UNIX-System ab?

6581
Cookie Monster

Ich versuche herauszufinden, wie man libmad mit C benutzt. Das Problem ist, dass libmad Audiodateien in .pcm-Dateien konvertiert und ich keine Möglichkeit finde, diese Dateien abzuspielen. Es gibt keinen einfachen .pcm-Player, und Audacity stürzt jedes Mal ab, wenn ich versuche, die pcm-Datei damit zu öffnen. Hat jemand Erfahrung damit? Ich bin offen für das Konvertieren dieser PCM-Dateien in WAV-Dateien oder ein anderes Format, aber auch hier gibt es keine direkte Möglichkeit, dies zu tun (zumindest habe ich noch keine gefunden).

4

3 Antworten auf die Frage

2
quack quixote

Sind Sie sicher, dass Sie gültige PCM-Daten erhalten? Welche Art von PCM erhalten Sie?

Basic PCM wird auf Audio-CDs und in von CDs gerippten WAV-Dateien verwendet . es sollte durch fast alles spielbar sein. Im Einzelnen sind es 16 Bit (pro Sample), 44,1 kHz (Sample Rate), Stereo (2 Kanäle). Das Abspielen dieser Art von PCM ist so einfach wie cat file.pcm > /dev/audio( /dev/dspoder ein anderes geeignetes Audiogerät).

Auf der libmad-Startseite wird angegeben, dass libmad standardmäßig 24-Bit-PCM ausgibt. Die Player-Software könnte dadurch verwirrt werden, wenn das Standard-16-Bit-PCM erwartet wird. Wenn Sie dies noch nicht getan haben, überprüfen Sie die libmad-Nutzung Ihres Programms anhand des madlld(libmad-API auf niedriger Ebene), um sicherzustellen, dass Sie die korrekte Ausgabe aus der Bibliothek erhalten.

Da PCM-Daten keine Header enthalten, wie dies bei WAV-Dateien der Fall ist, müssen Sie möglicherweise das PCM-Format angeben, damit ein Programm die Datei korrekt laden kann. Audacity sollte mit jedem Standard-PCM-Format umgehen können.

Es ist auch möglich, dass Sie eine ungültige PCM-Ausgabe erhalten libmad, aufgrund eines Fehlers in der Bibliothek oder aufgrund der nicht ordnungsgemäßen Verwendung der Bibliothek durch Ihren Code.

Dies führte mich zur richtigen Antwort. Obwohl Audacity abstürzte, als ich versuchte, die PCM-Datei zu öffnen, konnte ich sie erfolgreich importieren. Ich bin gerade auf Projekt> Rohdaten importieren gegangen. Ich beließ es bei den Standardeinstellungen (Signiertes 16-Bit-PCM, Little-Endian, Stereo, bei 44 kHz) und voila! Vielen Dank. Cookie Monster vor 14 Jahren 1
`/ dev / audio` kann zusätzliche Pakete erfordern, und` / dev / sdn` ist möglicherweise nicht sehr einfach zu verwenden: http://unix.stackexchange.com/questions/13732/generating-random-noise-for-fun- in-dev-snd Ciro Santilli 新疆改造中心 六四事件 法轮功 vor 8 Jahren 0
2
Ciro Santilli 新疆改造中心 六四事件 法轮功

Ubuntu Linux 15.10

sudo apt-get install ffmpeg ffplay -autoexit -f u16be -ar 44100 -ac 1 in.raw 

oder:

sudo apt-get install play play -b 16 --endian big -e unsigned -r 44100 in.raw 

ffplay Optionen:

  • -autoexit: Spieler verlassen, wenn der Stream endet
  • -f: Format:
    • u: unsigniert
    • 16: 16 Bits pro Wert
    • be: Big-Endian
  • -ar: Abtasthäufigkeit
  • -ac: Anzahl der Kanäle

play Optionen: Vergleiche die Werte ;-)

Beispiel zum Erstellen eigener .rawDateien zum Spielen: https://stackoverflow.com/questions/732699/how-is-audio-represented-with-numbers/36510894#36510894

Siehe auch: https://stackoverflow.com/questions/20314739/how-to-play-pcm-sound-file-in-ubuntu

0
Sathya

Vielleicht können Sie ein Werkzeug wie Sox verwenden

SoX ist ein plattformübergreifendes Befehlszeilenprogramm (Windows, Linux, MacOS X usw.), mit dem verschiedene Formate von Computer-Audiodateien in andere Formate konvertiert werden können. Es kann auch verschiedene Effekte auf diese Sounddateien anwenden, und als zusätzlicher Bonus kann SoX Audiodateien auf den meisten Plattformen abspielen und aufnehmen.