zoukankan      html  css  js  c++  java
  • 基于Linux开源VOIP系统LinPhone[四]

    ***************************************************************************************************************************
    作者:EasyWave                                                                                 时间:2013.03.23

    类别:Linux 应用LinPhone                                                              声明:转载,请保留链接

    注意:如有错误,欢迎指正。这些是我学习的日志文章......

    ***************************************************************************************************************************

    在《 基于Linux开源VOIP系统LinPhone[三] 》中,简单的介绍了SPEEX的编译和所需的库文件,如果需要编译linphone的话,最好先只需编译不带UI和不带视频传输的,这样在后期调试的时候,会比较方便,如果想要自己修改linphone的代码,需要熟悉ffmpeg(libav)、speex、readline、SDL、x264、osip、eXosip等等一大堆的第三方库函数,如果不带视频的话,一般只需要speex、readline、osip、eXosip以及ncurses库即可。至于G722和G729,需要熟悉mediastreamer2之后,才可以根据具体的项目,进行二次开发。如下图所示:

    看到了吗,不过,如果你的平台中本身就带有摄像头的接口的话,图中的libv4l其实用不上,我后来仔细分析了mediastreamer2之后,发现根本就没有用上它,因为在mediastreamer2中有msv4l.c和msv4l2.c。

    1):ncurses的编译

    最好在ncurses的目录下建立一个build.sh文件,这样每次就执行./build.sh文件即可。如下所示:

    #!/bin/bash
    
    INSTALL_PATH=`pwd`/_install
    
    mkdir -p $INSTALL_PATH
    
    #autoreconf -iv
    
    make distclean
    
    ./configure --prefix=$INSTALL_PATH \
                --host=arm-none-linux-gnueabi \
                --target=arm-none-linux-gnueabi  \
    			--build=i486-linux-gnu \
                --with-shared \
     
    if [ $? -eq 0 ]; then
            make 
            if [ $? -eq 0 ]; then
                    make install
                    exit 0
            fi
    fi
    exit 1


    2):readline的编译

    build.sh的脚本文件如下所示:

    #!/bin/bash
    
    INSTALL_PATH=`pwd`/_install
    
    mkdir -p $INSTALL_PATH
    
    #autoreconf -iv
    
    make distclean
    
    ./configure --prefix=$INSTALL_PATH \
                --host=arm-none-linux-gnueabi \
    			--build=i486-linux-gnu \
                --enable-multibyte \
                --enable-shared \
                --disable-static
     
    if [ $? -eq 0 ]; then
            make 
            if [ $? -eq 0 ]; then
                    make install
                    exit 0
            fi
    fi
    exit 1
    
    


    3):osip的编译

    osip的build.sh文件如下所示:

    #!/bin/bash
    
    INSTALL_PATH=`pwd`/_install
    
    mkdir -p $INSTALL_PATH
    
    make distclean
    
    ./configure --prefix=$INSTALL_PATH \
                --host=arm-none-linux-gnueabi \
    			--build=i486-linux-gnu \
                --disable-option-checking  \
                --disable-dependency-tracking \
                --enable-shared=yes \
                --enable-static=no \
                --enable-fast-install=no \
                --disable-libtool-lock \
                --disable-debug \
                --enable-trace \
                --disable-mpatrol \
                --disable-gprof \
                --enable-mt \
                --enable-pthread  \
                --enable-semaphore \
                --enable-sysv \
                --disable-gperf \
                --disable-hashtable \
                --enable-test \
                --disable-minisize \
                --with-gnu-ld
    
     
    if [ $? -eq 0 ]; then
            make 
            if [ $? -eq 0 ]; then
                    make install
                    exit 0
            fi
    fi
    exit 1


    4):libeXosip的编译

    #!/bin/bash
    
    INSTALL_PATH=`pwd`/_install
    
    mkdir -p $INSTALL_PATH
    
    
    make distclean
    
    ./configure --prefix=$INSTALL_PATH \
                --host=arm-none-linux-gnueabi \
    	    --build=i486-linux-gnu \
                --disable-option-checking  \
                --disable-dependency-tracking \
                --enable-shared=yes \
                --enable-static=no \
                --enable-fast-install=no \
                --disable-libtool-lock \
                --disable-tool \
                --disable-debug \
                --enable-trace \
                --disable-mpatrol \
                --disable-gprof \
                --enable-mt \
                --enable-pthread  \
                --enable-semaphore \
                --enable-sysv \
                --disable-openssl \
                --enable-srvrec \
                --disable-minisize \
                --with-gnu-ld \
                OSIP_LIBS="-lpthread -losip2 -losipparser2 -L$INSTALL_PATH/lib" \
                OSIP_CFLAGS="-I$INSTALL_PATH/include"
    
    if [ $? -eq 0 ]; then
            make 
            if [ $? -eq 0 ]; then
                    make install
                    exit 0
            fi
    fi
    exit 1


    最后,就是编译linphone的代码了。这个自己去运行./configure -h来进行设置和编译了。最后,还需要根据具体的芯片去修改oss和alsa的代码,否则会出现无法播放的问题。

     

  • 相关阅读:
    题解-亚瑟王的宫殿
    学习总结-网络流
    题解-牛奶模式
    题解-最长回文子串
    最大公约数
    DetachedCriteria类中uniqueResult()方法与list()方法区别
    MD5加密方法
    dom4j读取xml文档,通过JDBC写入数据库
    Numpy增加一列,指定概率指定参数
    python 贪吃蛇
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/2979551.html
Copyright © 2011-2022 走看看