[h323plus] [Opalvoip-devel] error H.263

Simon Horne s.horne at packetizer.com
Wed Feb 23 17:07:13 EST 2011


Robert

Older cheaper webcams really behavior quite poorly. 
For instance 
1. They support formats which only can be transformed to RGB24 (and nothing
else) in DirectShow filters so then with good webcams you have to filter out
and only use the formats that are known to transform to RGB24. (When it all
should just work with YUV so there is no need to convert in PTLIB)

2. a couple I have seen supply undersize (or corrupt) image buffer when
starting up hence why the directshow output device automatically throws the
first few frames away.

3. They fall over when trying to set a video frame size within the camera
limits but not exactly as they support. So you are limited to exact sizes.
ie like 4CIF. Some webcam may support sizes above 4CIF but not 4CIF exactly
(quite common). Some webcams you can adjust the output pin to get the size
others the video will just simply fail without any warning. This is why the
PVideoInputDevice::GetDeviceCapabilities was introduced so with the plugin
you could choose a video size/rate the webcam did support thereby avoiding
having to scale/crop etc.

Thankfully the latest generation of webcams perform much better like the
Microsoft LifeCam Cinema which gives reliable 720p at 30 or the new Logitech
C910 which provides 1080p at 30 (with USB3) with the current DirectShow driver
in PTLIB. But still we need to support these older webcams without
hardcoding or maintaining a bad list.

Simon


-----Original Message-----
From: Robert Jongbloed [mailto:robertj at voxlucida.com.au] 
Sent: 23 February 2011 14:33
To: 'Simon Horne'; 'Jan Willamowius'; opalvoip-devel at lists.sourceforge.net
Cc: h323plus at lists.packetizer.com
Subject: RE: [Opalvoip-devel] error H.263

Found it. The helper app has bit rate in kbps and OPAL does it in bps. A
/1000 fixes the problem.

 

Another question: What are peoples experiences with camera grabber frame
rates?

My el cheapo USB camera isn't apparently very good. When asked to do 10 fps,
actually does 6.4 fps. When asked to do 25 fps, I get about 18 fps.


Robert Jongbloed
OPAL/OpenH323/PTLib Architect and Co-founder.


> -----Original Message-----
> From: Simon Horne [mailto:s.horne at packetizer.com]
> Sent: Wednesday, 23 February 2011 1:18 PM
> To: 'Robert Jongbloed'; 'Jan Willamowius'; opalvoip- 
> devel at lists.sourceforge.net
> Cc: h323plus at lists.packetizer.com
> Subject: RE: [Opalvoip-devel] error H.263
> 
> Robert
> 
> You can also use the PTLIB_TRACE_CODECS environmental variable.
> Found it enormously helpful debugging the X264 encoder.
> 
> Simon
> 
> -----Original Message-----
> From: Robert Jongbloed [mailto:robertj at voxlucida.com.au]
> Sent: 23 February 2011 11:55
> To: 'Simon Horne'; 'Jan Willamowius'; 
> opalvoip-devel at lists.sourceforge.net
> Cc: h323plus at lists.packetizer.com
> Subject: RE: [Opalvoip-devel] error H.263
> 
> The OPAL infrastructure is fine and all this works perfectly with the 
> IPP codecs (and another private H.264 implementation) for both SIP and 
> H.323 operation.
> 
> I just wanted confirmation that the bit rate control was working in 
> the helper app, as a breakpoint at the right place showed the bit rate 
> and
frame
> rate where correctly negotiated and passed to helper app via the 
> SET_FRAME_RATE/SET_TARGET_BITRATE commands.
> 
> Gotta dig deeper ...
> 
> Robert Jongbloed
> OPAL/OpenH323/PTLib Architect and Co-founder.
> 
> 
> > -----Original Message-----
> > From: Simon Horne [mailto:s.horne at packetizer.com]
> > Sent: Tuesday, 22 February 2011 8:38 PM
> > To: 'Jan Willamowius'; opalvoip-devel at lists.sourceforge.net
> > Cc: h323plus at lists.packetizer.com
> > Subject: Re: [Opalvoip-devel] error H.263
> >
> > Jan
> >
> > You are correct . To match to a bandwidth the encoder must know 
> > frame size and rate. The plugin support is very much h323plus 
> > specific. You can calculate the frame size/rate by using the 
> > internal table or can use a supplied list of supported frame 
> > sizes/rates. These can be manually coded from largest to smallest or 
> > retrieved from the video
input
> device.
> > DirectShow for instance supports retrieving the list of supported 
> > sizes
> and
> > rates via calling PVideoInputDevice:: GetDeviceCapabilities().
> >
> > These can be passed to the codec via calling 
> > PLUGINCODEC_CONTROL_SET_FORMAT_OPTIONS.  In h323plus the function to 
> > do
> this
> > is H323VideoCodec::SetSupportedFormats. The function returns the 
> > default frame size and rate for the given bitrate that is supported 
> > by the input device. Then you can set the input device with the 
> > returned frame size
> /rate
> > in the MyH323Endpoint::OpenVideoChannel. See Applications/SimplePlus 
> > for example of how that is done.
> >
> > The bandwidth (and level\MBPS etc) values for the X264 Encoder is 
> > set by PLUGINCODEC_CONTROL_SET_CODEC_OPTIONS which is called after 
> > the local and remote capabilities have been merged in h323plus.
> >
> > Then there is flowControl which does basically the same thing. You 
> > pass to the plugin a bitrate value via 
> > PLUGINCODEC_CONTROL_FLOW_OPTIONS it then returns a supported frame 
> > size/rate (internal or supplied earlier) then
> you
> > pass these value to the input device via calling PVideoInputDevice::
> > FlowControl().
> >
> > The architecture of Opal has deviated a lot from its h323plus roots 
> > and I think there is a lot more things to consider to getting this 
> > to work with it.
> >
> > Simon
> >
> > -----Original Message-----
> > From: Jan Willamowius [mailto:jan at willamowius.de]
> > Sent: 22 February 2011 18:46
> > To: opalvoip-devel at lists.sourceforge.net
> > Subject: Re: [Opalvoip-devel] error H.263
> >
> > When I debugged a similar bandwidth issue on H323Plus a few months 
> > ago, I found that the bit rate setting was passed to the encoder 
> > correctly, but
> to
> > correctly meet this target the encoder needs to know the correct 
> > values of influencing parameters, like the frame rate.
> > In my case the frame rate wasn't passed in correctly, so the encoder 
> > kept producing video at the wrong rate.
> >
> > I haven't fixed the issue back then, but worked around it. I'm not 
> > sure if anybody else has (or if the same applies to the OPAL version 
> > of the
> codec).
> >
> > Regards,
> > Jan
> >
> > Robert Jongbloed wrote:
> > > Quick question on this helper app, do you know if the bit rate 
> > > control works with it?
> > >
> > >
> > >
> > > As far as I can tell, I am setting it to 256kbps and it is still 
> > > sending at 4Mbps. So, before I go digging deeper, I was hoping for 
> > > a bit of a sanity check.
> > >
> > >
> > >
> > > Thank you very much!
> > >
> > >
> > >
> > > Robert Jongbloed
> > >
> > > OPAL/OpenH323/PTLib Architect and Co-founder.
> > >
> > >
> > >
> > > From: Simon Horne [mailto:s.horne at packetizer.com]
> > > Sent: Monday, 7 February 2011 10:01 PM
> > > To: 'Robert Jongbloed'; 'ZAHRA dehghanianfard'
> > > Cc: 'opal'; 'opal'; h323plus at lists.packetizer.com
> > > Subject: RE: error H.263
> > >
> > >
> > >
> > > I think both the opal and h323plus community can benefit.
> > >
> > > http://www.h323plus.org/source/download/ffmpeg_x264.zip
> > >
> > >
> > >
> > > Place all files in your application directory.
> > >
> > > The FFMPEG (with w32threads) and X264 is built with mingw/msys.
> > > x264plugin_helper.exe is built with vs2008 and requires vs2008
runtime.
> > >
> > >
> > >
> > > Simon
> > >
> > >
> > >
> > > From: Robert Jongbloed [mailto:robertj at voxlucida.com.au]
> > > Sent: 07 February 2011 15:48
> > > To: ZAHRA dehghanianfard
> > > Cc: opal; opal
> > > Subject: Re: [Opalvoip-devel] error H.263
> > >
> > >
> > >
> > > The answer to your questions are:
> > >
> > >
> > >
> > > 1) Yes, but you need to compile it.
> > >
> > > 2) The result of compiling it is a DLL
> > >
> > > 3) You will have to figure out why it doesn't compile under windows.
> > >
> > >
> > >
> > >
> > >
> > > I have to admit to not being able to get the H.263 (or x264) 
> > > codecs to compile and work under Windows, though I have only tried 
> > > somewhat
> briefly.
> > > Unfortunately the authors of all the libraries mainly use Linux, 
> > > though it is my understanding that it can be compiled using
> MinGW/Cygwin.
> > >
> > >
> > >
> > >
> > >
> > > I am sure the OPAL community would be incredibly grateful to 
> > > anyone that can provide a pre-built binary for the H.263 (and x264!)
codec.
> > >
> > >
> > >
> > >
> > > --------
> > >
> > > Robert Jongbloed
> > >
> > > Vox Lucida Pty. Ltd.
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > On 03/02/2011, at 5:33 PM, ZAHRA dehghanianfard wrote:
> > >
> > >
> > >
> > >
> > > Hi robert.
> > >
> > > Many thanks for your last support; I need to use OpenPhone3.8.2 by
> > > H.263 codec run.
> > >
> > > 1)      Is OpenPhone 3.8.2 with Opal 3.8.2 & Ptlib2.8.2 support H.263
> > codec
> > > inside?
> > >
> > > 2)      If the above response is YES, Are you suggesting any H.263 DLL
> > file?
> > >
> > > 3)      I find a source that name is "H.263-1998" then I download that
> and
> > > compiles it but I find below Error inside:
> > >
> > >
> > >
> > > 1>------ Build started: Project: H.263-1998 (FFMPEG) Video Codec,
> > > Configuration: Debug Win32 ------
> > > 1>Compiling...
> > > 1>h263pframe.cxx
> > > 1>c:\opal\plugins\video\h.263-1998\../common/ffmpeg.h(155) : fatal 
> > > 1>error
> > > C1083: Cannot open include file: 'libavcodec\avcodec.h': No such 
> > > file or directory
> > > 1>h263-1998.cxx
> > > 1>c:\opal\plugins\video\h.263-1998\../common/ffmpeg.h(155) : fatal 
> > > 1>error
> > > C1083: Cannot open include file: 'libavcodec\avcodec.h': No such 
> > > file or directory
> > > 1>Generating Code...
> > > 1>Build log was saved at
> > > "file://c:\opal\plugins\Debug\H263-1998\BuildLog.htm
> > > <file:///c:\opal\plugins\Debug\H263-1998\BuildLog.htm> "
> > > 1>H.263-1998 (FFMPEG) Video Codec - 2 error(s), 0 warning(s)
> > > ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped 
> > > ==========
> > >
> > >
> > >
> > > I try to solve this problem by download a "libavcodec" that use 
> > > some header & DLL file that I copy in 
> > > "C:\opal\plugin\video\common" but I take below
> > > error:
> > >
> > >
> > >
> > >
> > >
> > > 1>------ Build started: Project: H.263-1998 (FFMPEG) Video Codec,
> > > Configuration: Debug Win32 ------
> > > 1>Compiling...
> > > 1>h263pframe.cxx
> > > 1>c:\opal\plugins\video\h.263-1998\../common/ffmpeg.h(185) : fatal 
> > > 1>error
> > > C1189: #error :  Libavcodec LIBAVCODEC_VERSION_INT too old.
> > > 1>h263-1998.cxx
> > > 1>c:\opal\plugins\video\h.263-1998\../common/ffmpeg.h(185) : fatal 
> > > 1>error
> > > C1189: #error :  Libavcodec LIBAVCODEC_VERSION_INT too old.
> > > 1>Generating Code...
> > > 1>Build log was saved at
> > > "file://c:\opal\plugins\Debug\H263-1998\BuildLog.htm
> > > <file:///c:\opal\plugins\Debug\H263-1998\BuildLog.htm> "
> > > 1>H.263-1998 (FFMPEG) Video Codec - 2 error(s), 0 warning(s)
> > > ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped 
> > > ==========
> > >
> > >
> > >
> > > Please guide me to i can have H.263 codec with DLL & source over 
> > > OpenPhone
> > > 3.8.2 here.
> > >
> > > I am in wait for your response.
> > >
> > > Best Regards.
> > >
> > > Zahra.
> >
> > --
> > Jan Willamowius, jan at willamowius.de, http://www.gnugk.org/
> >
> >
>
----------------------------------------------------------------------------
> > --
> > Index, Search & Analyze Logs and other IT data in Real-Time with 
> > Splunk Collect, index and harness all the fast moving IT data 
> > generated by your applications, servers and devices whether 
> > physical, virtual or in the
> cloud.
> > Deliver compliance at lower cost and gain new business insights.
> > Free Software Download: http://p.sf.net/sfu/splunk-dev2dev
> > _______________________________________________
> > Opalvoip-devel mailing list
> > Opalvoip-devel at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/opalvoip-devel
> >
> >
> >
>
----------------------------------------------------------------------------
> -
> > -
> > Index, Search & Analyze Logs and other IT data in Real-Time with 
> > Splunk Collect, index and harness all the fast moving IT data 
> > generated by your applications, servers and devices whether 
> > physical, virtual or in the
> cloud.
> > Deliver compliance at lower cost and gain new business insights.
> > Free Software Download: http://p.sf.net/sfu/splunk-dev2dev
> > _______________________________________________
> > Opalvoip-devel mailing list
> > Opalvoip-devel at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/opalvoip-devel




More information about the h323plus mailing list