Mopidy: ๋‹ค์Œ ํŠธ๋ž™์€ ํ˜„์žฌ ์žฌ์ƒ ์ค‘์ธ ํŠธ๋ž™์— ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. / Mopidy๋Š” ํŠธ๋ž™์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 06์›” 13์ผ  ยท  39์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: mopidy/mopidy

ํŠธ๋ž™์ด ํŠธ๋ž™์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ํŠธ๋ž™์€ ํ˜„์žฌ ํŠธ๋ž™์ด ๋๋‚œ ํ›„ ์žฌ์ƒ์„ ์‹œ์ž‘ํ•˜์ง€๋งŒ ํ˜„์žฌ ํŠธ๋ž™์˜ ์ด ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๊ณ„์†๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ, ํŠธ๋ž™์ด ๋๋‚ฌ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ณ  ์žฌ์ƒ์„ ๋ฉˆ์ถฅ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ถœ๋ ฅ์ด๋‚˜ ๋ฏน์„œ์— ๊ด€๊ณ„์—†์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋งํ•˜๋Š” ๊ฒƒ์„ ๊ทธ๋ฆผ์œผ๋กœ ๊ทธ๋ฆฌ๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ncmpcpp์—์„œ ์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š”์ง€ ๊ทธ๋ฆผ์„ ์ฒจ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : mopidy๋Š” ํ˜„์žฌ ์ด์ „ ํŠธ๋ž™์ธ Verstummt!

2016-06-13-141459_1146x63_scrot

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

mpc next ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋ž™์„ ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์„ ํƒํ•œ ์ฒซ ๋ฒˆ์งธ ๋…ธ๋ž˜๊ฐ€ ๊ณ„์† ํ‘œ์‹œ๋˜๋Š” ๋™์•ˆ ์žฌ์ƒ ๋ชฉ๋ก์˜ ๋์— ๋„๋‹ฌํ•˜๋ฉด ๋กœ๊ทธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

๋””๋ฒ„๊ทธ 2016-06-13 14:13:34,350 [29984:MpdSession-13] mopidy.mpd.session
[:: ffff:50.76.48.109 ]:5684: ์œ ํœด ์š”์ฒญ

๋ฒ„์ „: ๋ชจํ”ผ๋”” 2.0.0

ํ…Œ์ŠคํŠธ๋œ ํ™•์žฅ:

  • Mopidy-GMusic (1.0.0)
  • ๋ชจํ”ผ๋””-์‚ฌ์šด๋“œํด๋ผ์šฐ๋“œ(2.0.2)
  • Mopidy-Youtube (2.0.2)

ํŽธ์ง‘: ๊ฒฐ๊ตญ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ๋‹ˆ๋‹ค.

DEBUG    2016-06-13 14:47:26,482 [29984:MpdSession-18] mopidy.mpd.session
  Request from [::ffff:50.76.48.109]:25131: status
DEBUG    2016-06-13 14:47:26,486 [29984:MpdSession-18] mopidy.mpd.session
  Response to [::ffff:50.76.48.109]:25131: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 7
    playlistlength: 4
    xfade: 0
    state: play
    song: 0
    songid: 3
    time: 523:215
    elapsed: 523.607
    bitrate: 320
    OK
DEBUG    2016-06-13 14:47:26,582 [29984:MainThread] mopidy.audio.gst
  Got TAG bus message: tags={'audio-codec': [u'MPEG-1 Layer 3 (MP3)'], 'bitrate': [320000], 'has-crc': [False], 'channel-mode': [u'stereo']}
DEBUG    2016-06-13 14:47:26,584 [29984:MainThread] mopidy.audio.gst
  Got TAG bus message: tags={'audio-codec': [u'MPEG-1 Layer 3 (MP3)'], 'bitrate': [320000], 'channel-mode': [u'joint-stereo']}
DEBUG    2016-06-13 14:47:26,620 [29984:MpdSession-18] mopidy.mpd.session
  Request from [::ffff:50.76.48.109]:25131: idle
DEBUG    2016-06-13 14:47:26,791 [29984:MainThread] mopidy.audio.gst
  Got TAG bus message: tags={'audio-codec': [u'MPEG-1 Layer 3 (MP3)'], 'minimum-bitrate': [320031], 'bitrate': [320000], 'maximum-bitrate': [320031], 'channel-mode': [u'joint-stereo']}
DEBUG    2016-06-13 14:47:26,843 [29984:MainThread] mopidy.audio.gst
  Got TAG bus message: tags={'audio-codec': [u'MPEG-1 Layer 3 (MP3)'], 'minimum-bitrate': [319725], 'bitrate': [320000], 'maximum-bitrate': [320031], 'channel-mode': [u'joint-stereo']}
DEBUG    2016-06-13 14:47:27,624 [29984:MpdSession-18] mopidy.mpd.session
  Request from [::ffff:50.76.48.109]:25131: noidle
DEBUG    2016-06-13 14:47:27,627 [29984:MpdSession-18] mopidy.mpd.session
  Response to [::ffff:50.76.48.109]:25131: OK
DEBUG    2016-06-13 14:47:27,755 [29984:MpdSession-18] mopidy.mpd.session
  Request from [::ffff:50.76.48.109]:25131: status
DEBUG    2016-06-13 14:47:27,759 [29984:MpdSession-18] mopidy.mpd.session
  Response to [::ffff:50.76.48.109]:25131: 
    volume: 100
    repeat: 0
    random: 0
    single: 0
    consume: 0
    playlist: 7
    playlistlength: 4
    xfade: 0
    state: play
    song: 0
    songid: 3
    time: 2:215
    elapsed: 2.194
    bitrate: 320
    OK

์ฒ˜์Œ์— ์žฌ์ƒ์„ ์‹œ์ž‘ํ•œ ๋…ธ๋ž˜๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

C-bug A-core

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

์ด์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์€ ๊ณง ์ถœ์‹œ๋  v2.2.3 ๋ฆด๋ฆฌ์Šค์ž…๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์œ ํœด ๋ช…๋ น์ด ์ „์†ก๋˜๊ฑฐ๋‚˜ ์ „ํ˜€ ๋‚˜์˜ค์ง€ ์•Š๋Š” ๊ฒฝํ•ฉ ์กฐ๊ฑด ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋นˆํ‹ˆ์—†๋Š” ์ž‘์—…์„ ํ•  ๋•Œ ์ด๊ฒƒ์„ ๊ณ ์น˜๋ ค๊ณ  ํ–ˆ๋˜ ๊ธฐ์–ต์ด ๋‚˜๋Š”๋ฐ, ์ผ€์ด์Šค๋ฅผ ๋†“์ณค์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,
๋‚ด ๊ฒฝ์šฐ์—๋Š” mpd๊ฐ€ ํŠธ๋ž™์„ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์ง€๋งŒ, ๋‹ค์Œ์— mpc๋ฅผ ์‹คํ–‰ํ•œ ๋‹ค์Œ ๋‘ ๊ณก์„ ์žฌ์ƒํ•˜๊ณ  ๋‘ ๋ฒˆ์งธ ๊ณก์„ ๊ณ„์†ํ•ด์„œ ๋ฐ˜๋ณตํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ถœ๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ฃผ์„์„ ์ œ๊ฑฐ(๋ฐ ๋ณ€๊ฒฝ)ํ–ˆ์„ ๋•Œ๋งŒ ๊ทธ๊ฒƒ์„ ๊ฒฝํ—˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •ํ–ˆ์„ ๋•Œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Fwiw, ์ถœ๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅ์„ ์žฌ์ƒํ•˜๊ณ  _๋ฐ_ ์ŠคํŠธ๋ฆฌ๋ฐํ•ฉ๋‹ˆ๋‹ค.
-๋‚จ์ž ์ด๋ฆ„.

๋ฐฉ๊ธˆ ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ถœ๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ฃผ์„ ์ฒ˜๋ฆฌ๋˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค(๊ธฐ๋ณธ ์ œ๊ณต ๊ธฐ๋ณธ๊ฐ’ ์‚ฌ์šฉ).
-๋‚จ์ž ์ด๋ฆ„.

์ด ๊ฒฝ์šฐ output parameter ๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

xdg-config/mopidy/mopidy.conf์˜ ์ถœ๋ ฅ ์˜ต์…˜์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋‚ด iPhone์—์„œ ๋ณด๋‚ธ

2016๋…„ 7์›” 25์ผ ์˜คํ›„ 3์‹œ 26๋ถ„์— Thomas Adamcik [email protected]์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ์ถœ๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ๋ณด๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•˜์„ธ์š”.

์ด๊ฒƒ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ? :-)

์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ˆ˜์ •์ด ์ •๋ง ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค :D.
-๋‚จ์ž ์ด๋ฆ„.

MPD ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ์›น ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์— ๋„์›€์ด ๋  ๋งŒํ•œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์„์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์„ค์ •์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ธฐ๊บผ์ด ์ œ๊ณตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@lilmike ๋‚ด ์ƒ๊ฐ์— ์งˆ๋ฌธ์€ ๊ธฐ๋ณธ ์ œ๊ณต๋˜๋Š” ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋‹ค๋ฅธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŒŒ์ผ ์‹ฑํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜์‹œ๋‚˜์š”?

@monokles ์›น ํ”„๋ก ํŠธ์—”๋“œ์—๋Š” ์œ ํœด ๋ช…๋ น์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ mopidy deps , mopidy config ๋ฐ ๋””๋ฒ„๊ทธ ๋กœ๊ทธ์˜ ์ถœ๋ ฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ(dpaste ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒฝ์šฐ)? ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค ์›น ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š”,
๋‚˜๋Š” ํ‹ฐ๋ฅผ ์ทจํ•˜๋Š” ์ถœ๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๋ฅผ ๋‚ด ์Šคํ”ผ์ปค๋กœ์˜ ์ถœ๋ ฅ์œผ๋กœ ๋ถ„ํ• ํ•˜๊ณ  icecast ์„œ๋ฒ„๋กœ ์ŠคํŠธ๋ฆฌ๋ฐํ•ฉ๋‹ˆ๋‹ค. ์ถœ๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ฃผ์„์„ ๋‹ฌ๋ฉด ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์„ค์ •ํ•˜๋ฉด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
-๋‚จ์ž ์ด๋ฆ„.

์•ˆ๋…•ํ•˜์„ธ์š”!
@kingosticks , ์—ฌ๊ธฐ์—์„œ ๋งค์šฐ ๋ฐ”์œ ์‹œ๊ฐ„์„

๋Œ€๊ธฐ์—ด์— ๋‘ ๊ฐœ ์ด์ƒ์˜ ํŠธ๋ž™์ด ์žˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์š”์•ฝ:

  1. mopidy๊ฐ€ ์ฒซ ๋ฒˆ์งธ ํŠธ๋ž™์„ ์žฌ์ƒํ•ฉ๋‹ˆ๋‹ค.
  2. mopidy๋Š” ๋‘ ๋ฒˆ์งธ ํŠธ๋ž™์„ ์žฌ์ƒํ•ฉ๋‹ˆ๋‹ค(์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์ง€๋งŒ, ์ฆ‰ ์—ฌ์ „ํžˆ ์žฌ์ƒ ์ค‘์ธ ํŠธ๋ž™์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ํŠธ๋ž™์„ ํ‘œ์‹œํ•จ).
  3. mopidy๋Š” ๋‘ ๋ฒˆ์งธ ํŠธ๋ž™์ด ๊ณ„์† ๋ฐ˜๋ณตํ•ด์„œ ์žฌ์ƒ๋˜๋Š” ๋ฃจํ”„์— ๊ฐ‡ํžˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ฎค์ง๋ฐ•์Šค ์›น ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ moped(๋ฐ ๋‹ค๋ฅธ ํ”„๋ก ํŠธ์—”๋“œ)๋„ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
