Playback of 1080p on Raspberry Pi with eglglessink
michael at tyson.id.au
Tue Feb 25 05:09:09 PST 2014
I’m trying to achieve 1080p playback on a Model B Raspberry Pi, using eglglessink and omxh264dec. Specifically, I’m receiving video over UDP from another RPi, and would like to stream and display it at the max resolution the camera can deliver.
The pipelines I’m using:
TX: raspivid -n -w 1920 -h 1080 -b 1000000 -fps 30 -vf -hf -t 0 -pf high -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay ! udpsink host=192.168.1.134 port=9000
I would *like* to use "gst-launch-1.0 v4l2src ! 'video/x-raw, width=1920, height=1080, framerate=30/1' ! queue ! videoconvert ! omxh264enc target-bitrate=1048576 control-rate=1 ! rtph264pay ! udpsink host=192.168.1.134 port=9000”, but v4l2src complains "Device '/dev/video0' cannot capture at 1920x1080, Tried to capture at 1920x1080, but device returned size 1920x1088”. Using height=1088 results in a black screen arriving on the other end. If I succeed on the RX side, I’ll probably try gst-rpicamsrc.
RX: gst-launch-1.0 -v udpsrc port=9000 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264' ! rtph264depay ! h264parse ! omxh264dec ! eglglessink sync=false
At 720p, video reception is simply lovely - great framerate, really low latency, about 180ms.
At 1080p, video reception is non-functional - it either runs at a very low framerate, about 2fps, if I don’t use the “sync=false” param to eglglessink, or the video runs in slow motion and cuts up.
The issue is most certainly on the display side: if I run gstreamer on my mac, I receive in 1080p at the full 30 fps, beautiful image.
As I understand it, the Raspberry Pi’s hardware *should* be able to display 1080p. Can anyone shed light on what’s going wrong, here?
I’ve been using the vontaene.de 1.0 debs, as well as my own debs built from 1.2.3 source from Debian experimental/sid.
More information about the gstreamer-devel