PulseAudio 16.0 ์‚ฌ์šด๋“œ ์„œ๋ฒ„ ์ถœ์‹œ

PulseAudio 16.0 ์‚ฌ์šด๋“œ ์„œ๋ฒ„์˜ ์ถœ์‹œ๊ฐ€ ๋ฐœํ‘œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์„œ๋ฒ„๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋‹ค์–‘ํ•œ ์ €์ˆ˜์ค€ ์˜ค๋””์˜ค ํ•˜์œ„ ์‹œ์Šคํ…œ ๊ฐ„์˜ ์ค‘๊ฐœ์ž ์—ญํ• ์„ ํ•˜์—ฌ ์žฅ๋น„ ์ž‘์—…์„ ์ถ”์ƒํ™”ํ•ฉ๋‹ˆ๋‹ค. PulseAudio๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ณ„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜์ค€์—์„œ ๋ณผ๋ฅจ ๋ฐ ์˜ค๋””์˜ค ๋ฏน์‹ฑ์„ ์ œ์–ดํ•˜๊ณ  ์—ฌ๋Ÿฌ ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ ์ฑ„๋„ ๋˜๋Š” ์‚ฌ์šด๋“œ ์นด๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์˜ค๋””์˜ค์˜ ์ž…๋ ฅ, ๋ฏน์‹ฑ ๋ฐ ์ถœ๋ ฅ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์˜ค๋””์˜ค ์ŠคํŠธ๋ฆผ ํ˜•์‹์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„ํ–‰ ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ์„ ํ†ตํ•ด ์˜ค๋””์˜ค ์ŠคํŠธ๋ฆผ์„ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์œผ๋กœ ํˆฌ๋ช…ํ•˜๊ฒŒ ๋ฆฌ๋””๋ ‰์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PulseAudio ์ฝ”๋“œ๋Š” LGPL 2.1+ ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. Linux, Solaris, FreeBSD, OpenBSD, DragonFlyBSD, NetBSD, macOS ๋ฐ Windows๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