๋ชจํ”ผ๋”” ๊ตฌ์„ฑ
๋ชจํ”ผ๋”” ๋Ž์Šค
์–ด๋–ค ์ด์œ ์—์„œ์ธ์ง€ mopidy๊ฐ€ ๋””๋ฒ„๊ทธ ๋กœ๊ทธ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค... ์ด์œ ๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ
์ด๊ฒƒ์ด ์œ ์šฉํ•˜๋‹ค๋ฉด ์—ฌ๊ธฐ ์— ์ผ๋ฐ˜ ๋กœ๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ icecast๊ฐ€ ์•„๋‹ˆ๋ผ liquidsoap์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค.

๋” ์ด์ƒ ์ œ๊ณตํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ(๋˜๋Š” ๋””๋ฒ„๊ทธ ๋กœ๊ทธ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ) ์•Œ๋ ค์ฃผ์„ธ์š”!

์•ˆ๋…•ํ•˜์„ธ์š”.
์ €๋Š” mopidy๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•œ ์ง€ ๋ถˆ๊ณผ ๋ช‡ ์‹œ๊ฐ„๋ฐ–์— ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ์ด๋ฏธ ์ด ๋ฒ„๊ทธ์˜ ์˜ํ–ฅ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
@monokles ์™€ ์ •ํ™•ํžˆ ๋™์ผํ•œ ๋™์ž‘(๋‚ด ๊ฒฝ์šฐ์—๋Š” ์„ธ ๋ฒˆ์งธ ๋…ธ๋ž˜์—์„œ ๋ฃจํ”„๊ฐ€ ๋ฐœ์ƒํ•จ)
์—ฌ๋Ÿฌ๋ถ„์€ ์ด ๊ฑฐ๋Œ€ํ•œ ๋ฒ„๊ทธ๋ฅผ ์–ด๋–ป๊ฒŒ ํ”ผํ–ˆ์Šต๋‹ˆ๊นŒ?

๊ท€ํ•˜(๋˜๋Š” ๋ˆ„๊ตฌ๋“ ์ง€) mopidy deps , mopidy config ๋ฐ ์ด๋ฅผ ์žฌํ˜„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •ํ™•ํ•œ ๋‹จ๊ณ„์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ ํ•ด์š”.

์ด์ „์— ์ œ๊ณต๋œ 2๊ฐœ์˜ ๊ฒŒ์‹œ๋ฌผ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ๊ณ„๋Š” ์—†์Šต๋‹ˆ๋‹ค.... HTTP ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด ๋Œ€๊ธฐ์—ด์— Spotify ํŠธ๋ž™ 3๊ฐœ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์žฌ์ƒํ•˜๋ฉด ์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ๋‚ด์šฉ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ์„ ์ œ๊ณตํ•˜๋ฉด ๋น„ํ‘œ์ค€ ๊ตฌ์„ฑ ์ถœ๋ ฅ๊ณผ ๊ด€๋ จ๋œ ํ•ญ๋ชฉ๋„ ํ‘œ์‹œ๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,
๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์€ [์˜ค๋””์˜ค]-> ์ถœ๋ ฅ์ด ๊ธฐ๋ณธ๊ฐ’์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด,

mopidy ๊ตฌ์„ฑ(์ž‘๋™ ์ค‘์ผ ๋•Œ):
[ํ•ต์‹ฌ]
cache_dir = $XDG_CACHE_DIR/mopidy
config_dir = $XDG_CONFIG_DIR/mopidy
data_dir = $XDG_DATA_DIR/mopidy
max_tracklist_length = 10000
๋ณต์› ์ƒํƒœ = ๊ฑฐ์ง“

[๋ฒŒ์ฑ„ ๋ฐ˜์ถœ]
์ƒ‰์ƒ = ์‚ฌ์‹ค
console_format = %(๋ ˆ๋ฒจ ์ด๋ฆ„)-8s %(๋ฉ”์‹œ์ง€)s
debug_format = %(levelname)-8s %(asctime)s [%(process)d:%(threadName)s] %(name)s\n %(message)s
debug_file = mopidy.log
๊ตฌ์„ฑ ํŒŒ์ผ =

[์˜ค๋””์˜ค]
๋ฏน์„œ = ์†Œํ”„ํŠธ์›จ์–ด
๋ฏน์„œ ๋ณผ๋ฅจ =
์ถœ๋ ฅ = ์ž๋™ ์˜ค๋””์˜ค ์‹ฑํฌ
๋ฒ„ํผ ์‹œ๊ฐ„ =

[๋Œ€๋ฆฌ]
๊ณ„ํš =
ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ =
ํฌํŠธ =
์‚ฌ์šฉ์ž ์ด๋ฆ„ =
๋น„๋ฐ€๋ฒˆํ˜ธ =

[MPD]
ํ™œ์„ฑํ™” = ์‚ฌ์‹ค
ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ = 127.0.0.1
ํฌํŠธ = 6600
๋น„๋ฐ€๋ฒˆํ˜ธ =
max_connections = 20
์—ฐ๊ฒฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ = 60
zeroconf = $hostname์˜ Mopidy MPD ์„œ๋ฒ„
command_blacklist =
๋ชฉ๋ก
๋ชฉ๋ก ์ •๋ณด
default_playlist_scheme = m3u

[http]
ํ™œ์„ฑํ™” = ์‚ฌ์‹ค
ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ = 127.0.0.1
ํฌํŠธ = 6680
static_dir =
zeroconf = $hostname์˜ Mopidy HTTP ์„œ๋ฒ„

[๊ฐœ์šธ]
ํ™œ์„ฑํ™” = ์‚ฌ์‹ค
ํ”„๋กœํ† ์ฝœ =
http
https
mms
rtmp
rtmps
rtsp
๋ฉ”ํƒ€๋ฐ์ดํ„ฐ_๋ธ”๋ž™๋ฆฌ์ŠคํŠธ =
์‹œ๊ฐ„ ์ดˆ๊ณผ = 5000

[m3u]
ํ™œ์„ฑํ™” = ์‚ฌ์‹ค
base_dir =
default_encoding = ๋ผํ‹ด-1
default_extension = .m3u8
์žฌ์ƒ ๋ชฉ๋ก_๋””๋ ‰ํ† ๋ฆฌ =

[์†Œํ”„ํŠธ์›จ์–ด ๋ฏน์„œ]
ํ™œ์„ฑํ™” = ์‚ฌ์‹ค

[ํŒŒ์ผ]
ํ™œ์„ฑํ™” = ์‚ฌ์‹ค
๋ฏธ๋””์–ด ๋””๋ ‰ํ† ๋ฆฌ =
$XDG_MUSIC_DIR|์Œ์•…
~/|ํ™ˆ
์ œ์™ธ๋œ ํŒŒ์ผ ํ™•์žฅ์ž =
.jpg
.jpeg
show_dotfiles = ๊ฑฐ์ง“
Follow_symlinks = ๊ฑฐ์ง“
๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ_์‹œ๊ฐ„ ์ดˆ๊ณผ = 1000

[ํ˜„์ง€์˜]
ํ™œ์„ฑํ™” = ์‚ฌ์‹ค
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ = sqlite
media_dir = /home/lilmike/Music
scan_timeout = 1000
scan_flush_threshold = 100
scan_follow_symlinks = ๊ฑฐ์ง“
์ œ์™ธ๋œ ํŒŒ์ผ ํ™•์žฅ์ž =
.์˜ˆ๋ฐฐ ๊ทœ์น™์„œ
.html
.jpeg
.jpg
.ํ†ต๋‚˜๋ฌด
.nfo
.png
.txt

[์Šคํฌํ‹ฐ ํŒŒ์ด]
ํ™œ์„ฑํ™” = ๊ฑฐ์ง“ ; ์‚ฌ์šฉ์ž ๊ตฌ์„ฑ์— ์˜ํ•ด ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ด ๋น„ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

[ํ์„ธ์ด๋ฒ„]
ํ™œ์„ฑํ™” = ์‚ฌ์‹ค
๋ฐฑ์—… ํŒŒ์ผ = ./tracklist_backup.json

[๋กœ์ปฌ-sqlite]
ํ™œ์„ฑํ™” = ์‚ฌ์‹ค
๋””๋ ‰ํ† ๋ฆฌ =
์•จ๋ฒ” local:directory?type=album
์•„ํ‹ฐ์ŠคํŠธ ๋กœ์ปฌ:directory?type=artist
์ž‘๊ณก๊ฐ€ local:directory?type=artist&role=composer
์žฅ๋ฅด ๋กœ์ปฌ:๋””๋ ‰ํ† ๋ฆฌ?์œ ํ˜•=์žฅ๋ฅด
์ถœ์—ฐ์ž local:directory?type=artist&role=performer
์ถœ์‹œ ์—ฐ๋„ local:directory?type=date&format=%25Y
๋กœ์ปฌ:directory?type=track์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.
์ง€๋‚œ ์ฃผ ์—…๋ฐ์ดํŠธ local:directory?max-age=604800
์ง€๋‚œ ๋‹ฌ ์—…๋ฐ์ดํŠธ local:directory?max-age=2592000
์‹œ๊ฐ„ ์ดˆ๊ณผ = 10
use_album_mbid_uri = ์ฐธ
use_artist_mbid_uri = ๊ฑฐ์ง“
use_artist_sortname = ๊ฑฐ์ง“

์ ์–ด๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ๊นจ๋œจ๋ฆฌ๋ ค๋ฉด ๋‹ค์Œ ์ฃผ์„์„ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

์ถœ๋ ฅ = ํ‹ฐ ์ด๋ฆ„=t t. ! ๋Œ€๊ธฐ ์ค„ ! ์˜ค๋””์˜ค ๋ณ€ํ™˜! ์˜ค๋””์˜ค ์ƒ˜ํ”Œ! ์ž๋™ ์˜ค๋””์˜ค ์‹ฑํฌ t. ! ๋Œ€๊ธฐ ์ค„ ! ์˜ค๋””์˜ค ์ƒ˜ํ”Œ! ์˜ค๋””์˜ค ๋ณ€ํ™˜! ๋ณด๋น„์„ผ์Šค! ์˜ค๊ทธ๋จน์Šค! sound2send ip=xxx ํฌํŠธ=8000 ๋น„๋ฐ€๋ฒˆํ˜ธ=xxx ๋งˆ์šดํŠธ=๋ชจํ”ผ๋””

