Introduction: Live Picture Frame With Raspberry PI

Picture of Live Picture Frame With Raspberry PI

I recently moved from UK back to Spain to work remotely, and since then, I've been curious about how the weather is there, specially when talking with people on the other country. Is it raining today ? Is the sun gone already ?

To address that problem, I found a few live videos/webcams about london like earthtv or London Tower Bridge so I kept those videos on one of the tabs of my browser.

But, wouldn't be cool to have it on a separate picture frame, always there, just like a normal picture, but live.

That's why I built a slim picture frame from old recycled components. To see the Tower Bridge at day and at night.

Step 1: Materials

These are the materials I used to create the live picture. All these items were already on my inventory:

  • Old ultra-thin LCD screen from a broken laptop (10 years old)
  • 12v LCD controller board with VGA output
  • Raspberry PI Zero
  • HDMI to VGA adaptor
  • 12v to 5v converter regulator
  • Ikea KNOPPANG picture frame for A4
  • Sonoff wireless switch (optional)
  • VGA cable, micro usb cable, 12v splitter cable

Step 2: Adjusting the Picture Frame

Picture of Adjusting the Picture Frame

The Ikea picture frame was made for A4 pictures, however, my 15'' LCD screen is slightly bigger than that, therefore we need to make some adjustments, first, increasing the hole in the white inner frame to 15''.

Then, cutting the back of the frame to the same size

Everything should fit together, so you should be able to see all the screen inside the inner frame

Step 3: LCD Screen

Picture of LCD Screen

Since a few years ago, I had an ultra thin LCD screen from an old broken laptop. After finding and using a controller board, I've been able to use it as extra screen for my desktop computer sugin a VGA connection.

Controller boards are specific to the LCD screen, you need to use an specific model for the serial number of your screen, you can find it on the back. Then it's a matter of searching ebay/aliexpress for a controller board listing compatibility with your screen model.

So I decided to recycle this screen now to create the canvas, because it's thin and lightweight.

I removed the front case, but left the back side to protect the screen, isolate the components and glue the cables and raspberry pi to it.

The Raspberry PI zero, glued to the back of the screen, is powered by the same power adaptor that powers the LCD screen, using a 12v to 5v conversor. So we don't need another extra cable connected into the screen. This is how it looks from the back.

Step 4: Wall Mounting

Picture of Wall Mounting

After everything has been assembled together, and tested, we're ready to hang it into the wall. For this I've just added two L shape hooks into the wall, and another two round hooks screwed into the plastic back of the screen.

After hanging it to the wall, I connected the 12v cable, and try to hide it using white tape.

Step 5: Automatically Schedule Screen

Picture of Automatically Schedule Screen

I'd like to schedule the frame, so it runs from 10AM to 7PM on weekdays, my working hours, so I can see London while I work remotely.

My first approach was to add some scripts on the Raspberry PI (cronjobs) to automatically switch ON/OFF the video output using `tvservice --off` or `xset dpms force off` however it didn't work pretty well in my case, because my LCD controller was not going into standby after turning off the HDMI signal.

So I decided to use a cheap wireless smart switch I've been using for a while, which can be scheduled and controlled by the phone, called [Sonoff]( You could be using an [Energenie](, Xiaomi or something similar if you like.

This device needs to be connected in between your power cable, then you can configure it via the phone app.

Then you can add the schedule so the Sonoff, and the Raspberry PI and the screen will be turned ON and OFF automatically.

Step 6: Software

Picture of Software

Because I have now a Raspberry PI powered LCD screen hanging in the wall, I can pretty much display whatever I want. Like for example:

  • Web page using chrome `chromium-browser --kiosk $url`
  • Video using omxplayer `omxplayer video.mp4`
  • Use Kodi to display videos or other plugins.
  • Youtube, twitch live video using the Livestreamer
  • etc.

Display live video using livestreamer

For this project, I chose to display the London Tower Bridge from a live stream in youtube.

