<p>mopidy(mpdフロントエンド)がキューの最後の曲の後に再生状態でスタックしました</p>

作成日 2016年10月03日  ·  23コメント  ·  ソース: mopidy/mopidy

しばらくの間(バージョンではわかりません)、最後にキューに入れられた曲が再生された後、mopidyは再生状態を終了しません。 mpdクライアントは、mopidyがまだ再生されていることを報告し続けます。

たとえば、現在、最後の曲が数分前に(音声で)再生を停止し、次の出力を受け取ります。

languitar<strong i="7">@miles</strong> ~ [1]> mpc -h 192.168.1.8
Andre Manoukian - Blow !
[playing] #12/12   0:00/3:06 (0%)
volume: 68%   repeat: off   random: off   single: off   consume: off

この状態で手動で再生を停止することができます。

languitar<strong i="11">@miles</strong> ~> mpc -h 192.168.1.8 stop
volume: 68%   repeat: off   random: off   single: off   consume: off
languitar<strong i="12">@miles</strong> ~> mpc -h 192.168.1.8
volume: 68%   repeat: off   random: off   single: off   consume: off

これはspotifyバックエンドの問題かもしれないと最初に思いましたが、これはローカルメディアファイルでも発生するため、より一般的なようです。 これは、消費モードがある場合とない場合でも発生します。

archlinux64ビットでMopidy2.0.1を使用しています。

C-bug A-audio

最も参考になるコメント

Snapcastを使用したときに同じ問題が発生しました。 エラーが発生した場合にリスナーにストリーム終了メッセージを送信することで、問題を乗り越えることができます。

https://github.com/gotling/mopidy/commit/c13ab38b184f4b8902d1b0b8e75adcd423eaccc9

全てのコメント23件

v2.1をリリースする前に、これが#1512 /#1549に関連しているかどうかを確認する必要があります。

Ubuntu 16.04のv2.0.1でこれを再現することはできず、どのシステムでもこれに気づいたことはありませんが、いずれもarchlinuxではありません。おそらくそれは重要です。

@languitar mopidy depsの出力と、問題が発生したデバッグログを提供できますか?

これがmopidy depsの出力です

Executable: /usr/bin/mopidy
Platform: Linux-4.8.4-1-ARCH-x86_64-with-glibc2.2.5
Python: CPython 2.7.12 from /usr/lib/python2.7
Mopidy: 2.0.1 from /usr/lib/python2.7/site-packages
  Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
  requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
  setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
  tornado>=2.3: 4.4.2 from /usr/lib/python2.7/site-packages
    singledispatch: 3.4.0.3 from /usr/lib/python2.7/site-packages
      six: 1.10.0 from /usr/lib/python2.7/site-packages
    backports_abc>=0.4: 0.4 from /usr/lib/python2.7/site-packages
Mopidy-MusicBox-Webclient: 2.3.0 from /usr/lib/python2.7/site-packages
  setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
  Mopidy>=1.1.0: 2.0.1 from /usr/lib/python2.7/site-packages
    Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
    requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
    setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
    tornado>=2.3: 4.4.2 from /usr/lib/python2.7/site-packages
      singledispatch: 3.4.0.3 from /usr/lib/python2.7/site-packages
        six: 1.10.0 from /usr/lib/python2.7/site-packages
      backports_abc>=0.4: 0.4 from /usr/lib/python2.7/site-packages
Mopidy-ALSAMixer: 1.0.3 from /usr/lib/python2.7/site-packages
  setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
  Mopidy>=0.19: 2.0.1 from /usr/lib/python2.7/site-packages
    Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
    requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
    setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
    tornado>=2.3: 4.4.2 from /usr/lib/python2.7/site-packages
      singledispatch: 3.4.0.3 from /usr/lib/python2.7/site-packages
        six: 1.10.0 from /usr/lib/python2.7/site-packages
      backports_abc>=0.4: 0.4 from /usr/lib/python2.7/site-packages
  Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
  pyalsaaudio: 0.8.2 from /usr/lib/python2.7/site-packages