๋ชจํ”ผ๋”” ๋Ž์Šค:
์‹คํ–‰ ํŒŒ์ผ: /usr/bin/mopidy
ํ”Œ๋žซํผ: Linux-4.10.3-1-ARCH-x86_64-with-glibc2.2.5
ํŒŒ์ด์ฌ: /usr/lib/python2.7์˜ CPython 2.7.13
Mopidy: /usr/lib/python2.7/site-packages์˜ 2.1.0
Pykka>=1.1: /usr/lib/python2.7/site-packages์˜ 1.2.0
์š”์ฒญ>=2.0: /usr/lib/python2.7/site-packages์˜ 2.13.0
setuptools: /usr/lib/python2.7/site-packages์˜ 34.3.2
ํŒจํ‚ค์ง•>=16.8: /usr/lib/python2.7/site-packages์˜ 16.8
pyparsing: /usr/lib/python2.7/site-packages์˜ 2.2.0
6: /usr/lib/python2.7/site-packages์˜ 1.10.0
Six>=1.6.0: /usr/lib/python2.7/site-packages์˜ 1.10.0
appdirs>=1.4.0: /usr/lib/python2.7/site-packages์˜ 1.4.3
ํ† ๋„ค์ด๋„>=3.2: /usr/lib/python2.7/site-packages์˜ 4.4.2
singledispatch: /usr/lib/python2.7/site-packages์˜ 3.4.0.3
6: /usr/lib/python2.7/site-packages์˜ 1.10.0
backports_abc>=0.4: /usr/lib/python2.7/site-packages์˜ 0.5
Mopidy-Local-SQLite: /usr/lib/python2.7/site-packages์˜ 1.0.0
setuptools: /usr/lib/python2.7/site-packages์˜ 34.3.2
ํŒจํ‚ค์ง•>=16.8: /usr/lib/python2.7/site-packages์˜ 16.8
pyparsing: /usr/lib/python2.7/site-packages์˜ 2.2.0
6: /usr/lib/python2.7/site-packages์˜ 1.10.0
Six>=1.6.0: /usr/lib/python2.7/site-packages์˜ 1.10.0
appdirs>=1.4.0: /usr/lib/python2.7/site-packages์˜ 1.4.3
Mopidy>=1.1: /usr/lib/python2.7/site-packages์˜ 2.1.0
Pykka>=1.1: /usr/lib/python2.7/site-packages์˜ 1.2.0
์š”์ฒญ>=2.0: /usr/lib/python2.7/site-packages์˜ 2.13.0
setuptools: /usr/lib/python2.7/site-packages์˜ 34.3.2
ํŒจํ‚ค์ง•>=16.8: /usr/lib/python2.7/site-packages์˜ 16.8
pyparsing: /usr/lib/python2.7/site-packages์˜ 2.2.0
6: /usr/lib/python2.7/site-packages์˜ 1.10.0
Six>=1.6.0: /usr/lib/python2.7/site-packages์˜ 1.10.0
appdirs>=1.4.0: /usr/lib/python2.7/site-packages์˜ 1.4.3
ํ† ๋„ค์ด๋„>=3.2: /usr/lib/python2.7/site-packages์˜ 4.4.2
singledispatch: /usr/lib/python2.7/site-packages์˜ 3.4.0.3
6: /usr/lib/python2.7/site-packages์˜ 1.10.0
backports_abc>=0.4: /usr/lib/python2.7/site-packages์˜ 0.5
Pykka>=1.1: /usr/lib/python2.7/site-packages์˜ 1.2.0
uritools>=1.0: /usr/lib/python2.7/site-packages์˜ 1.0.1
ipaddress>=1.0.6: /usr/lib/python2.7/site-packages์˜ 1.0.18
ipaddress>=1.0.6: /usr/lib/python2.7/site-packages์˜ 1.0.18
Mopidy-Qsaver: /usr/lib/python2.7/site-packages์˜ 0.1.0
setuptools: /usr/lib/python2.7/site-packages์˜ 34.3.2
ํŒจํ‚ค์ง•>=16.8: /usr/lib/python2.7/site-packages์˜ 16.8
pyparsing: /usr/lib/python2.7/site-packages์˜ 2.2.0
6: /usr/lib/python2.7/site-packages์˜ 1.10.0
Six>=1.6.0: /usr/lib/python2.7/site-packages์˜ 1.10.0
appdirs>=1.4.0: /usr/lib/python2.7/site-packages์˜ 1.4.3
Mopidy>=1.0: /usr/lib/python2.7/site-packages์˜ 2.1.0
Pykka>=1.1: /usr/lib/python2.7/site-packages์˜ 1.2.0
์š”์ฒญ>=2.0: /usr/lib/python2.7/site-packages์˜ 2.13.0
setuptools: /usr/lib/python2.7/site-packages์˜ 34.3.2
ํŒจํ‚ค์ง•>=16.8: /usr/lib/python2.7/site-packages์˜ 16.8
pyparsing: /usr/lib/python2.7/site-packages์˜ 2.2.0
6: /usr/lib/python2.7/site-packages์˜ 1.10.0
Six>=1.6.0: /usr/lib/python2.7/site-packages์˜ 1.10.0
appdirs>=1.4.0: /usr/lib/python2.7/site-packages์˜ 1.4.3
ํ† ๋„ค์ด๋„>=3.2: /usr/lib/python2.7/site-packages์˜ 4.4.2
singledispatch: /usr/lib/python2.7/site-packages์˜ 3.4.0.3
6: /usr/lib/python2.7/site-packages์˜ 1.10.0
backports_abc>=0.4: /usr/lib/python2.7/site-packages์˜ 0.5
Pykka>=1.1: /usr/lib/python2.7/site-packages์˜ 1.2.0
Mopidy-Spotify: /usr/lib/python2.7/site-packages์˜ 3.0.0
Mopidy>=2.0: /usr/lib/python2.7/site-packages์˜ 2.1.0
Pykka>=1.1: /usr/lib/python2.7/site-packages์˜ 1.2.0
์š”์ฒญ>=2.0: /usr/lib/python2.7/site-packages์˜ 2.13.0
setuptools: /usr/lib/python2.7/site-packages์˜ 34.3.2
ํŒจํ‚ค์ง•>=16.8: /usr/lib/python2.7/site-packages์˜ 16.8
pyparsing: /usr/lib/python2.7/site-packages์˜ 2.2.0
6: /usr/lib/python2.7/site-packages์˜ 1.10.0
Six>=1.6.0: /usr/lib/python2.7/site-packages์˜ 1.10.0
appdirs>=1.4.0: /usr/lib/python2.7/site-packages์˜ 1.4.3
ํ† ๋„ค์ด๋„>=3.2: /usr/lib/python2.7/site-packages์˜ 4.4.2
singledispatch: /usr/lib/python2.7/site-packages์˜ 3.4.0.3
6: /usr/lib/python2.7/site-packages์˜ 1.10.0
backports_abc>=0.4: /usr/lib/python2.7/site-packages์—์„œ 0.5
Pykka>=1.1: /usr/lib/python2.7/site-packages์˜ 1.2.0
pyspotify>=2.0.5: /usr/lib/python2.7/site-packages์˜ 2.0.5
cffi>=1.0.0: /usr/lib/python2.7/site-packages์˜ 1.9.1
pycparser: /usr/lib/python2.7/site-packages์˜ 2.17
์š”์ฒญ>=2.0: /usr/lib/python2.7/site-packages์˜ 2.13.0
setuptools: /usr/lib/python2.7/site-packages์˜ 34.3.2
ํŒจํ‚ค์ง•>=16.8: /usr/lib/python2.7/site-packages์˜ 16.8
pyparsing: /usr/lib/python2.7/site-packages์˜ 2.2.0
6: /usr/lib/python2.7/site-packages์˜ 1.10.0
Six>=1.6.0: /usr/lib/python2.7/site-packages์˜ 1.10.0
appdirs>=1.4.0: /usr/lib/python2.7/site-packages์˜ 1.4.3
GStreamer: /usr/lib/python2.7/site-packages/gi์˜ 1.10.4.0
์ž์„ธํ•œ ์ •๋ณด:
ํŒŒ์ด์ฌ ๋ž˜ํผ: python-gi 3.22.0
๊ด€๋ จ ์š”์†Œ:
์„ค๋ฆฝํ•˜๋‹ค:
uridecodebin
์ˆ˜ํ”„httpsrc
์•ฑ์ŠคRC
์•Œ์‚ฌ์‹ฑํฌ
์˜ค์‹ฑํฌ
oss4sink
ํŽ„์Šค ์‹ฑํฌ
id3demux
id3v2mux
lamemp3enc
๋ฏธ์นœ
mpegaudioparse
mpg123์˜ค๋””์˜ค๋ฑ
๋ณด๋น„์Šค๋ฑ
๋ณด๋น„์„ผ
์†Œ์šฉ๋Œ์ด
์˜ค๊ทธ๋ฐ๋จน์Šค
์˜ค๊ทธ๋จน์Šค
์˜ค๊ทธํŒŒ์Šค
ํ”Œ๋ž™๋ฑ
ํ”Œ๋ž™ํŒŒ์Šค
์†Œ๋ฆฌ 2 ๋ณด๋‚ด๊ธฐ
์ฐพ์„ ์ˆ˜ ์—†์Œ:
ํ”Œ๋Ÿผํ”„3๋ฑ

-๋‚จ์ž ์ด๋ฆ„.

์—ฌ๊ธฐ์—์„œ ์žฌํ˜„ํ•˜๋Š” ๋‹จ๊ณ„:

  • ๋กœ์ปฌ ์•จ๋ฒ”์—์„œ ๋นˆ ๋Œ€๊ธฐ์—ด์— ํŠธ๋ž™ ์ถ”๊ฐ€(์‹ ์„ ํ•œ mopidy ์‹œ์ž‘)
  • ์ฒซ ๋ฒˆ์งธ ํŠธ๋ž™์œผ๋กœ ์žฌ์ƒ ์‹œ์ž‘
  • ์ฒซ ๋ฒˆ์งธ ํŠธ๋ž™์˜ ๋์—์„œ ๊ด€์ฐฐ ํ˜„์žฌ ํŠธ๋ž™์ด ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š๊ณ  ์žฌ์ƒ ์ง„ํ–‰ ์ƒํ™ฉ๋„ ์•„๋‹™๋‹ˆ๋‹ค.
    (์ด๊ฒƒ์€ ๋ชจ๋“  http ํด๋ผ์ด์–ธํŠธ, API ๋ฐ mpd ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ด€์ฐฐํ•  ์ˆ˜ ์žˆ์Œ)

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  ์žฌํ˜„ ํ•  Spotify๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ ๋ฐ๋น„์•ˆ ํŒจํ‚ค์ง€๋กœ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
mopidy.deps.txt
mopidy.conf.txt

ํŽธ์ง‘: debian/stretch ํŒจํ‚ค์ง€๋กœ๋„ ํ™•์ธ๋จ

# lsof -p $(pgrep mopidy)|grep mp3
mopidy  6856 mopidy   19r   REG              253,1  3700844 15990956 /data/media/mp3/Archive/Londinium/02 - All Time.mp3
mopidy  6856 mopidy   20r   REG              253,1  3700844 15990956 /data/media/mp3/Archive/Londinium/02 - All Time.mp3

๋™์ผํ•œ ํŠธ๋ž™์— ๋Œ€ํ•œ ๋‘ ๊ฐœ์˜ ํŒŒ์ผ ํ•ธ๋“ค

ํŽธ์ง‘ 2:

  • ์ฒซ ๋ฒˆ์งธ ํŠธ๋ž™: ํ•˜๋‚˜์˜ ํŒŒ์ผ ํ•ธ๋“ค(ํ˜„์žฌ ํŠธ๋ž™์— ๋Œ€ํ•œ ํ•ธ๋“ค)
# lsof -p $(pgrep mopidy)|grep mp3
mopidy  6856 mopidy   19r   REG              253,1  5953883 15990957 /data/media/mp3/Archive/Londinium/03 - So Few Words.mp3
  • ๋‘ ๋ฒˆ์งธ ํŠธ๋ž™: 2๊ฐœ์˜ ํŒŒ์ผ ํ•ธ๋“ค(๋‹ซ์ง€ ์•Š์€ ์ด์ „ ํŠธ๋ž™์˜ ํ•ธ๋“ค,
    ๋‘ ๋ฒˆ์งธ ํŠธ๋ž™)
# lsof -p $(pgrep mopidy)|grep mp3
mopidy  6856 mopidy   19r   REG              253,1  5953883 15990957 /data/media/mp3/Archive/Londinium/03 - So Few Words.mp3
mopidy  6856 mopidy   22r   REG              253,1  4051133 15990958 /data/media/mp3/Archive/Londinium/04 - Headspace.mp3
  • 2๋ฒˆ์งธ ํŠธ๋ž™ ์ดํ›„์— ๋ฐ˜๋ณต
# lsof -p $(pgrep mopidy)|grep mp3
mopidy  6856 mopidy   19r   REG              253,1  4051133 15990958 /data/media/mp3/Archive/Londinium/04 - Headspace.mp3
mopidy  6856 mopidy   22r   REG              253,1  4051133 15990958 /data/media/mp3/Archive/Londinium/04 - Headspace.mp3

๋‚˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ณด์ง€ ์•Š์•˜์ง€๋งŒ ๊ฝค ์ข‹์€ ํžŒํŠธ๋ฅผ ์ค„ ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค ;-)

๋‚˜๋Š” ํ•œ๋™์•ˆ ๊ฐ™์€ ํ–‰๋™์„ ๋ณด์•„์™”๋‹ค.

์‚ฌ์šฉ์ž ์ •์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉ

INFO     2017-03-26 08:46:07,205 [1:MpdSession-33] mopidy.mpd.session
  New MPD connection from [::ffff:172.18.0.1]:35692