PulseAudio 16.0์˜ ์ฃผ์š” ๊ฐœ์„  ์‚ฌํ•ญ:

  • module-rtp-send ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†ก๋œ ์˜ค๋””์˜ค๋ฅผ ์••์ถ•ํ•˜๊ธฐ ์œ„ํ•ด Opus ์˜ค๋””์˜ค ์ฝ”๋ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค(์ด์ „์—๋Š” PCM๋งŒ ์ง€์›๋จ). Opus๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด GStreamer ์ง€์›์œผ๋กœ PulseAudio๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  module-rtp-send ๋ชจ๋“ˆ์—์„œ "enable_opus=true" ์„ค์ •์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ„ฐ๋„(tunnel-sink ๋ฐtunnel-source)์„ ํ†ตํ•ด ์˜ค๋””์˜ค๋ฅผ ์ „์†ก/์ˆ˜์‹ ํ•˜๋Š” ๋ชจ๋“ˆ์— Latency_msec ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์—ฐ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ด์ „์—๋Š” ์ง€์—ฐ์ด 250๋งˆ์ดํฌ๋กœ์ดˆ๋กœ ์—„๊ฒฉํ•˜๊ฒŒ ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค).
  • ํ„ฐ๋„์„ ํ†ตํ•ด ์˜ค๋””์˜ค๋ฅผ ์†ก์ˆ˜์‹ ํ•˜๋Š” ๋ชจ๋“ˆ์€ ์—ฐ๊ฒฐ ์‹คํŒจ ์‹œ ์„œ๋ฒ„์— ์ž๋™์œผ๋กœ ๋‹ค์‹œ ์—ฐ๊ฒฐ๋˜๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์—ฐ๊ฒฐ์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด reconnect_interval_ms ์„ค์ •์„ ์ง€์ •ํ•˜์„ธ์š”.
  • Bluetooth ์˜ค๋””์˜ค ์žฅ์น˜์˜ ๋ฐฐํ„ฐ๋ฆฌ ์ˆ˜์ค€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ถฉ์ „ ์ˆ˜์ค€์€ "pactl list" ์ถœ๋ ฅ(bluetooth.battery ์†์„ฑ)์— ํ‘œ์‹œ๋œ ์žฅ์น˜ ์†์„ฑ์—๋„ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • JSON ํ˜•์‹์œผ๋กœ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ธฐ๋Šฅ์ด pactl ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜•์‹์€ text ๋˜๋Š” json ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” 'โ€”format' ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.
  • ์Šคํ…Œ๋ ˆ์˜ค์™€ ๋ชจ๋…ธ์— ๋ณ„๋„์˜ ALSA ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” EPOS/Sennheiser GSP 670 ๋ฐ SteelSeries GameDAC ํ—ค๋“œ์…‹์„ ์‚ฌ์šฉํ•  ๋•Œ ์Šคํ…Œ๋ ˆ์˜ค ์ถœ๋ ฅ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ด์ „์—๋Š” ๋ชจ๋…ธ ์žฅ์น˜๋งŒ ์ง€์›๋จ).
  • Texas Instruments PCM2902 ์นฉ ๊ธฐ๋ฐ˜ ์‚ฌ์šด๋“œ ์นด๋“œ์—์„œ ์‚ฌ์šด๋“œ๋ฅผ ์ˆ˜์‹ ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • 6์ฑ„๋„ ์™ธ๋ถ€ ์‚ฌ์šด๋“œ ์นด๋“œ Native Instruments Komplete Audio 6 MK2์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ„ฐ๋„๊ณผ ๊ฒฐํ•ฉ-์‹ฑํฌ ๋ชจ๋“ˆ์„ ํ†ตํ•ด ์˜ค๋””์˜ค๋ฅผ ์ „์†กํ•  ๋•Œ ๋™๊ธฐํ™” ๋ฐ ์ง€์—ฐ ๊ฒฐ์ •์˜ ์ •ํ™•์„ฑ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ง€์—ฐ ์ œ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ฏธ์„ธ ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด adjust_threshold_usec ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ module-loopback ๋ชจ๋“ˆ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๊ธฐ๋ณธ ์ง€์—ฐ์€ 250๋งˆ์ดํฌ๋กœ์ดˆ). adjust_time ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์ด 10์ดˆ์—์„œ 1์ดˆ๋กœ ์ค„์–ด๋“ค์—ˆ๊ณ , 0.5์ดˆ ๋ฏธ๋งŒ์˜ ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ(์˜ˆ: XNUMX)์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์žฌ์ƒ ์†๋„ ์กฐ์ • ๋กœ๊น…์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ ์ด์ œ๋Š” ๋ณ„๋„์˜ log_interval ์˜ต์…˜์œผ๋กœ ๊ทœ์ œ๋ฉ๋‹ˆ๋‹ค.
  • JACK์„ ํ†ตํ•œ ์˜ค๋””์˜ค ์ „์†ก/์ˆ˜์‹ ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” module-jackdbus-Detect ๋ชจ๋“ˆ์—๋Š” JACK์„ ํ†ตํ•œ ์˜ค๋””์˜ค ์ „์†ก ๋˜๋Š” ์ˆ˜์‹ ๋งŒ ์„ ํƒ์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋„๋กink_enabled ๋ฐ source_enabled ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ JACK ๊ตฌ์„ฑ์„ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ชจ๋“ˆ์„ ๋‹ค์‹œ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฌ๋Ÿฌ ์‚ฌ์šด๋“œ ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์ผ ์„œ๋ผ์šด๋“œ ์‚ฌ์šด๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋Š” ์ฑ„๋„ ๋ฆฌ๋ฏน์‹ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด remix ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ module-combine-sink ๋ชจ๋“ˆ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€