Problem with rtspclientsink when using v4l2h264enc on Dragonboard 410c

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Problem with rtspclientsink when using v4l2h264enc on Dragonboard 410c

RobGries
When using the following pipeline on a dragonboard 410c using the gstv4l2enc
I seem not to be able to stream up to wowza:
gst-launch-1.0 -v v4l2src device=/dev/video3 !
video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! v4l2h264enc
extra-controls="controls,h264_profile=4,video_bitrate=2000000;" ! h264parse
! rtspclientsink
location=rtsp://51c1b3.entrypoint.cloud.wowza.com/app-acb4:1935

This is the error that I get:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Progress: (open) Opening Stream
Progress: (connect) Connecting to
rtsp://51c1b3.entrypoint.cloud.wowza.com/app-acb4:1935
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw,
format=(string)NV12, width=(int)1280, height=(int)720,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
colorimetry=(string)1:4:7:1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps =
video/x-raw, format=(string)NV12, width=(int)1280, height=(int)720,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
colorimetry=(string)1:4:7:1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/v4l2h264enc:v4l2h264enc0.GstPad:src: caps =
video/x-h264, stream-format=(string)byte-stream, alignment=(string)au,
profile=(string)high, level=(string)1, width=(int)1280, height=(int)720,
pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1,
interlace-mode=(string)progressive, colorimetry=(string)1:4:7:1
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps =
video/x-h264, stream-format=(string)byte-stream, alignment=(string)au,
profile=(string)high, level=(string)1, width=(int)1280, height=(int)720,
pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1,
interlace-mode=(string)progressive, colorimetry=(string)1:4:7:1,
parsed=(boolean)true
/GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0.GstGhostPad:sink_0.GstProxyPad:proxypad0:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)au, profile=(string)high, level=(string)1,
width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
colorimetry=(string)1:4:7:1, parsed=(boolean)true
Progress: (open) Retrieving server options
Progress: (open) Opened Stream
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0/GstBin:rtspbin/GstRtpBin:rtpbin0:
latency = 2000
/GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0/GstBin:rtspbin/GstRtpBin:rtpbin0:
ntp-time-source = NTP time based on realtime clock
/GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0/GstBin:rtspbin/GstRtpH264Pay:rtph264pay0:
pt = 96
/GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0/GstBin:rtspbin.GstGhostPad:ghostpad0.GstProxyPad:proxypad1:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)au, profile=(string)high, level=(string)1,
width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
colorimetry=(string)1:4:7:1, parsed=(boolean)true
/GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0/GstBin:rtspbin/GstRtpH264Pay:rtph264pay0.GstPad:sink:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)au, profile=(string)high, level=(string)1,
width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
colorimetry=(string)1:4:7:1, parsed=(boolean)true
/GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0/GstBin:rtspbin.GstGhostPad:ghostpad0:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)au, profile=(string)high, level=(string)1,
width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
colorimetry=(string)1:4:7:1, parsed=(boolean)true
/GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0.GstGhostPad:sink_0:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)au, profile=(string)high, level=(string)1,
width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
colorimetry=(string)1:4:7:1, parsed=(boolean)true
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps =
video/x-h264, stream-format=(string)byte-stream, alignment=(string)au,
profile=(string)high, level=(string)1, width=(int)1280, height=(int)720,
pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1,
interlace-mode=(string)progressive, colorimetry=(string)1:4:7:1
Redistribute latency...
/GstPipeline:pipeline0/v4l2h264enc:v4l2h264enc0.GstPad:sink: caps =
video/x-raw, format=(string)NV12, width=(int)1280, height=(int)720,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
colorimetry=(string)1:4:7:1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps =
video/x-raw, format=(string)NV12, width=(int)1280, height=(int)720,
framerate=(fraction)30/1, interlace-mode=(string)progressive,
colorimetry=(string)1:4:7:1, pixel-aspect-ratio=(fraction)1/1
Execution ended after 0:00:00.258690184
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

(gst-launch-1.0:5619): GStreamer-CRITICAL **: gst_structure_set: assertion
'IS_MUTABLE (structure) || field == NULL' failed
ERROR: from element /GstPipeline:pipeline0/v4l2h264enc:v4l2h264enc0: Could
not get/set settings from/on resource.
Additional debug info:
../../../gst-plugins-good-1.12.2/sys/v4l2/gstv4l2object.c(3150):
gst_v4l2_object_set_format_full ():
/GstPipeline:pipeline0/v4l2h264enc:v4l2h264enc0:
Device is in streaming mode