Mopidy-Mopify: 1.6.0 from /usr/lib/python2.7/site-packages
  setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
  Mopidy>=0.19: 2.0.1 from /usr/lib/python2.7/site-packages
    Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
    requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
    setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
    tornado>=2.3: 4.4.2 from /usr/lib/python2.7/site-packages
      singledispatch: 3.4.0.3 from /usr/lib/python2.7/site-packages
        six: 1.10.0 from /usr/lib/python2.7/site-packages
      backports_abc>=0.4: 0.4 from /usr/lib/python2.7/site-packages
  ConfigObj: 5.0.6 from /usr/lib/python2.7/site-packages
Mopidy-Dirble: 1.3.0 from /usr/lib/python2.7/site-packages
  setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
  Mopidy>=1.0: 2.0.1 from /usr/lib/python2.7/site-packages
    Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
    requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
    setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
    tornado>=2.3: 4.4.2 from /usr/lib/python2.7/site-packages
      singledispatch: 3.4.0.3 from /usr/lib/python2.7/site-packages
        six: 1.10.0 from /usr/lib/python2.7/site-packages
      backports_abc>=0.4: 0.4 from /usr/lib/python2.7/site-packages
  Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
  requests: 2.11.1 from /usr/lib/python2.7/site-packages
Mopidy-InternetArchive: 0.5.0 from /usr/lib/python2.7/site-packages
  setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
  Mopidy>=0.18: 2.0.1 from /usr/lib/python2.7/site-packages
    Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
    requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
    setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
    tornado>=2.3: 4.4.2 from /usr/lib/python2.7/site-packages
      singledispatch: 3.4.0.3 from /usr/lib/python2.7/site-packages
        six: 1.10.0 from /usr/lib/python2.7/site-packages
      backports_abc>=0.4: 0.4 from /usr/lib/python2.7/site-packages
  Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
  requests>=2.0.0: 2.11.1 from /usr/lib/python2.7/site-packages
Mopidy-Local-SQLite: 1.0.0 from /usr/lib/python2.7/site-packages
  setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
  Mopidy>=1.1: 2.0.1 from /usr/lib/python2.7/site-packages
    Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
    requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
    setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
    tornado>=2.3: 4.4.2 from /usr/lib/python2.7/site-packages
      singledispatch: 3.4.0.3 from /usr/lib/python2.7/site-packages
        six: 1.10.0 from /usr/lib/python2.7/site-packages
      backports_abc>=0.4: 0.4 from /usr/lib/python2.7/site-packages
  Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
  uritools>=1.0: 1.0.1 from /usr/lib/python2.7/site-packages
    ipaddress>=1.0.6: 1.0.17 from /usr/lib/python2.7/site-packages
    ipaddress>=1.0.6: 1.0.17 from /usr/lib/python2.7/site-packages
Mopidy-Youtube: 2.0.2 from /usr/lib/python2.7/site-packages
  setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
  requests>=2.2.1: 2.11.1 from /usr/lib/python2.7/site-packages
  pafy>=0.3.35: 0.5.1 from /usr/lib/python2.7/site-packages
  Mopidy>=1.0: 2.0.1 from /usr/lib/python2.7/site-packages
    Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
    requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
    setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
    tornado>=2.3: 4.4.2 from /usr/lib/python2.7/site-packages
      singledispatch: 3.4.0.3 from /usr/lib/python2.7/site-packages
        six: 1.10.0 from /usr/lib/python2.7/site-packages
      backports_abc>=0.4: 0.4 from /usr/lib/python2.7/site-packages
  Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
Mopidy-SomaFM: 1.0.0 from /usr/lib/python2.7/site-packages
  setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
  Mopidy>=1.1: 2.0.1 from /usr/lib/python2.7/site-packages
    Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
    requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
    setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
    tornado>=2.3: 4.4.2 from /usr/lib/python2.7/site-packages
      singledispatch: 3.4.0.3 from /usr/lib/python2.7/site-packages
        six: 1.10.0 from /usr/lib/python2.7/site-packages
      backports_abc>=0.4: 0.4 from /usr/lib/python2.7/site-packages
  Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
  requests>=2.0.0: 2.11.1 from /usr/lib/python2.7/site-packages
