" PCM(raw binary) ๋ฐ์ดํฐ์ ์ ์ฅ ๋ฐฉ์์ ๋ณ๊ฒฝํ๊ณ ์ถ์ต๋๋ค! "
์กฐ๊ธ ๋ ์์ธํ ๋งํ์๋ฉด,
Big endian ํ์์ผ๋ก ์ ์ฅ๋ PCM ๋ฐ์ดํฐ๋ฅผ Little endian ์ ์ฅ ํ์์ผ๋ก ๋ฐ๊พธ๊ณ ์ถ์๋ค.
๋๋ถ๋ถ ๊ธฐ๋ณธ์ ์ผ๋ก( ์๋์๋ ์์ ๐คฃ ) Little endian ํ์์ผ๋ก ๋ฐ์ดํฐ๋ค์ ์ ์ฅํ๋๋ฐ,
์ผ๋ณธํ์ฌ์์ ์ ๊ณตํ๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ ค๊ณ ํ๋๋ ๊ธฐ๋ณธ ํ์์ด Big endian์ด์ฌ์ผ ํ๋จ๋ค... ๐ฑ
์ธํฐ๋ท ๊ฒ์์ ํ์ ๋ Int ํ ๋ฐ์ดํฐ๋ฅผ Binery ํ์ผ๋ก ๋ฐ๊พธ๋ฉด์ Big ๋๋ Little endian ํ์์ ์ ํํ๋ ์์๋ ๋ง์ด ๋์์ผ๋,
๋ด ๊ฒ์ ์ค๋ ฅ์ด ๋ถ์กฑํ ํ์ธ์ง Raw data๋ฅผ ์ฝ์ด์ ์ด๋ฅผ ๋ฐ๊พธ๋ ์์๋ ์ฐพ์ง ๋ชปํ๋ค. ํน์ ๋ค๋ฅธ ๋ฐฉ๋ฒ ์์๋ฉด ์ฝ๋ฉ๋ ๋จ๊ฒจ์ฃผ์ธ์ ๐ง
ํด์ ํ์ฌ ์์ฌ๋ถ๊ป์ C์ธ์ด๋ก ๋ณํํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด์ ์ฃผ์ จ์ง๋ง..
Python์ StringIO ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค๋ณด๋ ๊ฒฐ๊ตญ ๋ง๋ค๊ฒ ๋์๋ค.
๋ณํํ๊ธฐ ์ ์, ์์๋ณด๋ ๋ณํ ๋ฐฉ๋ฒ!
์ฌ์ค ์ค๋ช ์ ๋ค์๋๋ฐ๋ ์์ง ์ ํํ๊ฒ '์ด๊ฑฐ์ผ!'๋ผ๋ ๋๋์ ๋ค์ง ์๋๋ค... ์๋ง ๋ด๊ฐ ๋ฅ๋ฉ์ด๋ผ ๊ทธ๋ ๊ฒ ์ง..๐คฃ
๊ทธ๋๋ ๊ฐ๋จํ ๋ค์ ์ค๋ช ์ ์ ๋ฆฌํด๋ณด์.
์๋๋ ๊ฐ์ PCM ๋ฐ์ดํฐ๋ฅผ Big/Little endian ๋ฐฉ์์ผ๋ก ์ ์ฅํ ํ์ผ์ vi๋ก Binary ๋ฐ์ดํฐ๋ฅผ Hex ํ์์ผ๋ก ์คํํ ๋ชจ์ต์ด๋ฉฐ,
์ผ์ชฝ์ Little endian ์ค๋ฅธ์ชฝ์ Big endian ๋ฐฉ์์ด๋ค.

ํน์ ์ฐจ์ด์ ์ ๊ฐ์ง๊ณ ์ ์ฅ์ด ๋์ด ์๋๋ฐ, ๋์น ์ฑ์ ๋ถ ๐!?
์ ๋ต์ ๋ฐ๋ก 2๊ธ์(? ๋ญ๋ผ๊ณ ์ค๋ช ํด์ผ ํ ์ง ใ ..) ๋ฌถ์์ผ๋ก ์ ๋ค๊ฐ ๋ฐ๋์ด์ ์ ์ฅ๋๋ ๊ฒ์ด ๋ฐ๋ณต๋๋ค!
์ฌ์ค ์ฒ์ ์ค๋ช ๋ง ๋ค์์ ๋๋ ์ ์ฅ ์์๊ฐ ๋ฐ๋๋ค๋๊ฑด ์๊ฒ ๋๋ฐ ๊ทธ๋ผ ํ์ผ ์ ์ฒด์ ์ผ๋ก ์ซ์๊ฐ ๋ฐ๋์ด ์ค์ผํ๋๊ฒ ์๋๊ฐ?
๋งจ ๋ท ๋ฐ์ดํฐ๊ฐ ์์์ค๊ณ ๋ง... ์ด๋ฐ ์๊ฐ์ ํ์๋๋ฐ ์๋์๋ค. ์ ๋ ์๋ฆฟ์๋ง ๋ฐ๊พธ์ด์ฃผ๋ฉด ๋๋ ๊ฑฐ ์๋ค.
... ๋๋ํ์ ๋ถ๋ค ์ ๋ฐ ์ฝ๋ฉ๋๋ก ๋ณด์ถฉ์ค๋ช ๋ถํ๋๋ ค์.
๊ทธ๋์ ๋ณํํด ๋ณด์
ํน๋ณํ ๊ฒ ์๊ณ Binary ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์์ ์ ๋์๋ฆฟ ์๋ฅผ ๋ฐ๊ฟ ์ค ๊ฒ์ด๋ค.
์ฝ์ ๋๋ ์ฝ์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์ธ ๋๋ Binary data๋ฅผ ๊ฐ์ง๊ณ ๋์์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฐ๋๋ Python์ ์๋ StringIO ๋ชจ๋์ ์ถ๊ฐ๋ก ์ฌ์ฉํ๋ค.
๋ญ.. ์๋ ๊ทธ๊ฒ ์ฃผ ๋ชฉ์ ์ด๊ธฐ๋ ํ๊ณ .. ์ ์ฒด ์ฝ๋๋ Github์์ ๋ณผ ์ ์๋ค.
'Lang > ๐ Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
โ Solved * [Ubuntu] Crypto install Error and How to Install with Python (0) | 2020.03.09 |
---|---|
๐ Python * Message ์ํธํ AES128, HMAC (0) | 2020.03.09 |
๐ Python * MySQLdb ๋ชจ๋ ์ค์น (0) | 2020.03.09 |
๐ Python * Linux(Ubuntu) ํ๊ฒฝ๋ณ์ ์ฝ๋๋ก ๊ฐ์ ธ์ค๊ธฐ (0) | 2020.03.09 |
๐ Python * socket ์ฐ๊ฒฐ + ๋ฌธ์์ด ์ ์ก (0) | 2020.03.09 |