关于H323Plus的编译以前对文章已经介绍,视频和音频的的基本编码和使用也已经实现,但是视频很不清晰,因为使用对H261最基本对编码,在此介绍比较常用的H 264编码对使用。
在h323core目录下对plugins目录,里边包含音频和视频各种编码,通过congfigure默认配置后,编译,视频编码只能获得H261的动态库,不论如何配置 ,其他视频编码都 无法使用,看configure配置步骤,缺少libavcodec的支持,因此下载ffmpeg源码编译安装,经过验证后,这条路是不对的,正确的方法是yum方法安装ffmpeg(我用的centos)。
yum list *ffmpeg*
yum install -y ffmpeg.x86_64(请选择自己操作系统支持的版本)
yum install -y ffmpeg-devel.x86_64(请选择自己操作系统支持的版本)
安装完成后,在plugins目录下运行:./configure --prefix=$HOME/usr --with-plugin-installdir=ptlib-2.12.8(后面是编码器安装目录,上述配置,编码器将安装在$HOME/usr/lib/ptlib-2.12.8/codecs下),然后运行make和make install
make install后h264的编码却不会安装到指定目录下,这一步需要手动拷贝h264的编码到编码器目录下的video目录下,另外提醒一点,H.263-1998的编码运行会core错误,建议在编码器目录下删除这个库。
接下来就是测试H.264编码器,经过修改demo(将cifMPI换为p720MPI),H264编码被加到编码列表中,但是视频聊天看到对却是黑屏,开始就发现的一个错误没有注意:
ERROR: H.264 plugin couldn't find GPL process executable: h264_video_pwplugin_helper
经过几次路径的配置,最终没有消除这个错误,看GPL是一份GNU通用公共授权非正式的中文翻译,因此认为没有影响,其实不然,经过跟踪调试,发现最终的错误是读写数据流错误,并且读写错误紧跟上述的GPL的错误,因此分析GPL的代码并运行调试,代码目录在:h323core/plugins/video/H.264/gpl/下。这个程序原来是打开了两个管道文件,提供给H264编码器使用。因此必须得让编码器找到这个h264_video_pwplugin_helper程序,找到这个错误提示的地方,分析查找路径,原来需要一个环境变量:在.bash_profile中添加export PWLIBPLUGINDIR=$HOME/usr/lib/ptlib-2.12.8,重新加载环境变量,即可启用h264_video_pwplugin_helper。
此时点对点对视频聊天可以进行。