Fórum Root.cz
Hlavní témata => Software => Téma založeno: blindp 10. 03. 2019, 21:15:28
-
Ahoj, na rpi se zvukovou kartou cirrus logic jsem nahrál wav:
arecord -Dhw:sndrpiwsp -r 44100 -c 2 -f S24_LE test.wav
pokud se pokusím soubor přehrát pomocí vlc, je slyšet jen hrozný praskání, to stejné pokud soubor otevřu v audacity.
Soubor přehraji čistě jen pomocí aplay:
Signed 24 bit Little Endian, Rate 44100 Hz, Stereo
ALSA <-> PulseAudio PCM I/O Plugin
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S24_LE
subformat : STD
channels : 2
rate : 44100
exact rate : 44100 (44100/1)
msbits : 32
buffer_size : 22050
period_size : 5512
period_time : 125000
tstamp_mode : NONE
tstamp_type : GETTIMEOFDAY
period_step : 1
avail_min : 5512
period_event : 0
start_threshold : 22050
stop_threshold : 22050
silence_threshold: 0
silence_size : 0
boundary : 6206523236469964800
Co dělám špatně? Díky za nasměrování.
-
S24_LE nebo S24_3LE? Tipuju si, že důvod je tenhle.
-
S24_LE nebo S24_3LE? Tipuju si, že důvod je tenhle.
Nevím, pokud spustím
aplay -f S24_3LE test.wav
dostanu:
Warning: format is changed to S24_LE
Playing WAVE 'test.wav' : Signed 24 bit Little Endian, Rate 44100 Hz, Stereo
-
A co přesně konkrétně děláš? Příkazy, typ zvukovky atd...
-
A co přesně konkrétně děláš? Příkazy, typ zvukovky atd...
zvukova karta je intel ALC3227, jde mi o vytvoření mini nahrávacího studia s rpi, sestříhání v audacity, export -> flac, mp3...
zvukova karta na rpi je tato - https://www.element14.com/community/servlet/JiveServlet/downloadBody/72078-102-2-310056/Cirrus%20Logic%20Audio%20Card%20for%20B%2B%20and%20A%2B%20onwards%20V1.02.pdf (https://www.element14.com/community/servlet/JiveServlet/downloadBody/72078-102-2-310056/Cirrus%20Logic%20Audio%20Card%20for%20B%2B%20and%20A%2B%20onwards%20V1.02.pdf)
Bohužel k rpi teď nemám přístup, nejdřív o víkendu. Zkusím nahrát víc souborů, 16bit, 32bit.
Pokud nahraji wav pomocí arecord tak to přehraji zase jen pomocí aplay? Každopádně díky za snahu, po víkendu se snad posunu dál.
-
Pomohl by především vzorek toho vadného souboru.
-
16bit i 32bit LE je v pohodě, přehrát nejde jen 24bit.
-
Mně to v Audacity funguje, když to naimportuju buď jako wav, nebo když to naimportuju jako raw data. Tam to správně uhádne že to je Signed 32-bit PCM, LE, 2ch. (aktuální verze z Debianu Unstable)
Další nápovědu se dozvíš když se to pokusíš (neúspěšně) přehrát mplayerem:
AUDIO: 44100 Hz, 2 ch, s24le, 2822.4 kbit/133.33% (ratio: 352800->264600)
Všimni si těch procent/ratio, které u komprimovaných formátů bývá < 100 %, a tady je to naopak.
Nadále pohled hexdumpem ukazuje sloupce nulových bajtů.
Hypotéza (ověř si sám, na to jsem zase moc líný to dělat): ty samply vypadají tak, že je to vždycky 4 bajty, přičemž horní bajt je 0.
-
https://stackoverflow.com/questions/40297935/alsa-using-pcm-s24le/40301874#40301874
https://patchwork.kernel.org/patch/8868851/#18659311
wav neumí uložit formát S24_LE.
Buď bych zkusil S24_3LE (tedy skutečné 3 bajty), nebo S32_LE (tedy s nulovým bajtem na LSB pozici). S24_LE je obskurní formát.