On Apr 25, 2012 8:27 PM, "Григорий" <[email protected]> wrote: > > Alex Cohn <[email protected]> писал(а) в своём письме Wed, 25 Apr 2012 17:54:44 +0400: > >> On Wed, Apr 25, 2012 at 16:45, Григорий <[email protected]> wrote: >>> >>> Andrey Utkin <[email protected]> писал(а) в своём письме Wed, >>> 25 Apr 2012 17:29:09 +0400: >>> >>> >>>> 25 апреля 2012 г. 15:52 пользователь Григорий <[email protected]> >>>> написал: >>>>> >>>>> >>>>> Hi all. >>>>> I've built libffmpeg for Android and am trying to decode H.264 stream >>>>> using >>>>> it. I'm receiving that stream via RTMP connection and passing all video >>>>> packets (excluding first byte that contains flags related to RTMP) to the >>>>> avcodec_decode_video2 function. With H.263 it works perfectly, but when I >>>>> try to use the same code (only with codec ID changed) for H.264, every >>>>> call >>>>> to avcodec_decode_video2 returns -1 and nothing gets decoded. >>>>> Here is the output: >>>> >>>> >>>> >>>> Do you know libavformat can read and demux RTMP stream by itself? >>>> Seems like problem in your demuxer, because decoding the frames it >>>> produces fail. >>>> >>> >>> Yes I know, but I need more than simply receiving and playing, this will be >>> a kind of VoIP service. My demuxer seems to work fine - I am able to >>> successfully decode audio using Speex and video using libavcodec when it is >>> encoded into H.263. Only problem is with H.264. >> >> >> Packing of h264 into a stream is not trivial. You may find some >> curious information at >> http://livertmpjavapublisher.blogspot.com/2011/06/h264-avcvideopacket.html >> >> Alex >> _______________________________________________ >> Libav-user mailing list >> [email protected] >> http://ffmpeg.org/mailman/listinfo/libav-user > > > Thank you for this link. I've made it to parse the decoder configuration record, extract SPS, PPS and some other things. I've tried to pass PPS and SPS to avcodec_decode_video2 but it still returns -1, prints "no frame!" and does not decode anything else. Prepending 0x00000001 before them or making AVCDCR as described here http://stackoverflow.com/questions/3493742/problem-to-decode-h264-video-over-rtp-with-ffmpeg-libavcodecgive the same result.
H264 decoder expects SPS and PPS to arrive together with the first (IDR) frame. Удачи, Alex
_______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
