1

Here's what I want to do: have a raspberry pi as a simple dedicated player of streamed video, like a kiosk. I have a dedicated small ethernet. On one node The rpi is connected to an HDMI display. The stream sender is a PC running ubuntu linux. I want to stream a video file from there across the ethernet and display it on the rpi. I've managed to set up a prototype connection with udpserver and udpsink, but the CPU maxes out and I can't find a way to use rpi's hardware decode and display. It "should" be possible in theory because I can use omxplayer with a local file on the rpi. There are examples of similar things everywhere, but I can't get them to work. The most common use case is rpi doing the sending and not the receiving.

Does anyone have an example of a PC generating streamable video from a file and sending it over network, and an rpi picking that stream and displaying using omx acceleration? I could do a lot given an example!

RPI is first iteration of hardware, a model b, so doesn't have the raw CPU capacity of the 3/4 models with multiple cores and higher clock rates.

  • Whilst this is certainly answerable it's *probably* off topic here, at any rate until you get some demo code you have a specific question about. You'd likely get much better answers on e.g. the rpi forums. – 2e0byo Mar 13 '22 at 16:14
  • The reason largely being that the solution is going to require some back-n-forth. However, at the risk of provoking exactly that and not engaging in it, if omxplayer will play from stdin, pipe data from netcat for a demo (send the data the far end with netcat as well). The exact streaming solution you go with is going to depend on a lot though---and there are lots of protocols (you might want to look at rtsp, for example). – 2e0byo Mar 13 '22 at 16:16
  • Thanks, that is useful feedback on my question, and maybe it would be better in rpi forum. I've found various snippets using nc/netcat. Given that I do have, in effect, a dedicated ethernet for this purpose and no other, I _should_ be able to use a simple byte stream. If there's no obvious simple answer I'll go back the drawing board and ask a better question. – Rob Burbidge Mar 14 '22 at 10:31
  • 1
    A lot of testing later, I've discovered what I want (or something that is 90% of what I want) which is to use nginx to host an RTMP server that runs omxplayer. In short, install nginx and libnginx-mod-tmp, listen on port 1935 and stream the inbound content via loopback address into a subtask containing omxplayer. Then I can push a stream on from another box into the RPI and most of the work is done. No use re-inventing the wheel and using nc in this situation. Thanks for comments. – Rob Burbidge Mar 21 '22 at 18:27

0 Answers0