turingmachine / omxplayer-sync

OMXPlayer-Sync facilitates synchronization of multiple OMXPlayer instances over the network in a master/slave fashion.
194 stars 70 forks source link

no seamless loop #23

Closed renoproc closed 9 years ago

renoproc commented 9 years ago

I've juste compiled the last version of omxplayer of popcornmix (commit 74aac3752a), so there is no more gap in omxplayer loop. It appears there is a gap beetwen two loops when omxplayer is running through omxplayer-sync, I'm trying to get a look on the source to fix it but I'm quite newbie in python...

turingmachine commented 9 years ago

omxplyer-sync does start a new omxplayer instance for every supplied file file for every loop iteration. This means omxpayer-sync doesn't use omxplayer's --loop option to achieve endless looping.

renoproc commented 9 years ago

yep, I juste tried and saw that. but is there will be some trouble between master and slave if you add if self.options.loop: self.omxplayer_options.append('--loop') on line 151 and modify line 172 from if not self.first_run and not self.options.loop and self.playlist_index == 0: break to if not self.first_run and self.playlist_index == 0: break

with one Pi this modifications works : loops without any gap and only one omxplayer instance launched, but I don't have any slave connected to it, so...

renoproc commented 9 years ago

Ok, I forgot the wildcard possibility of omxplayer-sync ! And I really have to buy a second rasp and give a try !!

If this customization works with slaves perhaps it could be possible to set a simple loop if there is no wildcard character, thus no gap while looping on the same movie, and a loop-through-list if there is one. In this last case what could be the solution to avoid a gap between movies ? Perhaps could be to launch a second instance of omxplayer few milliseconds before the end of the first one, and kill the first instance when the second movie is playing (or perhaps the --layer n command of omxplayer could help in this case, I didn't try it). That's just an idea, I understand that this solution is really complicated, almost with the slave side option...

In any case, thanks for this script, very usefull and interesting to dig in.

mxa commented 9 years ago

Is there a way to get it to loop seamlessly? Or maybe just suppress the text which appears for a second or two on the slave machines?

barlaensdoonn commented 9 years ago

Disabling the verbose flag (removing -v from omxplayer-sync command line call) will play files without text

mxa commented 9 years ago

Thanks, but I'm not talking about verbose mode. Even without it there is some text for a few seconds on the client machines.

turingmachine commented 9 years ago

@barlaensdoonn is right. Disabling verbose mode in omxplayer-sync will pass '--no-osd' to omxplayer: https://github.com/turingmachine/omxplayer-sync/blob/master/omxplayer-sync#L147. So if this doesn't solve the issue, can you describe more precisely what kind of text you see? Maybe provide a screenshot. Also I've explained right in this thread at the the top why "seamless" looping is currently not possible.

mxa commented 9 years ago

I figured it out: adding a clear in the shell script launching omxplayer-sync minimizes the text you see briefly between the loop points, but ultimately solving the issue is the -b option which puts a black background behind the video.

zhiwan commented 7 years ago

I don't think this is related to the verbose mode as the text I am seeing occurs when omxplayer restarts and shows the actual terminal (and terminal text). I have tried the -b option but that still acknowledges a break in the video when it restarts. But I am happy to say I did try renoproc's code modification and it seems to work: the videos created a seamless loop.