diff options
-rw-r--r-- | README.rst | 6 | ||||
-rw-r--r-- | mpv.py | 11 |
2 files changed, 17 insertions, 0 deletions
@@ -90,6 +90,12 @@ Advanced Usage print('THERE IS NO ESCAPE') player.register_key_binding('q', my_q_binding) + def my_s_binding(state, key): + if state[0] == 'd': + pillow_img = player.screenshot_raw() + pillow_img.save('screenshot.png') + player.register_key_binding('s', my_s_binding) + player.play('https://youtu.be/DLzxrzFCyOs') player.wait_for_playback() @@ -659,6 +659,17 @@ class MPV(object): """ Mapped mpv screenshot_to_file command, see man mpv(1). """ self.command('screenshot_to_file', filename.encode(fs_enc), includes) + def screenshot_raw(self, includes='subtitles'): + """ Mapped mpv screenshot_raw command, see man mpv(1). Returns a pillow Image object.""" + from PIL import Image + res = self.node_command('screenshot-raw', includes) + if res['format'] != 'bgr0': + raise ValueError('Screenshot in unknown format "{}". Currently, only bgr0 is supported.' + .format(res['format'])) + img = Image.frombytes('RGBA', (res['w'], res['h']), res['data']) + b,g,r,a = img.split() + return Image.merge('RGB', (r,g,b)) + def playlist_next(self, mode='weak'): """ Mapped mpv seek command, see man mpv(1). """ self.command('playlist_next', mode) |