Interesting, thank you for the response. I actually discard all but 7, 8 and 5
frames that occur before the initial 'priming' is complete, they are just
logged for completeness. So my first buffer passed is of the form [7 8 5],
after which I pass all frames willy-nilly, even the timing NAL [ 6 ]. I'm
wondering if my bytestream framing is wrong? 0x000001.NAL.0x00. I read the
Appendix B bytestream syntax and also the ffmpeg NAL detection code and it
seems sufficient, but I've also read posts that indicated this simple approach
was incorrect.
{iPhone}
On Feb 8, 2013, at 6:28 PM, "Chris Richardson \(WTI\)" <[email protected]>
wrote:
> Hi,
>
> We use a similar set up for our software (LIVE555 -> FFMPEG decode) and it is
> working well. The first obvious difference I can see is that normally the
> SPS and PPS precede the IDR frame (type 5) rather than the non-IDR frame
> (type 1), so we have 7, 8, 5, 1, 1, 1 …, 7, 8, 5, 1, 1, 1, …. For a quick
> test, I generated a NAL sequence similar to what you are generating and
> FFMPEG gave me many similar errors.
>
> So I would ask, how are you generating the NAL sequence on the encoder side?
> Is there a reason for generating 7, 8, 1, 1, 1 … 5?
>
> Chris Richardson
> WTI
>
>
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Jesse Hemingway
> Sent: Friday, February 08, 2013 3:06 PM
> To: LIVE555 Streaming Media - development & use
> Subject: [Live-devel] H.264 via RTP - ugly artifacts
>
> Hello,
>
> I apologize if this is noise - my question may well have nothing to do with
> Live555, but I thought I'd post here in case anyone can help me rule it out.
> It appears I'm successfully consuming H.264 via RTSP and acquiring frames in
> my mediasink.
>
> Next, I set up ffmpeg's decoder with the SPS and PPS, and then proceed to
> pass all the raw NAL units from Live555 to avcodec_decode_video2(...), adding
> the bytestream start code prefix and trailing zero byte (I add 0x00000001
> before the raw NAL, and 0x00 after). I've enabled debug output in ffmpeg,
> and it appears to be happily decoding without errors, other than the
> frequent, and perhaps expected log of the form: concealing 900 DC, 900 AC,
> 900 MV errors in P frame. However, when I turn this into a displayable RGBA
> buffer using swscale() and display the result -- there are lots of ugly
> artifacts.
>
> At certain resolutions, the I frames result in a pretty clear picture.
> In-between, only part of the image is even reasonably decoded, and with half
> to 3/4 of the image being an interpolated blur. Even the healthier parts
> exhibit a regular grid of dots and major glitches in regions where the source
> video has motion.
>
> I wanted to rule out Live555 as a potential source of such trouble - does
> this sound familiar to anyone? Advice where to focus? A relevant log
> follows...
>
> Thanks!
> Jesse
>
> LOG:
>
> Received 24 bytes NAL type [ 7 ]
> Priming buffer started
> Received 4 bytes NAL type [ 8 ]
> Received 14 bytes NAL type [ 1 ]
> Received 3112 bytes NAL type [ 1 ]
> Received 3444 bytes NAL type [ 1 ]
> Received 16 bytes NAL type [ 1 ]
> Received 14 bytes NAL type [ 1 ]
> Received 2143 bytes NAL type [ 1 ]
> Received 1498 bytes NAL type [ 1 ]
> Received 16 bytes NAL type [ 1 ]
> Received 14 bytes NAL type [ 1 ]
> Received 2395 bytes NAL type [ 1 ]
> Received 3512 bytes NAL type [ 1 ]
> Received 16 bytes NAL type [ 1 ]
> Received 14 bytes NAL type [ 1 ]
> Received 3808 bytes NAL type [ 1 ]
> Received 2966 bytes NAL type [ 1 ]
> Received 16 bytes NAL type [ 1 ]
> Received 14 bytes NAL type [ 1 ]
> Received 1909 bytes NAL type [ 1 ]
> Received 1774 bytes NAL type [ 1 ]
> Received 16 bytes NAL type [ 1 ]
> Received 14 bytes NAL type [ 1 ]
> Received 3915 bytes NAL type [ 1 ]
> Received 3859 bytes NAL type [ 1 ]
> Received 16 bytes NAL type [ 1 ]
> Received 14 bytes NAL type [ 1 ]
> Received 3219 bytes NAL type [ 1 ]
> Received 3355 bytes NAL type [ 1 ]
> Received 16 bytes NAL type [ 1 ]
> Received 2304 bytes NAL type [ 5 ]
> Priming buffer complete
> [h264 @ 0x90a2400] concealing 900 DC, 900 AC, 900 MV errors in I frame
> Picture decoded
> Initializing decoder frame of size: 640x480
> [swscaler @ 0x8898600] No accelerated colorspace conversion found from
> yuv420p to rgba.
> Received 6900 bytes NAL type [ 5 ]
> [h264 @ 0x90a2400] concealing 900 DC, 900 AC, 900 MV errors in I frame
> Picture decoded
> Received 6945 bytes NAL type [ 5 ]
> [h264 @ 0x90a2400] concealing 900 DC, 900 AC, 900 MV errors in I frame
> Picture decoded
> Received 73 bytes NAL type [ 5 ]
> [h264 @ 0x90a2400] concealing 900 DC, 900 AC, 900 MV errors in I frame
> Picture decoded
> Received 40 bytes NAL type [ 1 ]
> [h264 @ 0x90a2400] concealing 900 DC, 900 AC, 900 MV errors in P frame
> Picture decoded
> ...
> _______________________________________________
> live-devel mailing list
> [email protected]
> http://lists.live555.com/mailman/listinfo/live-devel
_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel