[FFmpeg-devel] [PATCH] Ignore invalid sprop-parameter-sets missing PPS

Andrew Shulgin andrewshulginua at gmail.com
Mon Feb 29 14:12:36 CET 2016


Also i can send you an email with public RTSP URL privately if you ask.

On Mon, Feb 29, 2016 at 3:10 PM, Andrew Shulgin <andrewshulginua at gmail.com>
wrote:

> Extracting SPS without the missig PPS results in unplayable FLV.
>
> ffmpeg -thread_queue_size 512 -rtsp_transport tcp -i rtsp://
> admin:12345 at 192.88.99.1/h264/ch1/main/av_stream -ar 44100 -ac 2 -acodec
> pcm_s16le -f s16le -ac 2 -i /dev/zero -c:v copy -acodec aac -strict
> experimental -ab 128k -f flv wrong.flv
>
> Uploaded to upload.ffmpeg.org with filename
> rtsp-invalid-sprop-parameter-sets.flv
>
> Also you may download the sample from here:
> http://home.rmrf.co/storage/rtsp-invalid-sprop-parameter-sets.flv
>
> On Mon, Feb 29, 2016 at 2:47 PM, Michael Niedermayer <
> michael at niedermayer.cc> wrote:
>
>> On Mon, Feb 29, 2016 at 01:59:22PM +0200, Andrew Shulgin wrote:
>> > Corrected the patch a bit, now setting extradata_size to 0
>> >
>> > On Mon, Feb 29, 2016 at 1:13 PM, Andrew Shulgin <
>> andrewshulginua at gmail.com>
>> > wrote:
>> >
>> > > Correct SPS and PPS are in the stream.
>> > > Maybe it's reasonale to use existing SPS. But i'm not sure how to
>> > > implement that.
>> > > Yeah really, setting extradata_size to 0 should not be skipped.
>> > >
>> > > On Mon, Feb 29, 2016 at 1:01 PM, Michael Niedermayer <
>> > > michael at niedermayer.cc> wrote:
>> > >
>> > >> On Sat, Feb 27, 2016 at 09:56:01PM +0200, Andrew Shulgin wrote:
>> > >> > Some Hikvison RTSP cameras send wrong sprop-parameter-sets in SDP
>> - it's
>> > >> > missing PPS.
>> > >> >
>> > >> > Example of correct sprop-parameter-sets:
>> > >> > sprop-parameter-sets=Z0IAH5W4PASaEAAAcIAAFfkAQA==,aM48gA==
>> > >> > Example of wrong sprop-parameter-sets:
>> > >> > sprop-parameter-sets=Z0IAH5WoPASaEAAAcIAAFfkIQA==,
>> > >> >
>> > >> > My patch adds a workaround that ignores invalid
>> sprop-parameter-sets.
>> > >>
>> > >> from where does it get the correct parameter set ?
>> > >> is it in the stream ? or repeated sprop-parameter-sets ?
>> > >>
>> > >> also shuldnt the sps be used instead of skipped?
>> > >> or the skip code be made conditional on codec->extradata_size > 0 ?
>> > >>
>> > >> [...]
>> > >> --
>> > >> Michael     GnuPG fingerprint:
>> 9FF2128B147EF6730BADF133611EC787040B0FAB
>> > >>
>> > >> Complexity theory is the science of finding the exact solution to an
>> > >> approximation. Benchmarking OTOH is finding an approximation of the
>> exact
>> > >>
>> > >> _______________________________________________
>> > >> ffmpeg-devel mailing list
>> > >> ffmpeg-devel at ffmpeg.org
>> > >> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>> > >>
>> > >>
>> > >
>>
>> >  rtpdec_h264.c |    4 ++++
>> >  1 file changed, 4 insertions(+)
>> > 04777111f044772997bed9c6ac4367b4a4c83952
>> 0001-Ignore-invalid-sprop-parameter-sets-missing-PPS.patch
>> > From 5ba47e182a47753ed47344b25fd6ba9d15698fd1 Mon Sep 17 00:00:00 2001
>> > From: Andrew Shulgin <andrewshulginua at gmail.com>
>> > Date: Mon, 29 Feb 2016 13:57:42 +0200
>> > Subject: [PATCH] Ignore invalid sprop-parameter-sets missing PPS
>> >
>> > ---
>> >  libavformat/rtpdec_h264.c | 4 ++++
>> >  1 file changed, 4 insertions(+)
>> >
>> > diff --git a/libavformat/rtpdec_h264.c b/libavformat/rtpdec_h264.c
>> > index b399be4..4c0003e 100644
>> > --- a/libavformat/rtpdec_h264.c
>> > +++ b/libavformat/rtpdec_h264.c
>> > @@ -168,6 +168,10 @@ static int
>> sdp_parse_fmtp_config_h264(AVFormatContext *s,
>> >          int ret;
>> >          codec->extradata_size = 0;
>> >          av_freep(&codec->extradata);
>> > +        if (value[strlen(value) - 1] == ',') {
>> > +            av_log(s, AV_LOG_WARNING, "Missing PPS in
>> sprop-parameter-sets, ignoring\n");
>> > +            return 0;
>> > +        }
>>
>> what i meant was that if there is no extradata set then extracting
>> the SPS without the missig PPS into it would make sense
>> while if extradata was already set then a SPS only sprop would be
>> better skiped as it would remove a already extradted  PPS
>>
>> [...]
>> --
>> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>>
>> If you drop bombs on a foreign country and kill hundred thousands of
>> innocent people, expect your government to call the consequence
>> "unprovoked inhuman terrorist attacks" and use it to justify dropping
>> more bombs and killing more people. The technology changed, the idea is
>> old.
>>
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>>
>


More information about the ffmpeg-devel mailing list