The weird thing is that I can utilize the test code from gst-rtsp-server
with the following pipeline to stream as an RTSP server, but it seems that
pushing a stream has issues:
v4l2h264enc
extra-controls=\"controls,h264_level=15,h264_profile=4,video_bitrate=800000;\"
! h264parse !  rtph264pay name=pay0 pt=127 config-interval=15 pulsesrc
device=\"alsa_input.platform-7702000.sound.HiFi__plughw_0_1__source\" !
audio/x-raw,rate=8000  ! audioconvert ! avenc_aac ! rtpmp4apay name=pay1
pt=96"

Test Code Located here:
https://github.com/GStreamer/gst-rtsp-server/blob/master/examples/test-video.c



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problem with rtspclientsink when using v4l2h264enc on Dragonboard 410c

Nicolas Dufresne-5
Le jeudi 15 mars 2018 à 12:07 -0700, RobGries a écrit :
> When using the following pipeline on a dragonboard 410c using the gstv4l2enc
> I seem not to be able to stream up to wowza:
> gst-launch-1.0 -v v4l2src device=/dev/video3 !
> video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! v4l2h264enc
> extra-controls="controls,h264_profile=4,video_bitrate=2000000;" ! h264parse

You should use caps filter to negotiate profiles, I cannot guaranty
setting the profile this way will work. An example:

  v4l2h264enc ! video/x-h264,profile=main,level=4 ! ...

> ! rtspclientsink
> location=rtsp://51c1b3.entrypoint.cloud.wowza.com/app-acb4:1935
>
> This is the error that I get:
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Progress: (open) Opening Stream
> Progress: (connect) Connecting to
> rtsp://51c1b3.entrypoint.cloud.wowza.com/app-acb4:1935
> /GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw,
> format=(string)NV12, width=(int)1280, height=(int)720,
> framerate=(fraction)30/1, interlace-mode=(string)progressive,
> colorimetry=(string)1:4:7:1, pixel-aspect-ratio=(fraction)1/1
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps =
> video/x-raw, format=(string)NV12, width=(int)1280, height=(int)720,
> framerate=(fraction)30/1, interlace-mode=(string)progressive,
> colorimetry=(string)1:4:7:1, pixel-aspect-ratio=(fraction)1/1
> /GstPipeline:pipeline0/v4l2h264enc:v4l2h264enc0.GstPad:src: caps =
> video/x-h264, stream-format=(string)byte-stream, alignment=(string)au,
> profile=(string)high, level=(string)1, width=(int)1280, height=(int)720,
> pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1,
> interlace-mode=(string)progressive, colorimetry=(string)1:4:7:1
> /GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps =
> video/x-h264, stream-format=(string)byte-stream, alignment=(string)au,
> profile=(string)high, level=(string)1, width=(int)1280, height=(int)720,
> pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1,
> interlace-mode=(string)progressive, colorimetry=(string)1:4:7:1,
> parsed=(boolean)true
> /GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0.GstGhostPad:sink_0.GstProxyPad:proxypad0:
> caps = video/x-h264, stream-format=(string)byte-stream,
> alignment=(string)au, profile=(string)high, level=(string)1,
> width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1, interlace-mode=(string)progressive,
> colorimetry=(string)1:4:7:1, parsed=(boolean)true
> Progress: (open) Retrieving server options
> Progress: (open) Opened Stream
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> /GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0/GstBin:rtspbin/GstRtpBin:rtpbin0:
> latency = 2000
> /GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0/GstBin:rtspbin/GstRtpBin:rtpbin0:
> ntp-time-source = NTP time based on realtime clock
> /GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0/GstBin:rtspbin/GstRtpH264Pay:rtph264pay0:
> pt = 96
> /GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0/GstBin:rtspbin.GstGhostPad:ghostpad0.GstProxyPad:proxypad1:
> caps = video/x-h264, stream-format=(string)byte-stream,
> alignment=(string)au, profile=(string)high, level=(string)1,
> width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1, interlace-mode=(string)progressive,
> colorimetry=(string)1:4:7:1, parsed=(boolean)true
> /GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0/GstBin:rtspbin/GstRtpH264Pay:rtph264pay0.GstPad:sink:
> caps = video/x-h264, stream-format=(string)byte-stream,
> alignment=(string)au, profile=(string)high, level=(string)1,
> width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1, interlace-mode=(string)progressive,
> colorimetry=(string)1:4:7:1, parsed=(boolean)true
> /GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0/GstBin:rtspbin.GstGhostPad:ghostpad0:
> caps = video/x-h264, stream-format=(string)byte-stream,
> alignment=(string)au, profile=(string)high, level=(string)1,
> width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1, interlace-mode=(string)progressive,
> colorimetry=(string)1:4:7:1, parsed=(boolean)true
> /GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0.GstGhostPad:sink_0:
> caps = video/x-h264, stream-format=(string)byte-stream,
> alignment=(string)au, profile=(string)high, level=(string)1,
> width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1,
> framerate=(fraction)30/1, interlace-mode=(string)progressive,
> colorimetry=(string)1:4:7:1, parsed=(boolean)true
> /GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps =
> video/x-h264, stream-format=(string)byte-stream, alignment=(string)au,
> profile=(string)high, level=(string)1, width=(int)1280, height=(int)720,
> pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1,
> interlace-mode=(string)progressive, colorimetry=(string)1:4:7:1
> Redistribute latency...
> /GstPipeline:pipeline0/v4l2h264enc:v4l2h264enc0.GstPad:sink: caps =
> video/x-raw, format=(string)NV12, width=(int)1280, height=(int)720,
> framerate=(fraction)30/1, interlace-mode=(string)progressive,
> colorimetry=(string)1:4:7:1, pixel-aspect-ratio=(fraction)1/1
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps =
> video/x-raw, format=(string)NV12, width=(int)1280, height=(int)720,
> framerate=(fraction)30/1, interlace-mode=(string)progressive,
> colorimetry=(string)1:4:7:1, pixel-aspect-ratio=(fraction)1/1
> Execution ended after 0:00:00.258690184
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
> (gst-launch-1.0:5619): GStreamer-CRITICAL **: gst_structure_set: assertion
> 'IS_MUTABLE (structure) || field == NULL' failed
Can you file a bug about this one please, bugs.gnome.org.

