Javacv: decodificación de la transmisión "en vivo" H.264 que proviene del servidor red5 en el dispositivo Android

Aquí está mi problema, he implementado una aplicación del lado del servidor usando Red5, que envía transmisión en vivo codificada H.264, en el lado del cliente, la transmisión se recibe como byte []
Para decodificarlo en el lado del cliente de Android, he seguido elJavacv-FFmpeg biblioteca. El código para decodificar es el siguiente

public Frame decodeVideo(byte[] data,long timestamp){
           frame.image = null;
           frame.samples = null;
           avcodec.av_init_packet(pkt);
           BytePointer video_data = new BytePointer(data);
           avcodec.AVCodec codec = avcodec.avcodec_find_decoder(codec_id);
           video_c = null;
           video_c = avcodec.avcodec_alloc_context3(codec);
           video_c.width(320);
           video_c.height(240);
           video_c.pix_fmt(0);
           video_c.flags2(video_c.flags2()|avcodec.CODEC_FLAG2_CHUNKS);
           avcodec.avcodec_open2(video_c, codec, null))
           picture = avcodec.avcodec_alloc_frame()
           pkt.data(video_data);
           pkt.size(data.length);
           int len = avcodec.avcodec_decode_video2(video_c, picture, got_frame, pkt);
           if ((len >= 0) && ( got_frame[0] != 0)) {
             ....
              process the decoded frame into **IPLImage of Javacv** and render it with **Imageview** of Android
           }
} 

Los datos recibidos del servidor son los siguientes
Pocos cuadros tienen el siguiente patrón
17 01 00 00 00 00 00 00 02 09 10 00 00 00 0F 06 00 01 C0 01 07 09 08 04 9A 00 00 03 00 80 00 00 16 EF 65 88 80 07 00 05 6C 98 90 00...

Muchos cuadros tienen el siguiente patrón
27 01 00 00 00 00 00 00 02 09 30 00 00 00 0C 06 01 07 09 08 05 9A 00 00 03 00 80 00 00 0D 77 41 9A 02 04 15 B5 06 20 E3 11 E2 3C 46 ....

Con el códec H.264 para decodificador, el decodificador genera una longitud> 0 pero got_frames = 0 siempre.
Con el códec MPEG1, el decodificador genera una longitud> 0 y got_frames> 0, pero la imagen de salida es verde o está distorsionada.

Sin embargo, siguiendo el código FFmpegFrameGrabber de javacv, puedo decodificar los archivos locales (codificados con H.264) con un código similar al anterior.

Me pregunto qué detalles me faltan, y la manipulación de datos relacionados con el encabezado o la configuración del códec apropiado para el decodificador.

Cualquier sugerencia, ayuda apreciada.
Gracias por adelantado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta