[Libav-user] Unable to decode H.264 stream received via RTMP

Alex Cohn alexcohn at netvision.net.il
Wed Apr 25 15:54:44 CEST 2012


On Wed, Apr 25, 2012 at 16:45, Григорий <grishka93 at gmail.com> wrote:
> Andrey Utkin <andrey.krieger.utkin at gmail.com> писал(а) в своём письме Wed,
> 25 Apr 2012 17:29:09 +0400:
>
>
>> 25 апреля 2012 г. 15:52 пользователь Григорий <grishka93 at gmail.com>
>> написал:
>>>
>>> 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


More information about the Libav-user mailing list