I made a script to run video's with omxplayer using omxd:

sudo service stop omxd
sleep 0.5
sudo service start omxd
sleep 0.5

omxd X
omxd h
omxd O --blank
omxd O --no-osd


for entry in $VIDEOPATH/*
    echo A $entry > /var/run/omxctl

This works well, it does loop all the videos in $VIDEOPATH, however; between the video's theres a gap where it closes the player and starts a new one with the next video. Because of this you will see the desktop/terminal windows between the video's.

The display will be shown in a store, therefor it is not very nice to have this visible between the videos.

Is there any way to have this more seamless? Or any ways to hide the gap between the video's?

  • Can you write down the details of your OS?
    – vaha
    Commented Oct 20, 2016 at 14:20
  • Its the Raspberry Pi 3b 1gb Commented Oct 20, 2016 at 14:29
  • is it a must for you to have a desktop environment? And please share your OS details not board details.
    – vaha
    Commented Oct 20, 2016 at 16:23

2 Answers 2


Because there is no sufficient info about your system, I'm editing my answer based on these 4 assumptions:

  • Raspbian Jessie with Pixel runs on your system
  • Desktop Environment is not a must for you
  • Gap less than a second is OK for you
  • The pi user exists and it is a member of the video group

Set configuration to auto-login to console:

raspi-config -> Boot Options -> Desktop / CLI -> Console Autologin

Create you omx looping script. (Keep it simple keep it easy. No need for omxd etc. =)

The script will be /home/pi/myomx.sh and its content will be:

for entry in $VIDEOPATH/*
    omxplayer --blank "$entry" 1>/dev/null 2>/dev/null

By the way, to play videos continuously you may want to add an infinite loop out of the for loop.

Make the script executable:

chmod +x /home/pi/myomx.sh

Append these commands at the end of /home/pi/.bashrc:

nohup /home/pi/myomx.sh &
  • I'm struggling to see how this could affect seamless playback in omxplayer, particularly when it appears to be run from the terminal rather than a GUI. Can you provide a clearer explanation?
    – goobering
    Commented Oct 20, 2016 at 14:00
  • Aha! Got you. Is there any chance you could add that explanation to your answer? Without it, it's a little unclear what the effect of disabling X is.
    – goobering
    Commented Oct 20, 2016 at 14:17
  • There is no GUI - this is all from the terminal. Between the videos you just see the desktop (toolbar, terminal window, and whatever else you had open). Then a new player pops up. Commented Oct 20, 2016 at 14:28
  • Crossed wires setting in here - when you say 'all from the terminal' you appear to be describing using the terminal as launched from inside the LXDE windowed GUI. When I'm talking about using the terminal, I mean without using LXDE at all/booting directly to a non-graphical terminal. The approach used in this answer may be effective for hiding on-screen elements between videos if you're working in LXDE, but it would have no effect if the omxplayer process is already being launched from a stand-alone, non-graphical terminal.
    – goobering
    Commented Oct 20, 2016 at 14:36
  • I deleted my previous comments for a fresh start. By saying seamless, Arko Elsenaar means not to show any GUI component between 2 videos. A blank screen for less than a second is acceptable for him. But goobering talks about the real meaning of seamless which is 0 time gap between 2 videos. I am talking about the former one. I will edit my answer accordingly.
    – vaha
    Commented Oct 20, 2016 at 16:30

I came upon the gap problem too and I did some research how to make it smoother.

Based on my research I came up with a solution that worked for me.

I installed xterm first.

sudo apt-get install xterm

and then I modified my script to this:

while true; 
  for videos in $VIDEOPATH/*
      xterm -fullscreen -fg white -bg black -e omxplayer -o hdmi -r "$videos" >/dev/null
      xrefresh -display :0

For further information check here.

  • You should give further information in your answer. I don't check it here, tl;dr. We're looking for long answers that provide some explanation and context. Explain why your answer is right, together with the citation here.
    – Ingo
    Commented Sep 15, 2019 at 10:22
  • I tried to create a Digital Signage project with my pi and I came upon the gap problem so I did my research and I made a "tutorial" based on this research. The result is working for me but I don't know if this is the "right answer" so I just tried to help the community with a short answer and refer to the full guide. Commented Sep 15, 2019 at 16:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.