This can be easily achieved using [livestreamer]( open source app, which allow us to display any live content from Youtube, twitch, livestream, dailymotion, etc... into a local video player, without using a web browser.

This is the command I'm using to display a Youtube link using omxplayer on fullscreen.

livestreamer $youtube_url 720p -n -p "omxplayer --no-osd --win '0 0 1280 800' "
  • $youtube_url is a variable with the url of the livestream on youtube
  • 720 is to select the resolution of the video, you can also use best or worst.
  • -n or --fifo Make the player read the stream through a named pipe instead of the stdin pipe
  • -p player to use
  • --no-osd hide the UI from omxplayer
  • --win display video on full screen (my screen resolution) on omxplayer

Omxplayer is the best open source video player on Raspberry PI, you could try using VLC, but it will not work or display anything because of the lack of native hardware acceleration on Raspberry PI.

Script to display on startup

I wanted to automatically run the video on startup, without any manual interaction.

There are a few ways to do it, but the best I found is using the `autostart` script located in /home/pi/.config/lxsession/LXDE-pi/autostart. On this script, you need to add `@` before every command.

If you want to keep the display ON, you'll need to add these lines to prevent the screen going OFF after a few minutes.

@xset s off
@xset -dpms
@xset s noblank 

Then you can add the command from before to start the livestream on startup. This is all you need to add into the `/home/pi/.config/lxsession/LXDE-pi/autostart` script:

 @xset s off
@xset -dpms
@xset s noblank
@livestreamer <a href="" rel="nofollow"> </a> 720p -n -p "omxplayer --no-osd --win '0 0 1280 800' " 

Step 7: Conclussions and Improvements

This was an easy and cheap project to build, if you have an old screen, or you get a cheap one. The picture frame looks very nice hanging on the wall, and thanks to youtube and livestreamer, we can display any video very easily.

It took me some time to find the best streaming combination on Raspberry PI Zero. I tried using `chromium-browser --kiosk` but after sometime the browser was crashing; I tried using VLC to display M3U8 streaming video, but VLC was not efficient enough. Some links did not play on omxplayer, so at the end, I decided to use livestreamer, which works pretty well, and you can use it with other sources too.

I'd like to have a better LCD screen, maybe LED, with a direct HDMI connection and better viewing angle.

You could use the spare 12v connector to add a LED strip on the back of the frame, if you want to have some extra light effect.

Let me know what you think about this project, and if you've built your own.


Christopher SSR (author)2017-12-06

I was hoping to do something similar, however there are no livestream youtube or otherwise sites. There are some webcams this ones specifically

That I could use however I am not sure with it can be acheived with the same coding you used. do you have any suggestions. (I am sourcing the parts now.

rephus (author)Christopher SSR2017-12-07

I guess you're trying to find a livecam on Liverpool; I couldn't find any on youtube. That page you sent shows you a screenshot every 30 seconds, it's not great, but you can still use it if you open a chrome browser. You could also find a streaming in m3u8, which can be displayed in omxplayer (if it's compatible). I'm not an expert on live streamings, maybe someone else can help you find the video you want. Good luck.

Christopher SSR (author)rephus2017-12-07

Thanks, I appreciate the response. I agree it is not ideal. But the alternative requires a flight and setting up my own cam. :)

