More Pi Please
Posts: 50
Joined: Mon Jun 17, 2013 5:26 pm

Simple Raspberry Pi movie control

Tue Jun 18, 2013 10:42 pm

I've been having a lot of trouble figuring out a simple way to control a movie on the Pi.

Pyomxplayer didn't work for me. And Pi Presents looks great, but is way more than I needed.

So I thought I would start this thread dedicated to just doing simple movie control.

The easiest I've found so far is using the Pexpect Python module:

Easy to install, and pure Python.

And here is some basic code to use it for movie control:
(tested on a 60 second long movie)

Code: Select all

import pexpect
import time

# Location of movie here
flocal = '/home/pi/Fun/test.mp4'

c = pexpect.spawn('/usr/bin/omxplayer ' + flocal)
c.expect ('Video')

# start paused
time.sleep(.4) #.4 was the shortest time that worked on my Pi
c.send ('p') # pause

time.sleep(4) # wait 4 seconds
c.send ('p') # play

# jumps to start while playing. If paused before jump, seems longer
c.send ('i') # jumps to start of movie

c.send ('\x1b[C') # jump ahead 30 seconds

c.send ('\x1b[D') # jump back 30 seconds

# have not tested these commented lines
c.send ('\x1b[A') # seek +600 seconds

c.send ('\x1b[B') # seek -600 seconds

c.send ('=') # increase volume

c.send ('-') # decrease volume

c.send ('q') # quit the player

'''     1                  decrease speed
        2                  increase speed
        z                  show info
        j                  previous audio stream
        k                  next audio stream
        i                  previous chapter
        o                  next chapter
        n                  previous subtitle stream
        m                  next subtitle stream
        s                  toggle subtitles
        d                  decrease subtitle delay (- 250 ms)
        f                  increase subtitle delay (+ 250 ms)
        q                  exit omxplayer
        p / space          pause/resume
        -                  decrease volume
        + / =              increase volume
        left arrow         seek -30 seconds
        right arrow        seek +30 seconds
        down arrow         seek -600 seconds
        up arrow           seek +600 seconds'''

Hopefully omxplayer will get better in future versions.

Things like:
jump to a specific frame and play or pause
specific playback speed and direction

My current question: is there any way to stop the black screen that occurs for a moment when seeking or changing chapters? It is distracting.

Best would be if it would hold its last frame until the next one is shown.

Also, is there a good way to jump from the movie to an image, and then maybe back?

Thank you : )


Return to “Graphics, sound and multimedia”