Movie2Serial on Raspberry Pi (LED array)

Status
Not open for further replies.

BuffaloFan32

Well-known member
I also posted this topic on the Processing site but haven't gotten any feedback.

I am trying to play video on my LED WS2812 array. Currently, the array has 89 pixels per strip and 64 strips. In the past, I have used an old laptop to run this display using Paul Stoffregen’s Movie2Serial script.

That laptop was so old that I decided to try it on a Raspberry Pi and got a smaller array working with this version of Paul’s script:

HTML:
https://forum.processing.org/two/discussion/26295/movie2serial-video-format-problem-i-think%201

My problem is that I can get my array to work if the script thinks there are only 48 rows, but as soon as I increase to 56 (or 64), it freezes up before it can display anything on the array. 48 rows is 4,272 LEDs, am I hitting some type of limit on the capabilities of the Pi?

Here is the console error I sometimes get when it freezes:

Code:
Serial Ports List:
/dev/serial1 /dev/ttyACM0 /dev/ttyAMA0
/home/pi/Desktop/movie2serial2/data/transit.mov
Final caps: video/x-raw(memory:GLMemory), width=(int)640, height=(int)360, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30000/1001, format=(string)RGBA, texture-target=(string)2D, colorimetry=(string)2:1:5:4
RunnableTask.run(): A caught exception occured on thread main-Display-.x11_:0.0-2-EDT-1: RunnableTask[enqueued true[executed false, flushed false], tTotal 1 ms, tExec 0 ms, tQueue 1 ms, attachment null, throwable java.lang.RuntimeException: Waited 5000ms for: <11a9cf0, 15e00ca>[count 1, qsz 0, owner <main-FPSAWTAnimator#00-Timer0>] - <main-Display-.x11_:0.0-2-EDT-1>]
java.lang.RuntimeException: Waited 5000ms for: <11a9cf0, 15e00ca>[count 1, qsz 0, owner <main-FPSAWTAnimator#00-Timer0>] - <main-Display-.x11_:0.0-2-EDT-1>
	at jogamp.common.util.locks.RecursiveLockImpl01Unfairish.lock(RecursiveLockImpl01Unfairish.java:198)
	at jogamp.newt.WindowImpl.getLocationOnScreen(WindowImpl.java:1159)
	at jogamp.newt.driver.x11.X11UnderlayTracker.windowMoved(X11UnderlayTracker.java:141)
	at jogamp.newt.WindowImpl.consumeWindowEvent(WindowImpl.java:4386)
	at jogamp.newt.WindowImpl.sendWindowEvent(WindowImpl.java:4317)
	at jogamp.newt.WindowImpl.positionChanged(WindowImpl.java:4558)
	at jogamp.newt.WindowImpl.sizePosMaxInsetsVisibleChanged(WindowImpl.java:4865)
	at jogamp.newt.driver.x11.DisplayDriver.DispatchMessages0(Native Method)
	at jogamp.newt.driver.x11.DisplayDriver.dispatchMessagesNative(DisplayDriver.java:112)
	at jogamp.newt.WindowImpl.waitForVisible(WindowImpl.java:4449)
	at jogamp.newt.WindowImpl.waitForVisible(WindowImpl.java:4443)
	at jogamp.newt.WindowImpl.createNative(WindowImpl.java:777)
	at jogamp.newt.WindowImpl.setVisibleActionImpl(WindowImpl.java:1248)
	at jogamp.newt.WindowImpl$VisibleAction.run(WindowImpl.java:1318)
	at com.jogamp.common.util.RunnableTask.run(RunnableTask.java:127)
	at jogamp.newt.DefaultEDTUtil$NEDT.run(DefaultEDTUtil.java:375)
DefaultEDT.run(): Caught exception occured on thread main-Display-.x11_:0.0-2-EDT-1: RunnableTask[enqueued false[executed true, flushed false], tTotal 6340 ms, tExec 6339 ms, tQueue 1 ms, attachment null, throwable java.lang.RuntimeException: Waited 5000ms for: <11a9cf0, 15e00ca>[count 1, qsz 0, owner <main-FPSAWTAnimator#00-Timer0>] - <main-Display-.x11_:0.0-2-EDT-1>]
java.lang.RuntimeException: Waited 5000ms for: <11a9cf0, 15e00ca>[count 1, qsz 0, owner <main-FPSAWTAnimator#00-Timer0>] - <main-Display-.x11_:0.0-2-EDT-1>
	at jogamp.common.util.locks.RecursiveLockImpl01Unfairish.lock(RecursiveLockImpl01Unfairish.java:198)
	at jogamp.newt.WindowImpl.getLocationOnScreen(WindowImpl.java:1159)
	at jogamp.newt.driver.x11.X11UnderlayTracker.windowMoved(X11UnderlayTracker.java:141)
	at jogamp.newt.WindowImpl.consumeWindowEvent(WindowImpl.java:4386)
	at jogamp.newt.WindowImpl.sendWindowEvent(WindowImpl.java:4317)
	at jogamp.newt.WindowImpl.positionChanged(WindowImpl.java:4558)
	at jogamp.newt.WindowImpl.sizePosMaxInsetsVisibleChanged(WindowImpl.java:4865)
	at jogamp.newt.driver.x11.DisplayDriver.DispatchMessages0(Native Method)
	at jogamp.newt.driver.x11.DisplayDriver.dispatchMessagesNative(DisplayDriver.java:112)
	at jogamp.newt.WindowImpl.waitForVisible(WindowImpl.java:4449)
	at jogamp.newt.WindowImpl.waitForVisible(WindowImpl.java:4443)
	at jogamp.newt.WindowImpl.createNative(WindowImpl.java:777)
	at jogamp.newt.WindowImpl.setVisibleActionImpl(WindowImpl.java:1248)
	at jogamp.newt.WindowImpl$VisibleAction.run(WindowImpl.java:1318)
	at com.jogamp.common.util.RunnableTask.run(RunnableTask.java:127)
	at jogamp.newt.DefaultEDTUtil$NEDT.run(DefaultEDTUtil.java:375)
 
Last year I put a couple days into trying to get this to run on Raspberry Pi. I fixed several problems and updated movie2serial. But it seems gstreamer changed and, at least as of last year, the Processing' movie library doesn't deal with the new version. It turned out to be a very deep rabbit hole of Linux & gnome library issues! Ultimately I gave up.

Just to be perfectly clear, this was a Processing movie library compatibility problem.

If you *really* want to use Raspberry Pi, I recommend downloading VERY OLD versions of Raspbian. Maybe you'll find one with the old version of gstreamer?

Or you could dive into the movie library and try to get it running with the modern gstreamer? Unless that's already happened, I'm sure it'd make many Processing users happy!

If you value your sanity, I'd recommend abandoning Raspberry Pi and just run on a Mac or Windows laptop.
 
Thanks Paul, you are probably right about my sanity. I certainly don't have the expertise necessary to change a library.

I guess somebody got the script to work. It just breaks down when the number of LEDs goes over 4 thousand or so.
 
So, if the Pi won't work and I want to replace my old laptop. Do you guys have any suggestions on specs I should look for on a new machine? I would ultimately like to be able to control 70k pixels but I am a ways from that at the moment.
 
Status
Not open for further replies.
Back
Top