Mopidy-Moped: 0.6.4 from /usr/lib/python2.7/site-packages
  setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
  Mopidy>=1.0.0: 2.0.1 from /usr/lib/python2.7/site-packages
    Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
    requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
    setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
    tornado>=2.3: 4.4.2 from /usr/lib/python2.7/site-packages
      singledispatch: 3.4.0.3 from /usr/lib/python2.7/site-packages
        six: 1.10.0 from /usr/lib/python2.7/site-packages
      backports_abc>=0.4: 0.4 from /usr/lib/python2.7/site-packages
Mopidy-Local-Images: 1.0.0 from /usr/lib/python2.7/site-packages
  setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
  Mopidy>=1.1: 2.0.1 from /usr/lib/python2.7/site-packages
    Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
    requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
    setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
    tornado>=2.3: 4.4.2 from /usr/lib/python2.7/site-packages
      singledispatch: 3.4.0.3 from /usr/lib/python2.7/site-packages
        six: 1.10.0 from /usr/lib/python2.7/site-packages
      backports_abc>=0.4: 0.4 from /usr/lib/python2.7/site-packages
  Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
  uritools>=1.0: 1.0.1 from /usr/lib/python2.7/site-packages
    ipaddress>=1.0.6: 1.0.17 from /usr/lib/python2.7/site-packages
    ipaddress>=1.0.6: 1.0.17 from /usr/lib/python2.7/site-packages
Mopidy-Spotify-Tunigo: 1.0.0 from /usr/lib/python2.7/site-packages
  Mopidy>=0.19.0: 2.0.1 from /usr/lib/python2.7/site-packages
    Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
    requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
    setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
    tornado>=2.3: 4.4.2 from /usr/lib/python2.7/site-packages
      singledispatch: 3.4.0.3 from /usr/lib/python2.7/site-packages
        six: 1.10.0 from /usr/lib/python2.7/site-packages
      backports_abc>=0.4: 0.4 from /usr/lib/python2.7/site-packages
  Mopidy-Spotify>=1.2.0: 3.0.0 from /usr/lib/python2.7/site-packages
    Mopidy>=2.0: 2.0.1 from /usr/lib/python2.7/site-packages
      Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
      requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
      setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
      tornado>=2.3: 4.4.2 from /usr/lib/python2.7/site-packages
        singledispatch: 3.4.0.3 from /usr/lib/python2.7/site-packages
          six: 1.10.0 from /usr/lib/python2.7/site-packages
        backports_abc>=0.4: 0.4 from /usr/lib/python2.7/site-packages
    Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
    pyspotify>=2.0.5: 2.0.5 from /usr/lib/python2.7/site-packages
      cffi>=1.0.0: 1.8.3 from /usr/lib/python2.7/site-packages
        pycparser: 2.14 from /usr/lib/python2.7/site-packages
    requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
    setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
  Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
  setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
  tunigo>=1.0.0: 1.0.0 from /usr/lib/python2.7/site-packages
    requests>=2.0.0: 2.11.1 from /usr/lib/python2.7/site-packages
    setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
Mopidy-Spotify: 3.0.0 from /usr/lib/python2.7/site-packages
  Mopidy>=2.0: 2.0.1 from /usr/lib/python2.7/site-packages
    Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
    requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
    setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
    tornado>=2.3: 4.4.2 from /usr/lib/python2.7/site-packages
      singledispatch: 3.4.0.3 from /usr/lib/python2.7/site-packages
        six: 1.10.0 from /usr/lib/python2.7/site-packages
      backports_abc>=0.4: 0.4 from /usr/lib/python2.7/site-packages
  Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
  pyspotify>=2.0.5: 2.0.5 from /usr/lib/python2.7/site-packages
    cffi>=1.0.0: 1.8.3 from /usr/lib/python2.7/site-packages
      pycparser: 2.14 from /usr/lib/python2.7/site-packages
  requests>=2.0: 2.11.1 from /usr/lib/python2.7/site-packages
  setuptools: 28.6.1 from /usr/lib/python2.7/site-packages
