0

ここで指定されているように、gstreamer でビデオ プレーヤーを作成しました: https://github.com/dschreij/media_player_gst/blob/master/media_player_gst.py

Windows では、「通常」およびマルチプロセッシング モード (つまり、すべての Gstreamer パーツとプレーヤー オブジェクトが別のプロセスで作成される) で問題なく動作します。ただし、Ubuntu 13.10 では、プレーヤーが独自のプロセスで実行されると、

self.bus.peek()  # Reference to the playbin2 player's bus

次のエラーが発生し、プログラム全体 (親プロセスも) がクラッシュします。

python: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.
python: Fatal IO error 4 (Interrupted system call) on X server :0.

それ以外の場合、プレーヤーは新しいプロセスで正常に実行されます。self.bus.peek() への呼び出しのみがクラッシュします。メッセージを処理する関数にバスを接続しても機能しないように見えたため、バス キュー自体のイベントをチェックする必要がありました (Ubuntu でのみ!)。

基本的にストリームの最後(gst.MESSAGE_EOS)に到達したかどうかをバスで確認するだけなので、playbin2 バスを使わずに判断できるのであれば、そのような解決策でも構いません。これで私を助けてくれる人はいますか?

4

1 に答える 1