6

I'm using framebuffer image viewer fbi to display an image on a TV. Everything works fine for one image, if I don't refresh it. But when I need to refresh it, there is ~2 seconds of black screen (I presume while the process takes over the interface and clears it out). It is annoying. How can I refresh the image (it's the same file) immediately, without this transition?

If I specify 2 files to display in the loop, it is working just fine, and I get no black screen between images. Here are the things that I tried so far:

  • Provide 2 paths (same file) in the fbi command line. It loops through those 2 files, but image gets cached. When I update the file, fbi does not pick up the new one.
  • Make a copy of the original file, and provide 2 distinct file paths to fbi. Same as above - it loops through them, but when I overwrite one, it does not reflect on screen.
  • Tried using -noreadahead, -cachemem 0, and -cachemem 1 in command line arguments with 2 distinct files. Same behavior - it caches both images, and does not pick up new one.
  • Installed and tried fbi-improved (fim). Still same behavior (although it does not have readahead or cachemem parameters).

I'm not married to fbi, but that's the only one I found working on Raspberry. Ideally, I'd like to send an image form another computer and have it displayed on the screen pixel-to-pixel. I have the process of sending nailed down. Just need some process that shows the image using framebuffer (I don't want an overhead of X) that I could send SIGUSR1 to and it would re-read the same file would be perfect. Or that would just do it on a timer. Or with a trick like slideshow without pre-caching all files.

4

Ok, I figured out the approach! Turns out there is a catch with just 2 files that makes it cache regardless.

I created 2 symlinks to the original image file, and specified -cachemem 0. This triggered it to re-read the file on every refresh. So this allows me to update the image every 60 seconds:

fbi -T 1 -d /dev/fb0 -a -noverbose -t 60 -cachemem 0 /tmp/display-image.png /tmp/image-alias-1.png /tmp/image-alias-2.png

protected by Ghanima Jun 17 '17 at 8:57

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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