AW: Dynamically record a h264 stream
Sebastian Dröge
sebastian at centricular.com
Fri Mar 25 08:08:01 UTC 2016
On Mi, 2016-03-23 at 15:37 +0100, Davide Tuccilli wrote:
>
> On 23/03/2016 09:22, Sebastian Dröge wrote:
> >
> > On Di, 2016-03-22 at 20:58 +0100, Davide Tuccilli wrote:
> > >
> > >
> > >
> > > Any reason the current caps might result null for the muxer
> > > video_0/h264parse src pads? For what I understand, that's the problem
> > > right? I should have stream-format=avc there. I'm not sure how to
> > > debug this.
> > The problem seems to be that for whatever reason h264parse fails to
> > negotiate. It should indeed output AVC in your case, but it fails doing
> > so.
> >
> > You'll have to debug from the debug logs why exactly h264parse fails.
> > You should also get an error about that, a negotiation error.
> >
>
> Seems to me that both in the "bad" log and the "good" log, the h264parse
> and mux are linked correctly, this is taken from the bad log:
>
>
> 0:00:02.942548805 [332m20077[00m 0x12b3200 [37mDEBUG [00m
> [00;01;34m GST_CAPS
> gstpad.c:2190:gst_pad_link_check_compatible_unlocked:[00m src
> caps image/jpeg; video/mpeg, mpegversion=(int)4,
> systemstream=(boolean)false; video/mpeg, mpegversion=(int)2;
> video/mpegts, systemstream=(boolean)true; video/x-bayer,
> format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 32768 ],
> height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
> video/x-dv, systemstream=(boolean)true; video/x-h263,
> variant=(string)itu; video/x-h264, stream-format=(string)byte-stream,
> alignment=(string)au; video/x-pwc1, width=(int)[ 1, 32768 ],
> height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
> video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ],
> framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){
> RGB15, RGB16, BGR, RGB, BGRx, BGRA, xRGB, ARGB, GRAY8, YVU9, YV12, YUY2,
> UYVY, Y42B, Y41B, NV12_64Z32, NV24, YUV9, I420, YVYU, NV61, NV16, NV21,
> NV12 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ],
> framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-sonix, width=(int)[
> 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1,
> 2147483647/1 ]; video/x-vp8
> 0:00:02.942828908 [332m20077[00m 0x12b3200 [37mDEBUG [00m
> [00;01;34m GST_CAPS
> gstpad.c:2192:gst_pad_link_check_compatible_unlocked:[00m
> sink caps video/x-h264, width=(int)720, height=(int)576,
> framerate=(fraction)25/1
> 0:00:02.942910887 [332m20077[00m 0x12b3200 [37mDEBUG [00m
> [00;01;34m GST_CAPS
> gstpad.c:2210:gst_pad_link_check_compatible_unlocked:[00m caps are
> compatible
> 0:00:02.942963022 [332m20077[00m 0x12b3200 [36mINFO [00m
> [00;01;31;41m GST_PADS gstpad.c:2496:gst_pad_link_full:[00m
> linked recsource:src and capsfilter0:sink, successful
>
>
> 0:00:04.479278218 [335m18988[00m 0x14c3200 [37mDEBUG [00m
> [00;01;34m GST_CAPS
> gstpad.c:2190:gst_pad_link_check_compatible_unlocked:[00m
> src caps video/x-h264, stream-format=(string)avc, alignment=(string)au,
> parsed=(boolean)true
> 0:00:04.479323217 [335m18988[00m 0x14c3200 [37mDEBUG [00m
> [00;01;34m GST_CAPS
> gstpad.c:2192:gst_pad_link_check_compatible_unlocked:[00m
> sink caps video/mpeg, mpegversion=(int)4, systemstream=(boolean)false,
> width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ];
> video/x-divx, divxversion=(int)5, width=(int)[ 16, 2147483647 ],
> height=(int)[ 16, 2147483647 ]; video/x-h264, stream-format=(string)avc,
> alignment=(string)au, width=(int)[ 16, 2147483647 ], height=(int)[ 16,
> 2147483647 ]; video/x-mp4-part, width=(int)[ 16, 2147483647 ],
> height=(int)[ 16, 2147483647 ]
> 0:00:04.479417019 [335m18988[00m 0x14c3200 [37mDEBUG [00m
> [00;01;34m GST_CAPS
> gstpad.c:2210:gst_pad_link_check_compatible_unlocked:[00m caps are
> compatible
> 0:00:04.479457696 [335m18988[00m 0x14c3200 [36mINFO [00m
> [00;01;31;41m GST_PADS gstpad.c:2496:gst_pad_link_full:[00m
> linked capsfilter1:src and mp4mux0:video_0, successful
>
>
> Anything else I might want to look for in the log, or any reason I can
> get null when calling gst_pad_get_sticky_event?
Can you provide the full log, and also attach it to the mail instead of
pasting it? This one doesn't contain the actual error but only some
setup that happens before and all succeeds.
gst_pad_get_current_caps() will return NULL if no caps are negotiated
on the pad. That is, no caps event was received and accepted.
--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 949 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160325/65c37c28/attachment-0001.sig>
More information about the gstreamer-devel
mailing list