DEBUG    2017-03-26 08:46:07,208 [1:MpdSession-33] mopidy.mpd.session
  Request from [::ffff:172.18.0.1]:35692: next
DEBUG    2017-03-26 08:46:07,212 [1:MainThread] mopidy.audio.gst
  Got STATE_CHANGED bus message: old=GST_STATE_PLAYING new=GST_STATE_PAUSED pending=GST_STATE_READY
DEBUG    2017-03-26 08:46:07,215 [1:Audio-2] mopidy.audio.gst
  Changing state to GST_STATE_READY: result=GST_STATE_CHANGE_SUCCESS
DEBUG    2017-03-26 08:46:07,216 [1:SpotifyBackend-6] mopidy_spotify.playback
  Audio requested change of track; loading and starting Spotify player
DEBUG    2017-03-26 08:46:07,221 [1:MainThread] mopidy.audio.gst
  Got STATE_CHANGED bus message: old=GST_STATE_PAUSED new=GST_STATE_READY pending=GST_STATE_VOID_PENDING
DEBUG    2017-03-26 08:46:07,224 [1:Audio-2] mopidy.audio.gst
  Sending TAG event for track 'spotify:track:3n52npc7FPjG4dBZcgLjmD': 'taglist, artist=(string)Silverstein, title=(string)"My\\ Heroine\\ -\\ Acoustic", album=(string)"18\\ Candles:\\ The\\ Early\\ Years";'
DEBUG    2017-03-26 08:46:07,226 [1:Audio-2] mopidy.audio.gst
  Got source-setup signal: element=__main__.GstAppSrc
DEBUG    2017-03-26 08:46:07,228 [1:Audio-2] mopidy.audio.gst
  Changing state to GST_STATE_PLAYING: result=GST_STATE_CHANGE_ASYNC
DEBUG    2017-03-26 08:46:07,229 [1:SpotifyBackend-6] mopidy_spotify.playback
  Audio requested seek to 0
DEBUG    2017-03-26 08:46:07,233 [1:SpotifyBackend-6] mopidy_spotify.playback
  Skipping seek due to issue mopidy/mopidy#300
DEBUG    2017-03-26 08:46:07,233 [1:MpdSession-33] mopidy.mpd.session
  Response to [::ffff:172.18.0.1]:35692: OK
DEBUG    2017-03-26 08:46:07,235 [1:MpdSession-33] mopidy.mpd.session
  Request from [::ffff:172.18.0.1]:35692: command_list_ok_begin
DEBUG    2017-03-26 08:46:07,237 [1:MpdSession-33] mopidy.mpd.session
  Request from [::ffff:172.18.0.1]:35692: status
DEBUG    2017-03-26 08:46:07,238 [1:MpdSession-33] mopidy.mpd.session
  Request from [::ffff:172.18.0.1]:35692: currentsong
DEBUG    2017-03-26 08:46:07,240 [1:MpdSession-33] mopidy.mpd.session
  Request from [::ffff:172.18.0.1]:35692: command_list_end
DEBUG    2017-03-26 08:46:07,248 [1:Audio-2] mopidy.audio.actor
  Position query failed
DEBUG    2017-03-26 08:46:07,257 [1:MpdSession-33] mopidy.mpd.session
  Response to [::ffff:172.18.0.1]:35692: 
    volume: 100
    repeat: 1
    random: 0
    single: 0
    consume: 0
    playlist: 5
    playlistlength: 5
    xfade: 0
    state: play
    song: 2
    songid: 3
    nextsong: 3
    nextsongid: 4
    time: 0:212
    elapsed: 0.000
    bitrate: 160
    list_OK
    file: spotify:track:5W12R96LKHS0MxBjs6TQep
    Time: 212
    Artist: Silverstein
    Album: Ghost
    Title: Ghost
    Date: 2016
    Track: 1
    Pos: 2
    Id: 3
    AlbumArtist: Silverstein
    X-AlbumUri: spotify:album:1EZDUjQkJy65ecY1DZDstN
    list_OK
    OK
DEBUG    2017-03-26 08:46:07,260 [1:MpdSession-33] mopidy.internal.network
  Client most likely disconnected.
DEBUG    2017-03-26 08:46:07,262 [1:MpdSession-33] mopidy.internal.network
  Already stopping: Actor is shutting down.
DEBUG    2017-03-26 08:46:07,706 [1:Dummy-17] mopidy.audio.gst
  Got SEGMENT pad event: rate=1.0 format=time start=0 stop=18446744073709551615 position=0
DEBUG    2017-03-26 08:46:07,707 [1:Dummy-17] mopidy.audio.actor
  Audio event: position_changed(position=0L)
DEBUG    2017-03-26 08:46:07,708 [1:Dummy-17] mopidy.listener
  Sending position_changed to AudioListener: {'position': 0L}
DEBUG    2017-03-26 08:46:07,904 [1:MainThread] mopidy.audio.gst
  Got STREAM_START bus message
DEBUG    2017-03-26 08:46:07,904 [1:MainThread] mopidy.audio.actor
  Audio event: stream_changed(uri=u'appsrc://')
DEBUG    2017-03-26 08:46:07,905 [1:MainThread] mopidy.listener
  Sending stream_changed to AudioListener: {'uri': u'appsrc://'}
DEBUG    2017-03-26 08:46:07,908 [1:Core-8] mopidy.core.playback
  Triggering track playback ended event
DEBUG    2017-03-26 08:46:07,910 [1:Core-8] mopidy.listener
  Sending track_playback_ended to CoreListener: {'time_position': 468981L, 'tl_track': TlTrack(tlid=3, track=Track(album=Album(artists=[Artist(name=u'Silverstein', uri='spotify:artist:1Tsag5J854qxeOo2apszug')], date=u'2016', name=u'Ghost', uri='spotify:album:1EZDUjQkJy65ecY1DZDstN'), artists=[Artist(name=u'Silverstein', uri='spotify:artist:1Tsag5J854qxeOo2apszug')], bitrate=160, date=u'2016', disc_no=0, length=212000, name=u'Ghost', track_no=1, uri='spotify:track:5W12R96LKHS0MxBjs6TQep'))}
DEBUG    2017-03-26 08:46:07,914 [1:Core-8] mopidy.core.playback
  Changing state: playing -> playing
DEBUG    2017-03-26 08:46:07,915 [1:Core-8] mopidy.core.playback
  Triggering playback state change event
DEBUG    2017-03-26 08:46:07,917 [1:Core-8] mopidy.listener
  Sending playback_state_changed to CoreListener: {'old_state': u'playing', 'new_state': u'playing'}
DEBUG    2017-03-26 08:46:07,918 [1:MpdFrontend-11] mopidy.listener
  Sending player to MpdSession: {}
DEBUG    2017-03-26 08:46:07,920 [1:Core-8] mopidy.core.playback
  Triggering track playback started event
DEBUG    2017-03-26 08:46:07,922 [1:Core-8] mopidy.listener
  Sending track_playback_started to CoreListener: {'tl_track': TlTrack(tlid=5, track=Track(album=Album(artists=[Artist(name=u'Silverstein', uri='spotify:artist:1Tsag5J854qxeOo2apszug')], date=u'2006', name=u'18 Candles: The Early Years', uri='spotify:album:5wwo3iPJ93pElRfHs97bea'), artists=[Artist(name=u'Silverstein', uri='spotify:artist:1Tsag5J854qxeOo2apszug')], bitrate=160, date=u'2006', disc_no=0, length=214000, name=u'My Heroine - Acoustic', track_no=13, uri='spotify:track:3n52npc7FPjG4dBZcgLjmD'))}
DEBUG    2017-03-26 08:46:07,926 [1:MainThread] mopidy.audio.gst
  Got STATE_CHANGED bus message: old=GST_STATE_READY new=GST_STATE_PAUSED pending=GST_STATE_PLAYING
DEBUG    2017-03-26 08:46:07,928 [1:MainThread] mopidy.audio.gst
  Got ASYNC_DONE bus message.
DEBUG    2017-03-26 08:46:07,935 [1:MainThread] mopidy.audio.gst
  Got STATE_CHANGED bus message: old=GST_STATE_PAUSED new=GST_STATE_PLAYING pending=GST_STATE_VOID_PENDING
DEBUG    2017-03-26 08:46:07,938 [1:MainThread] mopidy.audio.actor
  Audio event: state_changed(old_state=playing, new_state=playing, target_state=None)
DEBUG    2017-03-26 08:46:07,940 [1:MainThread] mopidy.listener
  Sending state_changed to AudioListener: {'old_state': u'playing', 'target_state': None, 'new_state': u'playing'}
DEBUG    2017-03-26 08:46:08,230 [1:MainThread] mopidy.audio.gst
  Got TAG bus message: tags={'album': [u'18 Candles: The Early Years'], 'artist': [u'Silverstein'], 'title': [u'My Heroine - Acoustic']}
DEBUG    2017-03-26 08:46:08,231 [1:MainThread] mopidy.audio.actor
  Audio event: tags_changed(tags=['album', 'title', 'artist'])
DEBUG    2017-03-26 08:46:08,232 [1:MainThread] mopidy.listener
  Sending tags_changed to AudioListener: {'tags': ['album', 'title', 'artist']}

์ด์ „ ํŠธ๋ž™์ด ๋๋‚˜๋ฉด ๋‹ค์Œ ํŠธ๋ž™์œผ๋กœ ํ–‰๋ณตํ•˜๊ฒŒ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ๋ จ์˜ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

DEBUG    2017-03-26 08:49:34,022 [1:SpotifyEventLoop] mopidy_spotify.playback
  End of track reached
DEBUG    2017-03-26 08:49:34,022 [1:Audio-2] mopidy.audio.gst
  Sending appsrc end-of-stream event.
DEBUG    2017-03-26 08:49:34,310 [1:SpotifyEventLoop] mopidy_spotify.playback
  End of track already received; ignoring callback
DEBUG    2017-03-26 08:49:38,743 [1:Dummy-27] mopidy.audio.gst
  Got about-to-finish event.
DEBUG    2017-03-26 08:49:38,743 [1:Dummy-27] mopidy.audio.actor
  Running about-to-finish callback.
DEBUG    2017-03-26 08:49:38,744 [1:SpotifyBackend-6] mopidy_spotify.playback
  Audio requested change of track; loading and starting Spotify player
DEBUG    2017-03-26 08:49:38,746 [1:Audio-2] mopidy.audio.gst
  Sending TAG event for track 'spotify:track:5U2p81vdlp2saDTIvk0Lnb': 'taglist, artist=(string)Silverstein, title=(string)"My\\ Heroine", album=(string)"Discovering\\ the\\ Waterfront";'
DEBUG    2017-03-26 08:49:38,748 [1:Dummy-27] mopidy.audio.gst
  Got source-setup signal: element=__main__.GstAppSrc
DEBUG    2017-03-26 08:49:38,751 [1:SpotifyBackend-6] mopidy_spotify.playback
  Audio requested seek to 0
DEBUG    2017-03-26 08:49:38,752 [1:SpotifyBackend-6] mopidy_spotify.playback
  Skipping seek due to issue mopidy/mopidy#300
DEBUG    2017-03-26 08:49:40,880 [1:Dummy-17] mopidy.audio.gst
  Got SEGMENT pad event: rate=1.0 format=time start=0 stop=18446744073709551615 position=0
DEBUG    2017-03-26 08:49:40,881 [1:Dummy-17] mopidy.audio.actor
  Audio event: position_changed(position=0L)
DEBUG    2017-03-26 08:49:40,881 [1:Dummy-17] mopidy.listener
  Sending position_changed to AudioListener: {'position': 0L}

๊ทธ๋Ÿฌ๋‚˜ ์ด ์ž‘์—…์ด ๋๋‚˜๋ฉด ํŠธ๋ž™์ด ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

DEBUG    2017-03-26 08:53:02,619 [1:SpotifyEventLoop] mopidy_spotify.playback
  End of track reached
DEBUG    2017-03-26 08:53:02,620 [1:Audio-2] mopidy.audio.gst
  Sending appsrc end-of-stream event.