GStreamer: 1.9.90.0 from /usr/lib/python2.7/site-packages/gi
  Detailed information:
    Python wrapper: python-gi 3.22.0
    Relevant elements:
      Found:
        uridecodebin
        souphttpsrc
        appsrc
        alsasink
        osssink
        oss4sink
        pulsesink
        id3demux
        id3v2mux
        lamemp3enc
        mad
        mpegaudioparse
        mpg123audiodec
        vorbisdec
        vorbisenc
        vorbisparse
        oggdemux
        oggmux
        oggparse
        flacdec
        flacparse
        shout2send
      Not found:
        flump3dec

デバッグログを作成するにはどうすればよいですか?

はい、わかった。
log.zip

これは、レベルDEBUGログオンすることを除いて、通常の構成でmopidyを新たに再起動します。 ncmpcpp 、ローカルファイルの曲に追加して、再生させます。 ncmpcppは常にバックグラウンドで実行されており、現在の再生状態を定期的にポーリングするシステムサービスも実行されている可能性があります。 予想通り、mopidyはプレイ状態でスタックしました。 ログで気付いたのはこれです:

2016-10-25 08:03:37,985 DEBUG [2755:Audio-3] mopidy.audio.actor: Position query failed

そして多分これも:

2016-10-25 08:02:57,064 DEBUG [2755:MainThread] mopidy.audio.gst: Got ERROR bus message: error=u'gst-resource-error-quark: Error while seeking in file "/tmp/snapfifo". (11)' debug=u'gstfilesink.c(619): gst_file_sink_event (): /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:abin/GstBin:audio-sink/mopidy+audio+actor+_Outputs:mopidy+audio+actor+_outputs0/GstBin:bin0/GstFileSink:filesink0:\nsystem error: Illegal seek'

複数の部屋での出力にスナップキャスト付きのmopidyを使用しています。 たぶんこれもこのバグを引き起こす重要な側面ですか?

参考までに、これは私の設定です。

[core]
cache_dir = /var/cache/mopidy
config_dir = /etc/mopidy
data_dir = /var/lib/mopidy

[logging]
config_file = /etc/mopidy/logging.conf
debug_file = /var/log/mopidy/mopidy-debug.log

[local]
enabled = true
library = json
scan_flush_threshold = 100
data_dir = /var/lib/mopidy/local
media_dir = /mnt/data/music
excluded_file_extensions =
  .directory
  .html
  .jpeg
  .jpg
  .log
  .nfo
  .png
  .txt
  .pdf
  .gif

[file]
enabled = true
media_dirs =
    /mnt/data/music|local

[m3u]
playlists_dir = /mnt/data/music/_playlists
base_dir = /mnt/data/music/

[youtube]
enabled = true

[dirble]
api_key = BLA
countries = DE,US,GB

[mpd]
enabled = true
hostname = ::

[softwaremixer]
enabled = false

[audio]
mixer = alsamixer
#output = alsasink device=hw:0,0
output = audioresample ! audioconvert ! audio/x-raw,rate=48000,channels=2,format=S16LE ! wavenc ! filesink location=/tmp/snapfifo

[alsamixer]
card = 0
control = PCM

[http]
hostname = ::

[somafm]
#encoding = aac
#quality = highest

[qsaver]
enabled = true
backup_file = /var/lib/mopidy/tracklist_backup.json

[spotify]
enabled = true
username = BLA
password = BLA
bitrate = 320
private_session = true

このすべてに感謝します。 ファイルシンク出力なしで試すことができますか?

家に帰ったら;-)

ただし、filesinksとfifosは実際には友達ではありませんが、最後に確認したところ、filesinkが正しく機能しない場合が多くあります。 #775はこれらのいくつかを修正しましたが、完了しませんでした。

OK、ALSAデバイスを直接使用すると正しく再生されなくなります。

Snapcastを使用したときに同じ問題が発生しました。 エラーが発生した場合にリスナーにストリーム終了メッセージを送信することで、問題を乗り越えることができます。