> ERROR: from element /GstPipeline:pipeline0/v4l2h264enc:v4l2h264enc0: Could
> not get/set settings from/on resource.
> Additional debug info:
> ../../../gst-plugins-good-1.12.2/sys/v4l2/gstv4l2object.c(3150):
> gst_v4l2_object_set_format_full ():
> /GstPipeline:pipeline0/v4l2h264enc:v4l2h264enc0:
> Device is in streaming mode

This one is familiar, but I thought it was fixed in 4.15+ (or latest
4.9 from linaro). Which kernel are you running ?

>
> The weird thing is that I can utilize the test code from gst-rtsp-server
> with the following pipeline to stream as an RTSP server, but it seems that
> pushing a stream has issues:
> v4l2h264enc
> extra-controls=\"controls,h264_level=15,h264_profile=4,video_bitrate=800000;\"
> ! h264parse !  rtph264pay name=pay0 pt=127 config-interval=15 pulsesrc
> device=\"alsa_input.platform-7702000.sound.HiFi__plughw_0_1__source\" !
> audio/x-raw,rate=8000  ! audioconvert ! avenc_aac ! rtpmp4apay name=pay1
> pt=96"
>
> Test Code Located here:
> https://github.com/GStreamer/gst-rtsp-server/blob/master/examples/test-video.c
That's weird indeed. Best would be for me to reproduce these two
issues. If you could file a bug, it would be extra nice, as this way I
won't forget.

>
>
>
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Problem with rtspclientsink when using v4l2h264enc on Dragonboard 410c

RobGries
Responding to Nicolas Dufresne:
>You should use caps filter to negotiate profiles, I cannot guaranty
>setting the profile this way will work. An example:

>  v4l2h264enc ! video/x-h264,profile=main,level=4 ! ...

Using this pipeline with caps filter, I still couldn't get the device to
start streaming:
gst-launch-1.0 -v v4l2src device=/dev/video3 !
video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! v4l2h264enc
extra-controls="controls,h264_profile=4,video_bitrate=20000
00;" ! video/x-h264,profile=main,level=4 ! h264parse ! rtspclientsink
location=rtsp://<wowza-address-stripped>:1935

>Can you file a bug about this one please, bugs.gnome.org.
Sure, I'll start this soon. Would you like me to reference the URL from
bugzilla here when I have filed one?

>This one is familiar, but I thought it was fixed in 4.15+ (or latest 4.9
from linaro). Which kernel are you running?
I am running a fork of the linaro 4.14.15 kernel. My github repo for it is
located here, if you are interested in taking a look:
https://github.com/RobGries/96b_4.14_kernel/ 



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel