Kivy GStreamer

動画プレイヤーを 16 年も作り続けてきた筆者が Mac で Kivy を。
だったらこのネタをやらないわけにはいかないだろう。

#!/usr/bin/env kivy

import kivy
kivy.require('1.9.1')

from kivy.app import App
from kivy.uix.videoplayer import VideoPlayer

VIDEO_PATH = "/Users/sasakima-nao/Movies/nmax.wmv"

class YuliemApp(App):
    def build(self):
        playbin = VideoPlayer(source=VIDEO_PATH, state="play",
            options={"allow_stretch": True})
        return playbin

YuliemApp().run()

kivy_gstplayer

と。
特に別途必要なものはなく QuickTime 非対応形式でも再生可能。
VIDEO_PATH は自前のファイルパスに書き換えてね。

正直驚いた、GStreamer がデコーダーを含めて同梱なんだね。
おまけに最初からボタン類やシークバーまで、どんだけ親切なのよ。

kivy.uix.video.Video を使えばボタン類を無しにできる。
でもそれだとビデオサイズがソースサイズ固定になってしまう。
ボタン類は自前描写にしたかったのだが、方法模索中。

Mac でしか試していないので他の環境はわかりません。
何故か何も指定していないのに esc で終了できることに今頃気がつく。
あ、クラス名は気にしないでください。