https://github.com/gotling/mopidy/commit/c13ab38b184f4b8902d1b0b8e75adcd423eaccc9

これを修正するためにできることはありますか? @gotlingによって提案されたものに問題はありますか?

私はこれの修正が大好きです。 誰かが解決策を見つけましたか? @gotlingで変更をマージできますか?

おい。 最近、Mopidyが再起動されたときの状態を保存するオプションをオンにしました。 消費モードを使用していて、以前に聴いていたトラックリストが終了したにもかかわらず、最後のトラックがトラックリストから削除されていないことがわかりました。 だから、私が起動すると、その最後のトラックが最初から再生を再開します。
この問題と同じかもしれないようです。 それが事実かどうか誰かが知っていますか? ありがとう。

Snapcastを使用せずにMopidyを単独で使用し始めたところですが、この問題は解消されました。

Mopidy 3のリリースでは、これは、FIFOでファイルシンクを使用する場合を除いてすべての場合に機能しているようです(スナップキャストの場合のように)。 GStreamerエラーを受信したときにすべてのリスナーにEOSを送信するハックは、それを「修正」します。 私のハックには、文字列「/ tmp / snapfifo」のerror.messageを「セーフティネット」としてチェックすることが含まれていました。

一般に、FIFOのような「非標準」エンドポイントを配置したり、appsrcを使用してmopidy-spotifyを実行したりするとすぐに、GStreamerは問題を解決するコーナーケースに遭遇する傾向があります。 これは、私たちがマルチ出力サポートを適切に行うことは決してなく、ストリーミングが第一級市民と見なされない理由の一部です。

ファイルシンクをfifoと一緒に使用することはお勧めしません。理想的には、gstreamerのfifosink(最後にこれが存在しないことを確認しました)または#775でテストしたようなものが必要です。これは基本的にPythonで独自のものを作成しています。

ありがとう。 Snapcast + Mopidyは本当に素晴らしいマルチルームSpotifyプレーヤーであるため、GstreamerがFIFOで適切に機能しないのは本当に残念です。

ハックの回避策はそれが機能する限り機能しますが、少なくともストリームを支払うときは、すべてのトラックの後に再生を停止する習慣があります。 適切なGstreamerFIFO出力を作成する知識がないと思います(#775を見ましたが、それを追跡できませんでした)が、この問題の安全な回避策を考え出すことができれば、構成フラグを使用しておそらくスイッチを入れてください-ここに投稿します。

誰かが最新のgstreamerを試しましたか?

https://github.com/badaix/snapcast/issues/511もあり

@kingsticksありがとう

オプションがあることを知っておくのは良いことです。 チームがPython3への移植を完了したことに興奮しています。mopidy-localが分割されたことに不満はありません。 Mopidyの主な用途であるため、まだメンテナがいないのではないかと心配しています。 ファイルに行われるタグ付けはかなりラグタグであるため、mopidy-sqliteに強制的に戻されることに興奮していません-それは「TheClash」または「Clash」または「Clash、The」ですか? mopidy-sqliteのせいではありませんが、ファイル構造の名前を修正するだけで問題ない「フォルダービュー」があればいいのにと思います。

最後に、要点として、Mopidy / gstreamer / SnapCastは、ここ数年、私にとって非常にうまく機能しています。 SnapCastは私のシステムに不可欠であるため、これまでに行われたすべての進歩が失敗する可能性があることに、私は一種の不思議に思います。 幸いなことに、BadAixはTCPオプションを発表しました。 私のベルトの下で十分なPython開発経験を積むことが私の年の目標であり、これからはmopidy-localを支援することができます。

みなさん、そして明けましておめでとうございます!

KO

2日前にBadAixがSnapcastのバージョンを18.0に上げたように見えます。これは、私が正しく読んでいる場合、TCPストリームをMasterブランチに移動し、ダウンロードページでarmhfバージョンをコンパイルしたことを確認しました。

うわー!

このページは役に立ちましたか?
0 / 5 - 0 評価