AW: Dynamically record a h264 stream
Davide Tuccilli
tuccio89 at hotmail.com
Wed Mar 23 14:37:53 UTC 2016
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:<recsource:src>[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:<capsfilter0:sink>[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:<capsfilter1:src>[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:<mp4mux0:video_0>[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?
More information about the gstreamer-devel
mailing list