DEBUG    2017-03-26 08:53:02,810 [1:SpotifyEventLoop] mopidy_spotify.playback
  End of track already received; ignoring callback
DEBUG    2017-03-26 08:53:06,840 [1:Dummy-31] mopidy.audio.gst
  Got about-to-finish event.
DEBUG    2017-03-26 08:53:06,840 [1:Dummy-31] mopidy.audio.actor
  Running about-to-finish callback.
DEBUG    2017-03-26 08:53:06,842 [1:SpotifyBackend-6] mopidy_spotify.playback
  Audio requested change of track; loading and starting Spotify player
DEBUG    2017-03-26 08:53:06,843 [1:Audio-2] mopidy.audio.gst
  Sending TAG event for track 'spotify:track:5U2p81vdlp2saDTIvk0Lnb': 'taglist, artist=(string)Silverstein, title=(string)"My\\ Heroine", album=(string)"Discovering\\ the\\ Waterfront";'
DEBUG    2017-03-26 08:53:06,844 [1:Dummy-31] mopidy.audio.gst
  Got source-setup signal: element=__main__.GstAppSrc
DEBUG    2017-03-26 08:53:06,847 [1:SpotifyBackend-6] mopidy_spotify.playback
  Audio requested seek to 0
DEBUG    2017-03-26 08:53:06,849 [1:SpotifyBackend-6] mopidy_spotify.playback
  Skipping seek due to issue mopidy/mopidy#300
DEBUG    2017-03-26 08:53:08,975 [1:Dummy-17] mopidy.audio.gst
  Got SEGMENT pad event: rate=1.0 format=time start=0 stop=18446744073709551615 position=0
DEBUG    2017-03-26 08:53:08,975 [1:Dummy-17] mopidy.audio.actor
  Audio event: position_changed(position=0L)
DEBUG    2017-03-26 08:53:08,976 [1:Dummy-17] mopidy.listener
  Sending position_changed to AudioListener: {'position': 0L}

์—ฌ๊ธฐ์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ƒํƒœ๋ฅผ ์ฟผ๋ฆฌํ•˜๋ฉด Mopidy๊ฐ€ ์ฒซ ๋ฒˆ์งธ ์˜ˆ์—์„œ ์šฐ๋ฆฌ๊ฐ€ ์—ฌ์ „ํžˆ ๊ถค๋„์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

INFO     2017-03-26 08:55:15,437 [1:MpdSession-34] mopidy.mpd.session
  New MPD connection from [::ffff:172.18.0.1]:35696
DEBUG    2017-03-26 08:55:15,439 [1:MpdSession-34] mopidy.mpd.session
  Request from [::ffff:172.18.0.1]:35696: command_list_ok_begin
DEBUG    2017-03-26 08:55:15,440 [1:MpdSession-34] mopidy.mpd.session
  Request from [::ffff:172.18.0.1]:35696: status
DEBUG    2017-03-26 08:55:15,441 [1:MpdSession-34] mopidy.mpd.session
  Request from [::ffff:172.18.0.1]:35696: currentsong
DEBUG    2017-03-26 08:55:15,442 [1:MpdSession-34] mopidy.mpd.session
  Request from [::ffff:172.18.0.1]:35696: command_list_end
DEBUG    2017-03-26 08:55:15,449 [1:MpdSession-34] mopidy.mpd.session
  Response to [::ffff:172.18.0.1]:35696: 
    volume: 100
    repeat: 1
    random: 0
    single: 0
    consume: 0
    playlist: 5
    playlistlength: 5
    xfade: 0
    state: play
    song: 4
    songid: 5
    nextsong: 0
    nextsongid: 1
    time: 547:214
    elapsed: 547.989
    bitrate: 160
    list_OK
    file: spotify:track:3n52npc7FPjG4dBZcgLjmD
    Time: 214
    Artist: Silverstein
    Album: 18 Candles: The Early Years
    Title: My Heroine - Acoustic
    Date: 2006
    Track: 13
    Pos: 4
    Id: 5
    AlbumArtist: Silverstein
    X-AlbumUri: spotify:album:5wwo3iPJ93pElRfHs97bea
    list_OK
    OK
DEBUG    2017-03-26 08:55:15,451 [1:MpdSession-34] mopidy.internal.network
  Client most likely disconnected.
DEBUG    2017-03-26 08:55:15,453 [1:MpdSession-34] mopidy.internal.network
  Already stopping: Actor is shutting down.

์—ฌ๊ธฐ์„œ ๋ˆˆ์— ๋„๋Š” ๊ฒƒ์€ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

DEBUG    2017-03-26 08:46:07,224 [1:Audio-2] mopidy.audio.gst
  Sending TAG event for track 'spotify:track:3n52npc7FPjG4dBZcgLjmD': 'taglist, artist=(string)Silverstein, title=(string)"My\\ Heroine\\ -\\ Acoustic", album=(string)"18\\ Candles:\\ The\\ Early\\ Years";'
[...]
DEBUG    2017-03-26 08:46:08,230 [1:MainThread] mopidy.audio.gst
  Got TAG bus message: tags={'album': [u'18 Candles: The Early Years'], 'artist': [u'Silverstein'], 'title': [u'My Heroine - Acoustic']}

๊ทธ๋Ÿฌ๋‚˜ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ "Sending TAG ์ด๋ฒคํŠธ" ๋ฉ”์‹œ์ง€๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์–ธ๊ธ‰ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ํ•ญ์ƒ ๋ฌด์ž‘์œ„๋กœ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธํ•˜๊ณ  ์•Œ์•„๋‚ด๊ฒ ์Šต๋‹ˆ๋‹ค.
๋‚จ์ž ์ด๋ฆ„.

๋‚ด iPhone์—์„œ ๋ณด๋‚ธ

2017๋…„ 3์›” 26์ผ ์˜ค์ „ 4:07 Daniel White[email protected]>์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ํ•œ๋™์•ˆ ๊ฐ™์€ ํ–‰๋™์„ ๋ณด์•„์™”๋‹ค.

์‚ฌ์šฉ์ž ์ •์˜ ์ปจํ…Œ์ด๋„ˆ ์‚ฌ์šฉ https://gist.github.com/danielwhite/5fc9f0a401e8beb9e2ad6ef463650cfa ,
5๊ฐœ ํ•ญ๋ชฉ์˜ ์žฌ์ƒ ๋ชฉ๋ก์ด ์žˆ์Šต๋‹ˆ๋‹ค. 4๋ฒˆ ํŠธ๋ž™์—์„œ ๊ฑด๋„ˆ๋›ฐ๋ฉด
ํŠธ๋ž™ 5(๋ฐ˜๋ณต ์ผœ์ง)์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ๋ จ์˜ ์ด๋ฒคํŠธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

