Barrier: [๊ธฐ๋Šฅ ์š”์ฒญ] ์˜ค๋””์˜ค ์žฅ์น˜ ๊ณต์œ 

์— ๋งŒ๋“  2019๋…„ 04์›” 05์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: debauchee/barrier

๋‚˜๋Š” ๊ฐ€๋Šฅํ•œ ๊ณต์œ  ์˜ค๋””์˜ค์™€ ๋งˆ์ดํฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ์™€ ํ—ค๋“œํฐ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์–ด์š”

ํ•œ ์ปดํ“จํ„ฐ์—์„œ ๋งˆ์ดํฌ์™€ ํ—ค๋“œํฐ(์˜ˆ: ๋งˆ์šฐ์Šค ๋ฐ ํ‚ค๋ณด๋“œ)์„ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ ์ž‘๋™ํ•˜๋Š” ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์–ด๋ฆฌ์„์€ ์ผ์ด๋ผ๋ฉด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ๋‚ญ๋น„ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. :)

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ ์–ด๋„ Linux์˜ ๊ฒฝ์šฐ ์ด๊ฒƒ์€ pulseaudio ๋ชจ๋“ˆ์„ ํ†ตํ•ด ์ด๋ฏธ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค(์ ์–ด๋„ ๋‚ด ์ง€์‹์— ๋Œ€ํ•œ ์ถœ๋ ฅ์˜ ๊ฒฝ์šฐ).

์ „์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ผ ์ด๊ฒŒ ๋” ์ ํ•ฉํ•  ๊ฒƒ ๊ฐ™์•„์š”.

๋ชจ๋“  4 ๋Œ“๊ธ€

์ ์–ด๋„ Linux์˜ ๊ฒฝ์šฐ ์ด๊ฒƒ์€ pulseaudio ๋ชจ๋“ˆ์„ ํ†ตํ•ด ์ด๋ฏธ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค(์ ์–ด๋„ ๋‚ด ์ง€์‹์— ๋Œ€ํ•œ ์ถœ๋ ฅ์˜ ๊ฒฝ์šฐ).

์ „์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ผ ์ด๊ฒŒ ๋” ์ ํ•ฉํ•  ๊ฒƒ ๊ฐ™์•„์š”.

ํŠนํžˆ Windows์™€ Linux ์‚ฌ์ด์—์„œ ์–ด๋–ป๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ดํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋งํฌ(์ฐธ๊ณ ๋กœ ์ €๋Š” _์•„์ง_ ์ด ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค):

๋จผ์ € ๊ด€๋ จ ์Šคํƒ ๊ตํ™˜ ์งˆ๋ฌธ: ์ˆ˜ํผ์œ ์ € 1 ์ˆ˜ํผ์œ ์ € 2 sound.stackexchange

... ๋ฐ ์ผ๋ถ€ ์†”๋ฃจ์…˜(์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ ๋‚ด๊ฐ€ ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์Œ):

  • win7์—๋Š” ๋ถ„๋ช…ํžˆ DLNA๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ๋“ค๋กœ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” Play To ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • pulseaudio๋Š” ๋ถ„๋ช…ํžˆ Windows์šฉ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฑฐ๋‚˜ ์ ์–ด๋„ XP ์‹œ๋Œ€์—๋Š” ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋” ์ƒˆ๋กœ์šด ๊ฒƒ๊ณผ ์ž‘๋™ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋Š” ๋‚˜์—๊ฒŒ ๋ถˆ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.
  • edcast/altacast + icecast(edcast/altacast๋Š” ๊ตฌ์‹์œผ๋กœ ๋ณด์ด์ง€๋งŒ ๊ธฐ๊ปํ•ด์•ผ winxp์˜ ์Šคํฌ๋ฆฐ์ƒท)

์ „์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ผ ์ด๊ฒŒ ๋” ์ ํ•ฉํ•  ๊ฒƒ ๊ฐ™์•„์š”.

@AdrianKoshka๋Š” ํ™•์‹คํ•˜์ง€๋งŒ Barrier๋Š” ํ•„์š”ํ•œ ๊ฒƒ์„ ๋ฌธ์„œํ™”ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ์„ฑํ•˜๋„๋ก ๋„์™€์คŒ์œผ๋กœ์จ ์ด๋ฅผ ๋œ ๊ณ ํ†ต์Šค๋Ÿฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :)

๊ณฐ๊ณฐ์ด ์ƒ๊ฐํ•ด ๋ณด๋ฉด ์ด๊ฒƒ์ด ์žฅ๋ฒฝ์˜ ๋ฒ”์œ„๋ฅผ ์—„์ฒญ๋‚˜๊ฒŒ ๋ฒ—์–ด๋‚˜๊ณ  ๋ถˆํ•„์š”ํ•œ ๋ณต์žก์„ฑ๋งŒ ์ถ”๊ฐ€ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ffmpeg ์‚ฌ์šฉํ•˜์—ฌ ์žฅ๋ฒฝ๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฐ์Šคํฌํƒ‘ ์˜ค๋””์˜ค๋งŒ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค(๋งˆ์ดํฌ ์ž…๋ ฅ์ด ์•„๋‹˜).

์ด ์˜ˆ์—์„œ ํด๋ผ์ด์–ธํŠธ๋Š” Ubuntu์ด๊ณ  ์„œ๋ฒ„๋Š” Windows์ž…๋‹ˆ๋‹ค. ffmpeg๋Š” ๋‘˜ ๋‹ค์— ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ffmpeg์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ๋ช…๋ น๊ณผ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

"ํด๋ผ์ด์–ธํŠธ"์—์„œ ffmpeg ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ffmpeg -re -f alsa -ac 2 -i default -f rtp rtp://server:1234

์—ฌ๊ธฐ์„œ server ๋Š” ์ฐจ๋‹จ ์„œ๋ฒ„ IP ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค. ์ง€์ •๋œ ์ฃผ์†Œ๋กœ ๋ฐ์Šคํฌํƒ‘ ์˜ค๋””์˜ค๋ฅผ ์ŠคํŠธ๋ฆฌ๋ฐํ•ฉ๋‹ˆ๋‹ค.

(alsa ๋Œ€์‹  ํŽ„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ -f alsa ๋ฅผ -f pulse ๋Œ€์ฒด)

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

SDP:
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 192.168.1.82
t=0 0
a=tool:libavformat 58.21.100
m=audio 1234 RTP/AVP 97
b=AS:768
a=rtpmap:97 PCMU/48000/2

๋‚ด ์˜ˆ์—์„œ ์„œ๋ฒ„๋Š” 192.168.1.82

์„œ๋ฒ„ ์‹œ์Šคํ…œ( 192.168.1.82 )์—์„œ ์œ„์˜ SDP ํ…์ŠคํŠธ๋ฅผ sdp_file ํŒŒ์ผ์— ๋ณต์‚ฌํ•˜๊ณ  ffplay ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

./ffplay -protocol_whitelist 'rtp,file,udp' .\sdp_file

์ŠคํŠธ๋ฆฌ๋ฐ๋œ ์ €์ง€์—ฐ ์˜ค๋””์˜ค๋ฅผ ์ฆ๊ธฐ์‹ญ์‹œ์˜ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ฏธ๋ž˜์— ์žฅ๋ฒฝ ๋‚ด๋ถ€์—์„œ ์ž ์žฌ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํฌํฌํ•  ์‹œ๊ฐ„์ด ์žˆ๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•œ ์•ฝ๊ฐ„์˜ ์˜๊ฐ๊ณผ ์ง€์นจ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