Closed ndepal closed 7 years ago
You can work around that by putting a video filter in the path to tell rpicamsrc what to output. You also need an h264parse before the rtp payloader:
rpicamsrc ! video/x-h264,width=1920,height=1080,framerate=30/1 ! h264parse ! rtph264pay ...
If I get a chance, I'll take a look at fixing the crash.
I've noticed that specifying caps works around the issue.
Can you shed some light on when one does or does not need an h264parse
element?
Actually, it will work without in this case, because rpicamsrc outputs NAL aligned packets that are already acceptable for RTP payloading. It doesn't hurt to include though - h264parse will do passthrough with almost no overhead where it can.
I'm having this problem as well, running on a pi zero w
$ gst-launch-1.0 -v rpicamsrc ! video/x-h264,width=1920,height=1080,framerate=30/1 ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! udpsink host=192.168.1.9 port=9999
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstRpiCamSrc:rpicamsrc0.GstPad:src: caps = "video/x-h264\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)nal\,\ profile\=\(string\)baseline"
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = "video/x-h264\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)nal\,\ profile\=\(string\)baseline"
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = "video/x-h264\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)nal\,\ profile\=\(string\)baseline"
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = "video/x-h264\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)nal\,\ profile\=\(string\)baseline"
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
ERROR: from element /GstPipeline:pipeline0/GstRpiCamSrc:rpicamsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2933): gst_base_src_loop (): /GstPipeline:pipeline0/GstRpiCamSrc:rpicamsrc0:
streaming task paused, reason error (-5)
Execution ended after 0:00:00.158667974
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
@divinebovine That looks completely unrelated to this bug, and is probably just that you didn't allocated enough GPU memory in /boot/config.txt
Closing as no further information provided
I just installed
gst-rpicamsrc
on a Pi Z (no wifi) running a fresh Raspbian Jessie install.The following pipeline works fine:
However, I want to leave out
omxh264enc
sincerpicamsrc
is capable of providing an h264 stream directly, thus changing the pipeline to the following (simply leavingomxh264enc
):This segfaults with the following output:
Any advice?