INFO 2017-03-26 08:46:07,205 [1:MpdSession-33] mopidy.mpd.session
[::ffff:172.18.0.1]:35692์—์„œ ์ƒˆ MPD ์—ฐ๊ฒฐ
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,208 [1:MpdSession-33] mopidy.mpd.session
[::ffff:172.18.0.1]:35692์—์„œ ์š”์ฒญ: ๋‹ค์Œ
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,212 [1:MainThread] mopidy.audio.gst
STATE_CHANGED ๋ฒ„์Šค ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ : old=GST_STATE_PLAYING new=GST_STATE_PAUSED ๋ณด๋ฅ˜ ์ค‘=GST_STATE_READY
DEBUG 2017-03-26 08:46:07,215 [1:์˜ค๋””์˜ค-2] mopidy.audio.gst
์ƒํƒœ๋ฅผ GST_STATE_READY๋กœ ๋ณ€๊ฒฝ: result=GST_STATE_CHANGE_SUCCESS
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,216 [1:SpotifyBackend-6] mopidy_spotify.playback
์˜ค๋””์˜ค ์š”์ฒญ ํŠธ๋ž™ ๋ณ€๊ฒฝ Spotify ํ”Œ๋ ˆ์ด์–ด ๋กœ๋“œ ๋ฐ ์‹œ์ž‘
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,221 [1:MainThread] mopidy.audio.gst
STATE_CHANGED ๋ฒ„์Šค ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ : old=GST_STATE_PAUSED new=GST_STATE_READY ๋ณด๋ฅ˜ ์ค‘=GST_STATE_VOID_PENDING
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,224 [1:์˜ค๋””์˜ค-2] mopidy.audio.gst
'spotify:track:3n52npc7FPjG4dBZcgLjmD' ํŠธ๋ž™์— ๋Œ€ํ•œ TAG ์ด๋ฒคํŠธ ๋ณด๋‚ด๊ธฐ: 'taglist, Artist=(string)Silverstein, title=(string)"My\ Heroine\ -\ Acoustic", Album=(string)"18\ Candles:\ The \ ์ดˆ๊ธฐ";'
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,226 [1:์˜ค๋””์˜ค-2] mopidy.audio.gst
์†Œ์Šค ์„ค์ • ์‹ ํ˜ธ๊ฐ€ ์žˆ์Œ: element=__main__.GstAppSrc
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,228 [1:์˜ค๋””์˜ค-2] mopidy.audio.gst
์ƒํƒœ๋ฅผ GST_STATE_PLAYING์œผ๋กœ ๋ณ€๊ฒฝ: result=GST_STATE_CHANGE_ASYNC
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,229 [1:SpotifyBackend-6] mopidy_spotify.playback
์˜ค๋””์˜ค ์š”์ฒญ 0
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,233 [1:SpotifyBackend-6] mopidy_spotify.playback
mopidy/mopidy#300 ๋ฌธ์ œ๋กœ ์ธํ•ด ํƒ์ƒ‰ ๊ฑด๋„ˆ๋›ฐ๊ธฐ
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,233 [1:MpdSession-33] mopidy.mpd.session
[::ffff:172.18.0.1]:35692์— ๋Œ€ํ•œ ์‘๋‹ต: ํ™•์ธ
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,235 [1:MpdSession-33] mopidy.mpd.session
[::ffff:172.18.0.1]:35692์˜ ์š”์ฒญ: command_list_ok_begin
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,237 [1:MpdSession-33] mopidy.mpd.session
[::ffff:172.18.0.1]:35692์˜ ์š”์ฒญ: ์ƒํƒœ
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,238 [1:MpdSession-33] mopidy.mpd.session
[::ffff:172.18.0.1]:35692: currentsong์˜ ์š”์ฒญ
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,240 [1:MpdSession-33] mopidy.mpd.session
[::ffff:172.18.0.1]:35692์˜ ์š”์ฒญ: command_list_end
DEBUG 2017-03-26 08:46:07,248 [1:Audio-2] mopidy.audio.actor
์œ„์น˜ ์ฟผ๋ฆฌ ์‹คํŒจ
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,257 [1:MpdSession-33] mopidy.mpd.session
[::ffff:172.18.0.1]:35692์— ๋Œ€ํ•œ ์‘๋‹ต:
๋ณผ๋ฅจ: 100
๋ฐ˜๋ณต: 1
๋ฌด์ž‘์œ„: 0
์‹ฑ๊ธ€: 0
์†Œ๋น„: 0
์žฌ์ƒ ๋ชฉ๋ก: 5
์žฌ์ƒ ๋ชฉ๋ก ๊ธธ์ด: 5
์—‘์ŠคํŽ˜์ด๋“œ: 0
์ƒํƒœ: ์žฌ์ƒ
๋…ธ๋ž˜: 2
์†ก์ง€๋“œ: 3
๋‹ค์Œ๊ณก: 3
๋„ฅ์ŠคํŠธ์†ก์ง€๋“œ: 4
์‹œ๊ฐ„: 0:212
๊ฒฝ๊ณผ: 0.000
๋น„ํŠธ๋ ˆ์ดํŠธ: 160
list_OK
ํŒŒ์ผ: ์Šคํฌํ‹ฐํŒŒ์ด:ํŠธ๋ž™:5W12R96LKHS0MxBjs6TQep
์‹œ๊ฐ„: 212
์•„ํ‹ฐ์ŠคํŠธ: Silverstein
์•จ๋ฒ”: ์œ ๋ น
์ œ๋ชฉ: ์œ ๋ น
๋‚ ์งœ: 2016
ํŠธ๋ž™: 1
์œ„์น˜: 2
์•„์ด๋””: 3
์•จ๋ฒ”์•„ํ‹ฐ์ŠคํŠธ: Silverstein
X-AlbumUri: ์Šคํฌํ‹ฐํŒŒ์ด:์•จ๋ฒ”:1EZDUjQkJy65ecY1DZDstN
list_OK
์ข‹์•„์š”
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,260 [1:MpdSession-33] mopidy.internal.network
ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ์ด ๋Š๊ฒผ์„ ๊ฐ€๋Šฅ์„ฑ์ด ํฝ๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,262 [1:MpdSession-33] mopidy.internal.network
์ด๋ฏธ ์ค‘์ง€ ์ค‘: Actor๊ฐ€ ์ข…๋ฃŒ ์ค‘์ž…๋‹ˆ๋‹ค.
DEBUG 2017-03-26 08:46:07,706 [1:Dummy-17] mopidy.audio.gst
SEGMENT ํŒจ๋“œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ: rate=1.0 format=time start=0 stop=18446744073709551615 position=0
DEBUG 2017-03-26 08:46:07,707 [1:Dummy-17] mopidy.audio.actor
์˜ค๋””์˜ค ์ด๋ฒคํŠธ: position_changed(position=0L)
DEBUG 2017-03-26 08:46:07,708 [1:Dummy-17] mopidy.listener
AudioListener์— position_changed ๋ณด๋‚ด๊ธฐ: {'position': 0L}
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,904 [1:MainThread] mopidy.audio.gst
STREAM_START ๋ฒ„์Šค ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
DEBUG 2017-03-26 08:46:07,904 [1:MainThread] mopidy.audio.actor
์˜ค๋””์˜ค ์ด๋ฒคํŠธ: stream_changed(uri=u'appsrc://')
DEBUG 2017-03-26 08:46:07,905 [1:MainThread] mopidy.listener
stream_changed๋ฅผ AudioListener๋กœ ๋ณด๋‚ด๊ธฐ: {'uri': u'appsrc://'}
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,908 [1:Core-8] mopidy.core.playback
ํŠธ๋ž™ ์žฌ์ƒ ์ข…๋ฃŒ ์ด๋ฒคํŠธ ํŠธ๋ฆฌ๊ฑฐ
DEBUG 2017-03-26 08:46:07,910 [1:Core-8] mopidy.listener
CoreListener์— track_playback_ended ๋ณด๋‚ด๊ธฐ: {'time_position': 468981L, 'tl_track': TlTrack(tlid=3, track=Track(album=Album(artists=[Artist(name=u'Silverstein', uri='spotify:artist:1Tsag5J854qxeO)) ')], date=u'2016', name=u'Ghost', uri='spotify:album:1EZDUjQkJy65ecY1DZDstN'), Artists=[Artist(name=u'Silverstein', uri='spotify:artist:1Tsag5J854qxeOo2) )], ๋น„ํŠธ ์ „์†ก๋ฅ =160, ๋‚ ์งœ=u'2016', disk_no=0, ๊ธธ์ด=212000, ์ด๋ฆ„=u'Ghost', track_no=1, uri='spotify:track:5W12R96LKHS0MxBjs6TQep'))}
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,914 [1:Core-8] mopidy.core.playback
์ƒํƒœ ๋ณ€๊ฒฝ: ์žฌ์ƒ ์ค‘ -> ์žฌ์ƒ ์ค‘
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,915 [1:Core-8] mopidy.core.playback
์žฌ์ƒ ์ƒํƒœ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ ํŠธ๋ฆฌ๊ฑฐ
DEBUG 2017-03-26 08:46:07,917 [1:Core-8] mopidy.listener
Playback_state_changed๋ฅผ CoreListener: {'old_state': u'playing', 'new_state': u'playing'}๋กœ ๋ณด๋‚ด๊ธฐ
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,918 [1:MpdFrontend-11] mopidy.listener
ํ”Œ๋ ˆ์ด์–ด๋ฅผ MpdSession์œผ๋กœ ๋ณด๋‚ด๊ธฐ: {}
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,920 [1:Core-8] mopidy.core.playback
ํŠธ๋ž™ ์žฌ์ƒ ์‹œ์ž‘ ์ด๋ฒคํŠธ ํŠธ๋ฆฌ๊ฑฐ
DEBUG 2017-03-26 08:46:07,922 [1:Core-8] mopidy.listener
CoreListener์— track_playback_started ๋ณด๋‚ด๊ธฐ: {'tl_track': TlTrack(tlid=5, track=Track(album=Album(artists=[Artist(name=u'Silverstein', uri='spotify:artist:1Tsag5J854qxeOo2apszug'))], ๋‚ ์งœ= u'2006', name=u'18 Candles: The Early Years', uri='spotify:album:5wwo3iPJ93pElRfHs97bea'), Artists=[Artist(name=u'Silverstein', uri='spotify:artist:1Tsag5JO854qxe) ], bitrate=160, date=u'2006', disk_no=0, length=214000, name=u'My Heroine - Acoustic', track_no=13, uri='spotify:track:3n52npc7FPjG4dBZcgLjmD'))}
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,926 [1:MainThread] mopidy.audio.gst
STATE_CHANGED ๋ฒ„์Šค ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ : old=GST_STATE_READY new=GST_STATE_PAUSED ๋ณด๋ฅ˜=GST_STATE_PLAYING
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,928 [1:MainThread] mopidy.audio.gst
ASYNC_DONE ๋ฒ„์Šค ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,935 [1:MainThread] mopidy.audio.gst
STATE_CHANGED ๋ฒ„์Šค ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ : old=GST_STATE_PAUSED new=GST_STATE_PLAYING ๋ณด๋ฅ˜ ์ค‘=GST_STATE_VOID_PENDING
DEBUG 2017-03-26 08:46:07,938 [1:MainThread] mopidy.audio.actor
์˜ค๋””์˜ค ์ด๋ฒคํŠธ: state_changed(old_state=playing, new_state=playing, target_state=None)
DEBUG 2017-03-26 08:46:07,940 [1:MainThread] mopidy.listener
state_changed๋ฅผ AudioListener๋กœ ๋ณด๋‚ด๊ธฐ: {'old_state': u'playing', 'target_state': None, 'new_state': u'playing'}
๋””๋ฒ„๊ทธ 2017-03-26 08:46:08,230 [1:MainThread] mopidy.audio.gst
Get TAG ๋ฒ„์Šค ๋ฉ”์‹œ์ง€: tags={'album': [u'18 Candles: The Early Years'], 'artist': [u'Silverstein'], 'title': [u'My Heroine - Acoustic']}
DEBUG 2017-03-26 08:46:08,231 [1:MainThread] mopidy.audio.actor
์˜ค๋””์˜ค ์ด๋ฒคํŠธ: tags_changed(tags=['์•จ๋ฒ”', '์ œ๋ชฉ', '์•„ํ‹ฐ์ŠคํŠธ'])
DEBUG 2017-03-26 08:46:08,232 [1:MainThread] mopidy.listener
AudioListener์— tags_changed ๋ณด๋‚ด๊ธฐ: {'tags': ['album', 'title', 'artist']}

์ด์ „ ํŠธ๋ž™์ด ๋๋‚˜๋ฉด ๋‹ค์Œ ์‹œ๋ฆฌ์ฆˆ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.
์ฆ๊ฒ๊ฒŒ ๋‹ค์Œ ํŠธ๋ž™์œผ๋กœ ๋„˜์–ด๊ฐˆ ๊ฒƒ ๊ฐ™์€ ์ด๋ฒคํŠธ.

๋””๋ฒ„๊ทธ 2017-03-26 08:49:34,022 [1:SpotifyEventLoop] mopidy_spotify.playback
ํŠธ๋ž™ ๋์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธ 2017-03-26 08:49:34,022 [1:์˜ค๋””์˜ค-2] mopidy.audio.gst
appsrc ์ŠคํŠธ๋ฆผ ๋ ์ด๋ฒคํŠธ๋ฅผ ๋ณด๋‚ด๋Š” ์ค‘์ž…๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธ 2017-03-26 08:49:34,310 [1:SpotifyEventLoop] mopidy_spotify.playback
ํŠธ๋ž™์˜ ๋์ด ์ด๋ฏธ ์ˆ˜์‹ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝœ๋ฐฑ ๋ฌด์‹œ
DEBUG 2017-03-26 08:49:38,743 [1:Dummy-27] mopidy.audio.gst
์ด๋ฒคํŠธ ์ข…๋ฃŒ๋ฅผ ์•ž๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
DEBUG 2017-03-26 08:49:38,743 [1:Dummy-27] mopidy.audio.actor
์ข…๋ฃŒ ์ง์ „ ์ฝœ๋ฐฑ์„ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธ 2017-03-26 08:49:38,744 [1:SpotifyBackend-6] mopidy_spotify.playback
์˜ค๋””์˜ค ์š”์ฒญ ํŠธ๋ž™ ๋ณ€๊ฒฝ Spotify ํ”Œ๋ ˆ์ด์–ด ๋กœ๋“œ ๋ฐ ์‹œ์ž‘
๋””๋ฒ„๊ทธ 2017-03-26 08:49:38,746 [1:์˜ค๋””์˜ค-2] mopidy.audio.gst
'spotify:track:5U2p81vdlp2saDTIvk0Lnb' ํŠธ๋ž™์— ๋Œ€ํ•œ TAG ์ด๋ฒคํŠธ ๋ณด๋‚ด๊ธฐ: 'taglist, Artist=(string)Silverstein, title=(string)"My\ Heroine", album=(string)"Discovering\ the\ Waterfront";'
DEBUG 2017-03-26 08:49:38,748 [1:Dummy-27] mopidy.audio.gst
์†Œ์Šค ์„ค์ • ์‹ ํ˜ธ๊ฐ€ ์žˆ์Œ: element=__main__.GstAppSrc
๋””๋ฒ„๊ทธ 2017-03-26 08:49:38,751 [1:SpotifyBackend-6] mopidy_spotify.playback
์˜ค๋””์˜ค ์š”์ฒญ 0
๋””๋ฒ„๊ทธ 2017-03-26 08:49:38,752 [1:SpotifyBackend-6] mopidy_spotify.playback
mopidy/mopidy#300 ๋ฌธ์ œ๋กœ ์ธํ•ด ํƒ์ƒ‰ ๊ฑด๋„ˆ๋›ฐ๊ธฐ
DEBUG 2017-03-26 08:49:40,880 [1:Dummy-17] mopidy.audio.gst
SEGMENT ํŒจ๋“œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ: rate=1.0 format=time start=0 stop=18446744073709551615 position=0
DEBUG 2017-03-26 08:49:40,881 [1:Dummy-17] mopidy.audio.actor
์˜ค๋””์˜ค ์ด๋ฒคํŠธ: position_changed(position=0L)
DEBUG 2017-03-26 08:49:40,881 [1:Dummy-17] mopidy.listener
AudioListener์— position_changed ๋ณด๋‚ด๊ธฐ: {'position': 0L}

๊ทธ๋Ÿฌ๋‚˜ ์ด ์ž‘์—…์ด ๋๋‚˜๋ฉด ํŠธ๋ž™์ด ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

๋””๋ฒ„๊ทธ 2017-03-26 08:53:02,619 [1:SpotifyEventLoop] mopidy_spotify.playback
ํŠธ๋ž™ ๋์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค.
DEBUG 2017-03-26 08:53:02,620 [1:์˜ค๋””์˜ค-2] mopidy.audio.gst
appsrc ์ŠคํŠธ๋ฆผ ๋ ์ด๋ฒคํŠธ๋ฅผ ๋ณด๋‚ด๋Š” ์ค‘์ž…๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธ 2017-03-26 08:53:02,810 [1:SpotifyEventLoop] mopidy_spotify.playback
ํŠธ๋ž™์˜ ๋์ด ์ด๋ฏธ ์ˆ˜์‹ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝœ๋ฐฑ ๋ฌด์‹œ
DEBUG 2017-03-26 08:53:06,840 [1:Dummy-31] mopidy.audio.gst
์ด๋ฒคํŠธ ์ข…๋ฃŒ๋ฅผ ์•ž๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
DEBUG 2017-03-26 08:53:06,840 [1:Dummy-31] mopidy.audio.actor
์ข…๋ฃŒ ์ง์ „ ์ฝœ๋ฐฑ์„ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธ 2017-03-26 08:53:06,842 [1:SpotifyBackend-6] mopidy_spotify.playback
์˜ค๋””์˜ค ์š”์ฒญ ํŠธ๋ž™ ๋ณ€๊ฒฝ Spotify ํ”Œ๋ ˆ์ด์–ด ๋กœ๋“œ ๋ฐ ์‹œ์ž‘
๋””๋ฒ„๊ทธ 2017-03-26 08:53:06,843 [1:์˜ค๋””์˜ค-2] mopidy.audio.gst
'spotify:track:5U2p81vdlp2saDTIvk0Lnb' ํŠธ๋ž™์— ๋Œ€ํ•œ TAG ์ด๋ฒคํŠธ ๋ณด๋‚ด๊ธฐ: 'taglist, Artist=(string)Silverstein, title=(string)"My\ Heroine", album=(string)"Discovering\ the\ Waterfront";'
DEBUG 2017-03-26 08:53:06,844 [1:Dummy-31] mopidy.audio.gst
์†Œ์Šค ์„ค์ • ์‹ ํ˜ธ๊ฐ€ ์žˆ์Œ: element=__main__.GstAppSrc
๋””๋ฒ„๊ทธ 2017-03-26 08:53:06,847 [1:SpotifyBackend-6] mopidy_spotify.playback
์˜ค๋””์˜ค ์š”์ฒญ 0
๋””๋ฒ„๊ทธ 2017-03-26 08:53:06,849 [1:SpotifyBackend-6] mopidy_spotify.playback
mopidy/mopidy#300 ๋ฌธ์ œ๋กœ ์ธํ•ด ํƒ์ƒ‰ ๊ฑด๋„ˆ๋›ฐ๊ธฐ
DEBUG 2017-03-26 08:53:08,975 [1:Dummy-17] mopidy.audio.gst
SEGMENT ํŒจ๋“œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ: rate=1.0 format=time start=0 stop=18446744073709551615 position=0
DEBUG 2017-03-26 08:53:08,975 [1:Dummy-17] mopidy.audio.actor
์˜ค๋””์˜ค ์ด๋ฒคํŠธ: position_changed(position=0L)
DEBUG 2017-03-26 08:53:08,976 [1:Dummy-17] mopidy.listener
AudioListener์— position_changed ๋ณด๋‚ด๊ธฐ: {'position': 0L}

์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ ํด๋ผ์ด์–ธํŠธ๋กœ ์ƒํƒœ๋ฅผ ์ฟผ๋ฆฌํ•˜๋ฉด
๊ทธ๋Ÿฌ๋ฉด Mopidy๋Š” ์šฐ๋ฆฌ๊ฐ€ ์—ฌ์ „ํžˆ
์ฒซ ๋ฒˆ์งธ ์˜ˆ:

INFO 2017-03-26 08:55:15,437 [1:MpdSession-34] mopidy.mpd.session
[::ffff:172.18.0.1]:35696์—์„œ ์ƒˆ MPD ์—ฐ๊ฒฐ
๋””๋ฒ„๊ทธ 2017-03-26 08:55:15,439 [1:MpdSession-34] mopidy.mpd.session
[::ffff:172.18.0.1]:35696์˜ ์š”์ฒญ: command_list_ok_begin
๋””๋ฒ„๊ทธ 2017-03-26 08:55:15,440 [1:MpdSession-34] mopidy.mpd.session
[::ffff:172.18.0.1]:35696: ์ƒํƒœ์—์„œ ์š”์ฒญ
๋””๋ฒ„๊ทธ 2017-03-26 08:55:15,441 [1:MpdSession-34] mopidy.mpd.session
[::ffff:172.18.0.1]:35696: currentsong์˜ ์š”์ฒญ
๋””๋ฒ„๊ทธ 2017-03-26 08:55:15,442 [1:MpdSession-34] mopidy.mpd.session
[::ffff:172.18.0.1]:35696์˜ ์š”์ฒญ: command_list_end
๋””๋ฒ„๊ทธ 2017-03-26 08:55:15,449 [1:MpdSession-34] mopidy.mpd.session
[::ffff:172.18.0.1]:35696์— ๋Œ€ํ•œ ์‘๋‹ต:
๋ณผ๋ฅจ: 100
๋ฐ˜๋ณต: 1
๋ฌด์ž‘์œ„: 0
์‹ฑ๊ธ€: 0
์†Œ๋น„: 0
์žฌ์ƒ ๋ชฉ๋ก: 5
์žฌ์ƒ ๋ชฉ๋ก ๊ธธ์ด: 5
์—‘์ŠคํŽ˜์ด๋“œ: 0
์ƒํƒœ: ์žฌ์ƒ
๋…ธ๋ž˜: 4
์†ก์ง€๋“œ: 5
๋‹ค์Œ๊ณก: 0
๋„ฅ์ŠคํŠธ์†ก์ง€๋“œ: 1
์‹œ๊ฐ„: 547:214
๊ฒฝ๊ณผ: 547.989
๋น„ํŠธ๋ ˆ์ดํŠธ: 160
list_OK
ํŒŒ์ผ: ์Šคํฌํ‹ฐํŒŒ์ด:ํŠธ๋ž™:3n52npc7FPjG4dBZcgLjmD
์‹œ๊ฐ„: 214
์•„ํ‹ฐ์ŠคํŠธ: Silverstein
์•จ๋ฒ”: 18 Candles: The Early Years
์ œ๋ชฉ: My Heroine - ์–ด์ฟ ์Šคํ‹ฑ
๋‚ ์งœ: 2006๋…„
ํŠธ๋ž™: 13
์œ„์น˜: 4
์•„์ด๋””: 5
์•จ๋ฒ”์•„ํ‹ฐ์ŠคํŠธ: Silverstein
X-AlbumUri: spotify:album:5wwo3iPJ93pElRfHs97bea
list_OK
์ข‹์•„์š”
๋””๋ฒ„๊ทธ 2017-03-26 08:55:15,451 [1:MpdSession-34] mopidy.internal.network
ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ์ด ๋Š๊ฒผ์„ ๊ฐ€๋Šฅ์„ฑ์ด ํฝ๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธ 2017-03-26 08:55:15,453 [1:MpdSession-34] mopidy.internal.network
์ด๋ฏธ ์ค‘์ง€ ์ค‘: Actor๊ฐ€ ์ข…๋ฃŒ ์ค‘์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋ˆˆ์— ๋„๋Š” ๊ฒƒ์€
์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋””๋ฒ„๊ทธ 2017-03-26 08:46:07,224 [1:์˜ค๋””์˜ค-2] mopidy.audio.gst
'spotify:track:3n52npc7FPjG4dBZcgLjmD' ํŠธ๋ž™์— ๋Œ€ํ•œ TAG ์ด๋ฒคํŠธ ๋ณด๋‚ด๊ธฐ: 'taglist, Artist=(string)Silverstein, title=(string)"My\ Heroine\ -\ Acoustic", Album=(string)"18\ Candles:\ The \ ์ดˆ๊ธฐ";'
[...]
๋””๋ฒ„๊ทธ 2017-03-26 08:46:08,230 [1:MainThread] mopidy.audio.gst
Get TAG ๋ฒ„์Šค ๋ฉ”์‹œ์ง€: tags={'album': [u'18 Candles: The Early Years'], 'artist': [u'Silverstein'], 'title': [u'My Heroine - Acoustic']}

๊ทธ๋Ÿฌ๋‚˜ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋งŒ
"TAG ์ด๋ฒคํŠธ ์ „์†ก ์ค‘" ๋ฉ”์‹œ์ง€.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ํšŒ์‹ ํ•˜๊ฑฐ๋‚˜ GitHub https://github.com/mopidy/mopidy/issues/1528#issuecomment-289267755 ์—์„œ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ https://github.com/notifications/unsubscribe-auth/ABEM88lhfdyJWiIrlgk_LH6DcnsGy0Nu

๋‚˜๋Š” ๋˜ํ•œ ์ด๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜๊ฑฐ๋‚˜ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๊ณ ๋ณด๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•  ๋•Œ ๋ฐ˜๋ณต์— ๋Œ€ํ•ด ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,
๋‚˜๋Š” ์•„์ฃผ ์งง์€ ํŒŒ์ผ๋กœ ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ๊ณ (๊ทธ๋ž˜์„œ ์ž‘๋™ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ง ๊ธด ๋…ธ๋ž˜๋ฅผ ๋“ค์„ ํ•„์š”๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค) ๋‚ด ๋ฐœ๊ฒฌ:

  1. ์ถœ๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ–ˆ์„ ๋•Œ ์•ฝ 4~5๊ฐœ์˜ ํŠธ๋ž™ ํ›„์— ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. ๋‚ด๊ฐ€ ์ถœ๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ์„ค์ •ํ–ˆ์„ ๋•Œ ๋‘ ๋ฒˆ์งธ ํŠธ๋ž™ ์งํ›„์— ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
  3. ๋˜ํ•œ ์ฃผ์„์ด ๋‹ฌ๋ฆฐ ์ถœ๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด ์Œ์•… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์•Œ์•„์ฐจ๋ฆฌ์ง€ ๋ชปํ•œ๋‹ค๋Š” ์ ๋„ ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋…ธ๋ž˜๊ฐ€ ๊ธธ๊ณ (์งง์€ ์†Œ๋ฆฌ๊ฐ€ ์•„๋‹Œ) ์ถœ๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ž์ฃผ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?
  4. ๋กœ๊ทธ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค(ํ™”๋ฉด ํŒ๋…๊ธฐ๊ฐ€ ์ฒจ๋ถ€ ๋Œ€ํ™” ์ƒ์ž์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ทธ๋ ‡๊ฒŒ ํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค)(์ถœ๋ ฅ์ด ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ #1, ์ฃผ์„ ์ฒ˜๋ฆฌ๋œ ๊ฒฝ์šฐ #2). https://mtserver.mwtd.net/mopidy1.txt , https://mtserver.mwtd.net/mopidy2.txt

-๋‚จ์ž ์ด๋ฆ„.

์ด ๋ฒ„๊ทธ๋ฅผ ๋ฒ„๊ทธ๋กœ ํƒœ๊ทธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
์ด ๋ฒ„๊ทธ๊ฐ€ ์ฑ„์›Œ์ง„ ํ›„ 2๊ฐœ์˜ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์•„์ง ์ฃผ๋ชฉ์„ ๋ฐ›์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค...
์ €๋Š” MPD๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์˜ ๊ฒฝ์šฐ ์ด ๋ฒ„๊ทธ๊ฐ€ ์ฃผ์š” ๋ฐฉํ•ด ์š”์†Œ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‚ด ์ปจํ…Œ์ด๋„ˆ ๋กœ ์กฐ๊ธˆ ๋” ์‹คํ—˜์„ ํ–ˆ๊ณ  ์ฒ˜์Œ์—๋Š” ์ถฉ๋Œ์„ ๋ฐฐ์ œํ•˜๊ธฐ ์œ„ํ•ด Moped๋ฅผ ์ œ๊ฑฐํ–ˆ์ง€๋งŒ ์•„๋ฌด ์†Œ์šฉ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ๊ตฌ์„ฑ์—์„œ ๋‹ค์Œ ์ค„์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

output = audioresample ! audioconvert ! vorbisenc ! oggmux ! shout2send mount=stream.ogg ip=icecast port=8000 password=hackme

MPC๋กœ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ์˜ˆ์ƒ๋Œ€๋กœ ํŠธ๋ž™์ด ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์ค„์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  Icecast๋กœ ์ถœ๋ ฅ์„ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

output = lamemp3enc ! shout2send mount=stream.mp3 ip=icecast port=8000 password=hackme

๋”ฐ๋ผ์„œ ์ด ์‹œ์ ์—์„œ ๋‚ด ๊ฒฐ๋ก ์€ ์ถœ๋ ฅ์˜ Ogg Vorbis ์ธ์ฝ”๋”ฉ๊ณผ ์ž˜๋ชป๋œ ์ƒํ˜ธ ์ž‘์šฉ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ๋‹ค๊ณ  ๋Š๋ผ๊ธฐ ๋•Œ๋ฌธ์— https://docs.mopidy.com/en/latest/audio/#streaming -through-icecast์—์„œ ํ•ด๋‹น ์˜ˆ์ œ๋ฅผ ์ œ๊ฑฐํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

oggmux์—์„œ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ vorbis ๋Œ€์‹  opusenc๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์žฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ์ด๊ฒƒ์— ๋Œ€ํ•ด ์กฐ์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ๋ฒ„๊ทธ๋ฅผ ๋ฒ„๊ทธ๋กœ ํƒœ๊ทธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
์ด ๋ฒ„๊ทธ๊ฐ€ ์ฑ„์›Œ์ง„ ํ›„ 2๊ฐœ์˜ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์•„์ง ์ฃผ๋ชฉ์„ ๋ฐ›์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค...
์ €๋Š” MPD๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์˜ ๊ฒฝ์šฐ ์ด ๋ฒ„๊ทธ๊ฐ€ ์ฃผ์š” ๋ฐฉํ•ด ์š”์†Œ์ž…๋‹ˆ๋‹ค.

๋ฏธ๋ฆฌ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ฌธ์ œ์ด์ง€๋งŒ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์—์„œ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ Icecast์— ๊ตญํ•œ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? mopidy-subidy์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ์ž‘์—… ์ค‘์ธ ๋ฐฑ์—”๋“œ ํ”Œ๋Ÿฌ๊ทธ์ธ์—๋„ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Gmusic ํ”Œ๋Ÿฌ๊ทธ์ธ #183 ์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘: MPD์™€ HTTP(Mopidy-Material-Webclient ์‚ฌ์šฉ) ๋ชจ๋‘์—์„œ ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. MPD์—์„œ๋Š” <>(๋’ค๋กœ)๋ฅผ ๋น ๋ฅด๊ฒŒ ํƒญํ•˜์—ฌ ๋‹ค์Œ ๋…ธ๋ž˜๋กœ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฒฝ์Ÿ ์กฐ๊ฑด์ด๋‚˜ ํƒ€์ด๋ฐ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์•„์š”? ๋˜ํ•œ ๋…ธ๋ž˜๊ฐ€ ๋•Œ๋•Œ๋กœ ๋์— ๋„๋‹ฌํ•˜๊ณ  ์ž๋™์œผ๋กœ ๋‹ค์Œ ๋…ธ๋ž˜๋กœ ์ด๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์— ์œ ์˜ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ๋กœ์ปฌ ๋จธ์‹  ํ˜„์žฌ ์„ธ์…˜(pulseaudio/Ubuntu18.10)์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ถœ๋ ฅ๊ณผ ํ•จ๊ป˜ ํŠธ๋ž™์„ ๋ณ€๊ฒฝํ•˜๋Š” ์œ ์‚ฌํ•œ ์‹คํŒจ๋ฅผ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•œ ์ฐจ๋‹จ๊ธฐ์ž…๋‹ˆ๋‹ค). ํŠธ๋ž™ ๋ณ€๊ฒฝ์€ ํŠนํžˆ ogg ํŒŒ์ผ์„ ์žฌ์ƒํ•  ๋•Œ ์œ„์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ค‘๋‹จ๋˜๋Š” ๋ฐ˜๋ฉด mp3/spotify๋Š” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ๋ชจ๋ฅด์ง€๋งŒ ๋‹ค์Œ(๊ณ ์ •!) ํด๋ ˆ๋ฉ˜ํƒ€์ธ ๋ฒ„๊ทธ๊ฐ€ ๋น„์Šทํ•œ๊ฐ€์š”? https://github.com/clementine-player/Clementine/pull/6103 ์ œ ๊ฒฝ์šฐ์—๋Š” ์‹ค์ œ๋กœ ์ƒ˜ํ”Œ ์†๋„๊ฐ€ ๋‹ค๋ฅธ ogg ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ํ•ต์‹ฌ์€ gstreamer ๋ฒ„์ „์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๋„ํ•ด์•ผ ํ•  ํŠน์ • ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ?

v1.10 ์•„๋งˆ๋„.

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ gstreamer์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. v1.10์—์„œ๋Š” Mopidy๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์ง€๋งŒ v1.12.2์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š” ๋ชจ๋“  ๊ณผ๊ฑฐ ๋ฒ„์ „.

@pv ํด๋ ˆ๋ฉ˜ํƒ€์ธ ๋ฌธ์ œ๊ฐ€ ํฅ๋ฏธ๋กญ๊ณ  ๋Œ€๊ธฐ์—ด์—์„œ ๋Œ€๊ธฐ์—ด2๋กœ์˜ ๋™์ผํ•œ ์Šค์œ„์น˜๋ฅผ Mopidy ์ฝ”๋“œ์— ํ•ดํ‚นํ•˜์—ฌ ์‹œ๋„ํ•ด ๋ณด๋Š” ๊ฒƒ์€ ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๊ทธ๊ฒƒ์„ ์Šค์Šค๋กœ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์—ˆ์ง€๋งŒ ์•„๋งˆ๋„ ๋‹ค๋ฅธ ์ƒ˜ํ”Œ ๋ ˆ์ดํŠธ๊ฐ€ ํ•ต์‹ฌ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@kingosticks : ์ œ์•ˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค(mopidy 2.2.2๋กœ).

--- mopidy/audio/actor.py.old   2019-01-13 14:22:34.377491564 +0200
+++ mopidy/audio/actor.py   2019-01-13 14:22:55.836419833 +0200
@@ -134,7 +134,10 @@
         logger.info('Audio output set to "%s"', description)

     def _add(self, element):
-        queue = Gst.ElementFactory.make('queue')
+        if os.environ.get('MOPIDY_QUEUE2', '0').strip() == '1':
+            queue = Gst.ElementFactory.make('queue2')
+        else:
+            queue = Gst.ElementFactory.make('queue')
         self.add(element)
         self.add(queue)
         queue.link(element)
@@ -492,7 +495,10 @@

     def _setup_audio_sink(self):
         audio_sink = Gst.ElementFactory.make('bin', 'audio-sink')
-        queue = Gst.ElementFactory.make('queue')
+        if os.environ.get('MOPIDY_QUEUE2', '0').strip() == '1':
+            queue = Gst.ElementFactory.make('queue2')
+        else:
+            queue = Gst.ElementFactory.make('queue')
         volume = Gst.ElementFactory.make('volume')

         # Queue element to buy us time between the about-to-finish event and

์ด ๋ฌธ์ œ๋Š” MOPIDY_QUEUE2=0 mopidy ์‹คํ–‰ํ•  ๋•Œ 100% ์กด์žฌํ•˜๋ฉฐ MOPIDY_QUEUE2=1 mopidy ์™€ ํ•จ๊ป˜ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ฐพ์€ ๊ฐ€์žฅ ์ž‘์€ ์žฌํ˜„์€ ์ฒจ๋ถ€๋œ ๋‘ ๊ฐœ์˜ ogg ํŒŒ์ผ์ž…๋‹ˆ๋‹ค --- ์ง€๊ธˆ ์žฌ์ƒ ์ค‘์ธ ํŒŒ์ผ์— ๋‘˜ ๋‹ค ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋ฉฐ a.ogg ์—์„œ ์ „ํ™˜ํ•  ๋•Œ queue (gstreamer 1.14.4) ์žฌ์ƒ์ด ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค a.ogg ์—์„œ b.ogg ๋ฐ”๋€Œ๋Š” ๋ฐ˜๋ฉด queue2 ๋Š” ์ž˜ ์ „ํ™˜๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ab-ogg.zip

์•„๋งˆ๋„ ๋น„์Šทํ•œ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ queue/queue2 ํ•ญ๋ชฉ์€ ์ตœ์†Œํ•œ ์—ฌ๊ธฐ์—์„œ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ ๋‚ด๊ฐ€ ๋ณด๊ณ  ์žˆ๋Š” ๋ฌธ์ œ์˜ ์ž˜๋ชป์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ข‹์€ ๊ฒƒ. ์‹œ๋„ํ•ด ์ฃผ์‹œ๊ณ  ํ•ด๋‹น ํŒŒ์ผ์„ ์žฌ์ƒ์‚ฐํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹ค๋ฅธ ๊ณณ ์—์„œ ๊ฐ€์งœ ์‹ฑํฌ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์ตœ์‹  Gstreamer ๋ฒ„์ „์˜ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š” ๊ฒƒ์œผ๋กœ queue2 ๋งŒ ์‚ฌ์šฉํ•˜๋ฉด appsrc(Spotify)๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. appsrc๊ฐ€ ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด fakesink๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ์™„์ „ํžˆ ๋‹ค๋ฅธ ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ข‹์•„์š”. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์ด์ œ ์ด๊ฒƒ์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋ž™์„ ๋ณ€๊ฒฝํ•  ๋•Œ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์™ธ์นจ2send๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ. ๋‚ด๊ฐ€ ์‹œ๋„ํ•œ ๋ชจ๋“  ํŒŒ์ดํ”„๋ผ์ธ ๋ณ€ํ˜•์„ ์ˆ˜์ •ํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ async=false ์‹ฑํฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰
output = tee name=t ! queue ! autoaudiosink t. ! queue ! lamemp3enc ! shout2send async=false mount=mopidy ip=127.0.0.1 port=8000 password=hackme
  1. @pv์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์ƒ˜ํ”Œ ๋ ˆ์ดํŠธ์˜ ์••์ • .
    queue ์š”์†Œ๋ฅผ queue2 ์š”์†Œ๋กœ ๋ฐ”๊พธ ๊ฑฐ๋‚˜ ํ•ญ์ƒ ์—ฐ๊ฒฐ๋œ fakesink ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ queue ๋ฐ queue2 ๋Š” ์•ฝ๊ฐ„ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋ฉฐ appsrc๋Š” ๋ฒ„ํผ๋ง ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋งค์šฐ ๋ฏผ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ฒ„ํผ๋ง์ด ํ•„์š”ํ•œ ์ŠคํŠธ๋ฆผ(#1722). ๋กœ๊ทธ์—๋Š” "๊ฒฝํ•ฉ ์กฐ๊ฑด์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. #1222 ๋ฐ #1430 ์ฐธ์กฐ" ๋ฉ”์‹œ์ง€๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์€ ๊ณง ์ถœ์‹œ๋  v2.2.3 ๋ฆด๋ฆฌ์Šค์ž…๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜( pip install --user git+https://github.com/mopidy/mopidy.git )์—์„œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” Mopidy ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ๋ฐœ์ƒํ•œ ์ผ๋ถ€ ์žฌ์ƒ ๋ฌธ์ œ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ๋ฌธ์ œ๋Š” ํŠธ๋ž™์ด ์ œ๋Œ€๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์ง€๋งŒ ํŠธ๋ž™ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— ๊ด€๊ณ„์—†์ด ์˜ค๋””์˜ค ์ŠคํŠธ๋ฆผ ์ž์ฒด๋Š” ํ•ญ์ƒ ๋™์ผํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์ฒซ ๋ฒˆ์งธ ํŠธ๋ž™์˜ ๊ฒƒ).

์ด์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์€ ๊ณง ์ถœ์‹œ๋  v2.2.3 ๋ฆด๋ฆฌ์Šค์ž…๋‹ˆ๋‹ค.

๋งŒ์„ธ! ๋งค์šฐ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

Debian 10์˜ 3.0.1์—์„œ ์ด๊ฒƒ์„ ๊ฒฝํ—˜ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค( ์ž์„ธํžˆ ).

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