<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=FR link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span lang=EN-US>Hi, <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>I have a problem to get the video of my IP camera in real time or almost no latency.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>The camera stream an H264 full HD video (with no audio) on a rtsp link;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>On the embedded web server in Internet Explorer with the ActiveX provided by the camera, I got not latency.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>On mplayer I got no latency (so I know it is possible).<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>But with my own program I got 300-400ms of latency.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>I tried many things but is always the same results.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>I’m working on windows, with the Qt4 framework.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>And I use SDL 1.2.1 for the display.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>I’m using  ffmpeg-20150122.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>I was following the Dranger’s tutorials, both single and multi thread tutorial.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>I even tried to get the packet with live555 and decode it with ffmpeg and always the same results.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>For single thread : <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:"Verdana","sans-serif";color:black;background:white'><code><span class=apple-converted-space> </span></span><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>if(avformat_open_input(&pFormatCtx,serveur_ip,NULL, 0))<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        </span>{<o:p></o:p></p><p class=MsoNormal>                qDebug() << "c_ffmpeg_rtsp : " << "Pas de connexion à la caméra" << endl;<o:p></o:p></p><p class=MsoNormal>                <span lang=EN-US>return false;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        }<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        if(avformat_find_stream_info(pFormatCtx,NULL))<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        </span>{<o:p></o:p></p><p class=MsoNormal>                        qDebug() << "c_ffmpeg_rtsp : " << "Pas d'information sur la stream de la caméra" << endl;<o:p></o:p></p><p class=MsoNormal>                        <span lang=EN-US>return false;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        }<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        for(unsigned int i=0;  i < pFormatCtx->nb_streams; i++)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        {<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                {<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                        videoStream=i;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                        pStream = pFormatCtx->streams[i];<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                        break;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                }<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        }<o:p></o:p></span></p><p class=MsoNormal>        if(videoStream==-1)<o:p></o:p></p><p class=MsoNormal>        {<o:p></o:p></p><p class=MsoNormal>                qDebug() << "c_ffmpeg_rtsp : " << "Pas de flux video trouvé sur la caméra" << endl;<o:p></o:p></p><p class=MsoNormal>                <span lang=EN-US>return false;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        }<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        pCodecCtx=pFormatCtx->streams[videoStream]->codec;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal>        pCodec=avcodec_find_decoder(pCodecCtx->codec_id);<o:p></o:p></p><p class=MsoNormal>        if(pCodec==NULL)<o:p></o:p></p><p class=MsoNormal>        {<o:p></o:p></p><p class=MsoNormal>                    qDebug() << "c_ffmpeg_rtsp : " << "Codec inexistant pour la caméra" << endl;<o:p></o:p></p><p class=MsoNormal>        <span lang=EN-US>}<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        else<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>            qDebug() << "c_ffmpeg_rtsp : " << "Codec found : " << pCodec->long_name << endl;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>        if(avcodec_open2(pCodecCtx, pCodec,NULL)<0)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        </span>{<o:p></o:p></p><p class=MsoNormal>                    qDebug() << "c_ffmpeg_rtsp : " << "Erreur d'ouverture du codec pour la caméra" << endl;<o:p></o:p></p><p class=MsoNormal>                <span lang=EN-US>return false;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        }<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>    // Hack to correct wrong frame rates that seem to be generated by some<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>       // codecs<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>      if(pCodecCtx->time_base.num>1000 && pCodecCtx->time_base.den==1)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>         </span>pCodecCtx->time_base.den=1000; <o:p></o:p></p><p class=MsoNormal>       pFrame=avcodec_alloc_frame();<o:p></o:p></p><p class=MsoNormal><span lang=EN-US>       pFrameRGB=avcodec_alloc_frame();<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>       if(pFrameRGB==NULL)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>       </span>{<o:p></o:p></p><p class=MsoNormal>           qDebug() << "c_ffmpeg_rtsp : " << "Erreur Frame vide" << endl;<o:p></o:p></p><p class=MsoNormal>           return false;<o:p></o:p></p><p class=MsoNormal>       }<o:p></o:p></p><p class=MsoNormal><span lang=EN-US>       numBytes=avpicture_get_size(AV_PIX_FMT_RGB24, pCodecCtx->width,pCodecCtx->height);<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>       </span>buffer=new uint8_t[numBytes]; <o:p></o:p></p><p class=MsoNormal>       avpicture_fill((AVPicture *)pFrameRGB, buffer, PIX_FMT_YUV420P,pCodecCtx->width, pCodecCtx->height);<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>        int w = pCodecCtx->width;<o:p></o:p></p><p class=MsoNormal>        int h = pCodecCtx->height;<o:p></o:p></p><p class=MsoNormal>        img_convert_affic = sws_getCachedContext(img_convert_affic,w, h, pCodecCtx->pix_fmt, w, h, PIX_FMT_YUV420P, SWS_BICUBIC, NULL, NULL, NULL); <o:p></o:p></p><p class=MsoNormal>       <span lang=EN-US>if(img_convert_affic == NULL)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>       {<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          qDebug() << "c_ffmpeg_rtsp : " << "Cannot initialize the conversion context!" </span><< endl;<o:p></o:p></p><p class=MsoNormal>          return false;<o:p></o:p></p><p class=MsoNormal>       }<o:p></o:p></p><p class=MsoNormal><span lang=EN-US>        screen = SDL_SetVideoMode(pCodecCtx->width, pCodecCtx->height, 0, 0);<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        if(!screen)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        {<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          qDebug() <<  "SDL: could not set video mode - exiting" << endl;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>          </span>return false;<o:p></o:p></p><p class=MsoNormal>        }<o:p></o:p></p><p class=MsoNormal><span lang=EN-US>        bmp = SDL_CreateYUVOverlay(pCodecCtx->width, pCodecCtx->height,SDL_YV12_OVERLAY, screen);<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>       return true;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'></code><span class=apple-converted-space> <o:p></o:p></span></span></p><p class=MsoNormal><span class=apple-converted-space><span style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'><o:p> </o:p></span></span></p><p class=MsoNormal><span class=apple-converted-space><span style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'><code><o:p></o:p></span></span></p><p class=MsoNormal><span class=apple-converted-space><span style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>While( !iquit)<o:p></o:p></span></span></p><p class=MsoNormal><span class=apple-converted-space><span style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>{<o:p></o:p></span></span></p><p class=MsoNormal><span class=apple-converted-space><span style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'><o:p> </o:p></span></span></p><p class=MsoNormal><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>        int result = av_read_frame(pFormatCtx, &packet);</span></span><span lang=EN-US> </span><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'><o:p></o:p></span></span></p><p class=MsoNormal><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>        if(result < 0)<o:p></o:p></span></span></p><p class=MsoNormal><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>        {<o:p></o:p></span></span></p><p class=MsoNormal><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                qDebug() << "c_ffmpeg_rtsp : " << "packet non recu" << endl;</span></span><span class=apple-converted-space><span style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'><o:p></o:p></span></span></p><p class=MsoNormal><span class=apple-converted-space><span style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>        </span></span><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>}<o:p></o:p></span></span></p><p class=MsoNormal style='text-indent:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>else<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>{<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>   if(packet.stream_index == videoStream)<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>  {<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>int gotPic = 0;<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>int checkSize = avcodec_decode_video2(pCodecCtx, pFrame, &gotPic, &packet);<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>if(gotPic)<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>          {<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                ret = sws_scale(img_convert_affic, pFrame->data, pFrame->linesize, 0, pCodecCtx->height, pFrameRGB->data, pFrameRGB->linesize);<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:70.8pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>      SDL_Rect rect;<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'><o:p> </o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                SDL_LockYUVOverlay(bmp);<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                pFrameRGB->data[0] = bmp->pixels[0];<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                pFrameRGB->data[1] = bmp->pixels[2];<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                pFrameRGB->data[2] = bmp->pixels[1];<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'><o:p> </o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                pFrameRGB->linesize[0] = bmp->pitches[0];<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                pFrameRGB->linesize[1] = bmp->pitches[2];<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                pFrameRGB->linesize[2] = bmp->pitches[1];<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'><o:p> </o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                SDL_UnlockYUVOverlay(bmp);<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                rect.x = 0;<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                rect.y = 0;<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                rect.w = pCodecCtx->width;<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                rect.h = pCodecCtx->height;<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>                SDL_DisplayYUVOverlay(bmp, &rect);<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>}<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span lang=EN-US style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'><o:p> </o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span class=apple-converted-space><span style='font-size:10.0pt;font-family:"Verdana","sans-serif";color:black;background:white'>}<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:35.4pt'><span lang=EN-US>av_free_packet(&packet);<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>}<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><\code><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>When I use live555,  the camera send the SDP description :<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>[URL:"rtsp://192.168.2.168:554/0/"]: Got a SDP description:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>v=0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>o=- 1422895493704585 1 IN IP4 0.0.0.0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>s=RTSP/RTP stream from IPNC<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>i=0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>t=0 0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>a=tool:LIVE555 Streaming Media v2010.07.29<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>a=type:broadcast<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>a=control:*<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>a=range:npt=0-<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>a=x-qt-text-nam:RTSP/RTP stream from IPNC<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>a=x-qt-text-inf:0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>m=video 0 RTP/AVP 96<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>c=IN IP4 0.0.0.0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>b=AS:6000<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>a=rtpmap:96 H264/90000<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>a=framerate:30.00; a=fmtp:96 packetization-mode=1;profile-level-id=64001F;sprop-<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>parameter-sets=Z2QAKK2EBUViuKxUdCAqKxXFYqOhAVFYrisVHQgKisVxWKjoQFRWK4rFR0ICorFcV<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>io6ECSFITk8nyfk/k/J8nm5s00IEkKQnJ5Pk/J/J+T5PNzZprQDwBE/LKkAAAMAeAAAHCBgQAAW42AAB<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>m/yve+F4RCNQAAAAAE=,aO48sA==<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>a=control:track1<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>What can I do to improve the latency ?<o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span lang=EN-US style='color:#1F497D'>Cordialement,<o:p></o:p></span></b></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span lang=EN-US style='color:#1F497D'>Renaud BOBIN<br>Project Engineer</span></b><span lang=EN-US style='color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><i><span lang=EN-US style='font-size:10.0pt;font-family:"Arial","sans-serif";color:navy'> </span></i></b><span lang=EN-US style='color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter" />
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0" />
<v:f eqn="sum @0 1 0" />
<v:f eqn="sum 0 0 @1" />
<v:f eqn="prod @2 1 2" />
<v:f eqn="prod @3 21600 pixelWidth" />
<v:f eqn="prod @3 21600 pixelHeight" />
<v:f eqn="sum @0 0 1" />
<v:f eqn="prod @6 1 2" />
<v:f eqn="prod @7 21600 pixelWidth" />
<v:f eqn="sum @8 21600 0" />
<v:f eqn="prod @7 21600 pixelHeight" />
<v:f eqn="sum @10 21600 0" />
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" />
<o:lock v:ext="edit" aspectratio="t" />
</v:shapetype><v:shape id="Image_x0020_2" o:spid="_x0000_s1026" type="#_x0000_t75" alt="Logo-mini" style='position:absolute;margin-left:0;margin-top:0;width:69pt;height:63.75pt;z-index:1;visibility:visible;mso-wrap-style:square;mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;mso-wrap-distance-bottom:0;mso-position-horizontal:left;mso-position-horizontal-relative:text;mso-position-vertical:absolute;mso-position-vertical-relative:line' o:allowoverlap="f">
<v:imagedata src="cid:image001.png@01D04449.A9A94AD0" o:title="Logo-mini" />
<w:wrap type="square" anchory="line"/>
</v:shape><![endif]--><![if !vml]><img width=92 height=85 src="cid:image001.png@01D04449.A9A94AD0" align=left hspace=12 alt=Logo-mini v:shapes="Image_x0020_2"><![endif]><b><i><span lang=EN-US style='font-size:10.0pt;font-family:"Arial","sans-serif";color:navy'>SUBSEA TECH</span></i></b><span lang=EN-US style='color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><i><span lang=EN-US style='font-size:10.0pt;font-family:"Arial","sans-serif";color:navy'>Marine</span></i></b><b><i><span lang=EN-US style='font-size:7.5pt;font-family:"Arial","sans-serif";color:navy'> </span></i></b><b><i><span lang=EN-US style='font-size:10.0pt;font-family:"Arial","sans-serif";color:navy'>and Underwater Technologies</span></i></b><span lang=EN-US style='color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-US style='font-size:9.0pt;font-family:"Arial","sans-serif";color:navy'>167 Plage de l'Estaque 13016 Marse</span><span style='font-size:9.0pt;font-family:"Arial","sans-serif";color:navy'>ille - France</span><span style='color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:7.5pt;font-family:"Arial","sans-serif";color:navy'>Tel: +33 (0) 4 91 51 76 71</span><span style='color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB style='font-size:7.5pt;font-family:"Arial","sans-serif";color:navy'>Web: </span><span style='font-size:9.0pt;font-family:"Arial","sans-serif";color:navy'><a href="http://www.subsea-tech.com/" target="_blank"><span lang=EN-GB style='font-size:7.5pt;font-family:"Calibri","sans-serif";color:blue'>www.subsea-tech.com</span></a></span><span style='color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p></div>
<br /><br />
<hr style='border:none; color:#909090; background-color:#B0B0B0; height: 1px; width: 99%;' />
<table style='border-collapse:collapse;border:none;'>
        <tr>
                <td style='border:none;padding:0px 15px 0px 8px'>
                        <a href="http://www.avast.com/">
                                <img border=0 src="http://static.avast.com/emails/avast-mail-stamp.png" />
                        </a>
                </td>
                <td>
                        <p style='color:#3d4d5a; font-family:"Calibri","Verdana","Arial","Helvetica"; font-size:12pt;'>
                                Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection <a href="http://www.avast.com/">Antivirus avast!</a> est active.
                        </p>
                </td>
        </tr>
</table>
<br />
</body></html>