I guess I will need to do more research, I am not sure how to make the pic in the link full screen and also refresh. I also am not sure what m3u8 is and doing a quick google makes it seem not so simple. It is also hard to search for stream and liverpool and not get 1 million links regarding liverpool FC games. :( I'll see what I can do to build off of your project. Thanks

dsegel (author)2017-12-03

Great minds and all that...I did something similar for a co-worker who has a windowless office. My script pulls random stream URLs from a separate file, and rotates what's shown every 45 minutes (changeable in the script of course).

ed9sal (author)dsegel2017-12-03

Desegel, could you please let me know whether I can use a small, cheap tv or a large-screen laptop to do the same as your project, in a seniors' support center? Any help with the script would be extremely helpful. Could it also be used as a digital photo frame via memory card/wireless?

Your input is much appreciated.


dsegel (author)ed9sal2017-12-05

Absolutely - you can use any display that has an HDMI input (or DVI/VGA with an adapter). In my case we're using a 32" TV mounted on the wall.

The Raspberry Pi 3 has wireless built in. You could set it up to read from a USB flash drive, but you'd have to know some linux commands and shell scripting to do that.

I'd be happy to send you my script. I'd even put it here if I could figure out how to format it properly.

laith mohamed (author)2017-12-05

Good idea

NightF3 (author)2017-12-03

What a great idea. What about a cheap 32" tv with a USB and a google cromecast. Mount it on a $20 tv wall mount. :)

rephus (author)NightF32017-12-04

Absolutely, I used recycled components but you're free to buy the components you need to make this work. You'll need to get a very thin and lightweight tv to make it look like a picture frame on the wall (mine is about 1cm deep). You can also use the Chromecast too, but I prefer using a Raspberry PI so I can run scripts and display videos on startup.

NightF3 (author)rephus2017-12-04

I love the Pi's. :)

GarethE10 (author)2017-12-01


Great project! Just an update on the live tower bridge webcam: you need to use this URL to always get the live view:

If that link doesn't work with your code, you can try the "embed" version of the link:

If you don't use these links, you can end up on a previous live stream recording - not the actual live stream. This is due to YouTube archiving a recording of the stream whenever it goes offline for a minute.

Best, Gareth

rephus (author)GarethE102017-12-04

Hi Gareth, thanks for you comment.

You are right, after a few days I noticed that the video was no longer live. I've tried with multiple urls, like the "embed" you suggested, but livestreamer doesn't like this. I'm updating the URL on the raspberry every 4 or 5 days for now, at some point I might build a script that will find the latest version of the live video on youtube.

I'll update the instructable if I come with a better solution, thanks.

GarethE10 (author)rephus2017-12-04

Hi Rephus

I'm involved with the webcam, i'm going to remove the "archive footage upon disconnect" option on YT and see if this helps.

You could also attempt our London timelapse camera feed on the Chromium kiosk (hopefully won't memleak as much as live streaming):

SteveG382 (author)2017-12-03

could you also use old iPad or chrome book without modification?

rephus (author)SteveG3822017-12-04

Possibly, at least on an android based tablet, which are easier to customize than IOs devices. If you have an spare tablet, give it a try, all you need is to open youtube or something on startup. You'll loose the remote control option though, that's why I decided to use a raspberry pi instead.

ajayt7 (author)2017-12-03

Grand idea, great job

sconnors (author)2017-12-03

I achieved a similar effect using an Amazon Fire Stick and a monitor with an HDMI input. Will display Utube videos, my photos that are uploaded to Amazon, as well as movies, videos etc that Amazon makes available. The surprise to me was that I didn't need a TV with the Fire Stick.

jfarro (author)2017-12-03

Awesome project and great write up! Also I like that you found really inexpensive sources for things...that ikea frame is inexpensive but looks so clean! Well done, you got my votes

DavidE341 (author)2017-12-03

I also thought of this several years ago and posted it on an advanced home building forum as a way of reducing cost (windows and doors for high-performance houses are still a huge cost item). I got a huge negative push-back! Everyone wanted to look outside (even if there was no view) and "throw open the windows" even if you had a much better automated ventilation/heating/cooling system. The reaction just made no sense given the non-conventional construction mentality, but I still think it is an excellent idea - just stream videos from a GREAT view somewhere else in the world. Interestingly, one of the big box stores now offers a large-scale OLED television with a frame to look like the author's - only about 10X larger. Hmmm... Even with the higher cost of a large-format television my idea would still be less expensive than the initial cost and long-term energy loss of conventional glass high-performance windows. And it would be ideal for basement or poor-view apartments. You could even incorporate a hi-def exterior camera for an outside view when desired.

This gets my vote!

edweldon (author)2017-12-03

Voila!! Finally someone has resurrected an idea whose time has come. 7-8 years ago when I first saw 24 hour streaming video (in every 15 second snapshots) I thought this was the next big thing for the 99% of people who live in a home without a view. With my ignorance of the technology it required to do what customers would want it's a good thing I wasn't ready to invest real dollars. But now the concept is viable techologically. I can think of several large corporations that already have the capabilities to present this product to a ready market. It may well be a new technology gold rush. Ed Weldon 12-03-17

picposter (author)2017-12-03

great Idea! Got my Vote

InarcoC (author)2017-12-03

Nice Idea! I have a broken laptop stored, and I never imagined it screen could be adapted to work as VGA screen.
Also, old VGA screens are now cheap (since most computers need hdmi ones), you can grab them for $10 in second hand stores.

Kadok (author)2017-12-03

that is so cool, really like this idea!

seamster (author)2017-12-01

I love this! A wall of these with different locations live streaming would be so cool . . like those lines of clocks in offices showing times in Tokyo, London, New York, etc. Awesome!

About This Instructable




Bio: Software engineer, fan of electronics and videogames.
More by rephus:Live Picture Frame With Raspberry PISmart staircase LED lightingVideogame controller holder (compilation)
Add instructable to: