ok6410开发板移植vlc做简单视频流媒体服务器

OK6410下的wiif的视频小车——vlc移植部分

开始移植vlc2.1.5到ok6410开发板中搭建简单的视频流媒体服务器,读取h264原始数据,ts流封包,rtp协议传输。

电脑: vmware ubuntu12.04

gcc4.3.2

vlc配置如下:

CC=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc
CXX=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
ARCH=arm 
CFLAGS='-g -O2' 
LDFLAGS=-Wl,--as-needed 
CPPFLAGS= 
CXXFLAGS='-g -O2' 
./configure \
    --enable-run-as-root \
    --prefix=/home/per/workbench/install_ex \
    --disable-debug \
    --host=arm-none-linux-gnueabi \
    --disable-mtp \
    --disable-dbus \
    --disable-mmx \
    --disable-sse \
    --disable-lua \
    --disable-notify \
    --disable-chromaprint \
    --disable-taglib \
    --disable-live555 \
    --disable-dc1394 \
    --disable-dvdnav \
    --disable-smbclient \
    --enable-dvbpsi \
    --disable-v4l2 \
    --disable-libcddb \
    --disable-vcd \
    --disable-ogg \
    --disable-mkv \
    --disable-mod \
    --disable-mpc \
    --disable-gme \
    --disable-mad \
    --disable-avcodec \
    --disable-avformat \
    --disable-swscale \
    --disable-postproc \
    --disable-libtar \
    --disable-a52 \
    --disable-dca \
    --disable-zvbi \
    --disable-xvideo \
    --disable-glx \
    --disable-xcb \
    --disable-sdl \
    --disable-sdl-image \
    --disable-freetype \
    --disable-fribidi \
    --disable-fontconfig \
    --disable-libxml2 \
    --disable-skins2 \
    --disable-qt \
    --disable-atmo \
    \
    --disable-vlm \
    --disable-screen \
    --disable-wma-fixed \
    --disable-oss  \
    --disable-pulse \
    --disable-alsa  \
    --disable-upnp  \
    --disable-ncurses \
    --disable-libgcrypt \
    --enable-vlc \
    \
    --disable-gnutls \
    --disable-libmpeg2 \
    --disable-vorbis \
    --disable-speex \
    --disable-schroedinger \
    --disable-png \
    --enable-x264 \
    --disable-fluidsynth \
    --disable-kate \
    --disable-tiger \
    --disable-bonjour \
    \
    --disable-jack \
    --disable-dv1394 \
    --disable-dvdread \
    --disable-bluray \
    --disable-linsys \
    --disable-samplerate  \
    --disable-dirac  \
    --disable-libass   \
    --disable-theora  \
    --disable-twolame  \
    --disable-udev  \
    --disable-svg  \
    --disable-opencv  \
    --disable-caca   \
    --disable-gnomevfs  \
    --disable-shout  \
    --enable-static \

编译过程中发现缺少各种库,需要自己进行交叉编译后使用,将编译后prefix指定路径下的库文件和头文件拷贝到交叉编译器相应的库文件和头文件里面(这样做可能不是很标准吧?,下面的库之间也有依赖关系需要编译后马上拷贝生成的库文件和头文件到交叉编译器)

交叉编译各种库如下:

Cross-Compiling libogg

./configure --host=arm-none-linux-gnueabi ARCH=arm  --prefix=/home/per/workbench/install_ex/libogg

make

make install

Cross-Compiling libiconv

./configure --host=arm-none-linux-gnueabi ARCH=arm  --prefix=/home/per/workbench/install_ex/libiconv

make

make install

Cross-Compiling FLAC

./configure --host=arm-none-linux-gnueabi ARCH=arm  --prefix=/home/per/workbench/install_ex/FLAC --with-mpeg4ip --enable-static --with-ogg=/home/per/workbench/install_ex/libogg  --with-ogg-libraries=/home/per/workbench/install_ex/libogg/lib  --with-libiconv-prefix=/home/per/workbench/install_ex/libiconv --with-ogg-includes=/home/per/workbench/install_ex/libogg/include --disable-cpplibs

make

make install

Cross-Compiling x264

./configure --host=arm-none-linux-gnueabi --cross-prefix=/usr/local/arm/4.3.2/bin --prefix=/home/per/workbench/install_ex/x264 --disable-opencl --disable-asm --disable-thread

make

make install

Cross-Compiling libav

./configure --cc=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc --enable-shared --enable-avx --enable-gpl --enable-pthreads --prefix=/home/per/workbench/install_ex/libav --enable-cross-compile --host-cc=gcc --arch=arm --target-os=linux 

make

make install

Cross-Compiling DIRAC

./configure --host=arm-none-linux-gnueabi ARCH=arm  --prefix=/home/per/workbench/install_ex/dirac

make

make install

Cross-Compiling libdvbpsi

./configure -host=arm-none-linux-gnueabi -prefix=/home/per/workbench/install_ex/libdvbpsi

make

make install



然后配置并编译vlc,make install 生成lib bin include share文件夹,将其和以上编译过的lib拷入开发板。

开发板运行:

./vlc -vvv /sdcard/wanted.H264 --sout "#rtp{dst=192.168.1.108,port=5004,mux=ts,ttl=10}" 

发现--enable-static加入后也无法编译出无需动态库的可执行文件。

运行结果:

ok6410开发板移植vlc做简单视频流媒体服务器_第1张图片

参考博客http://m.blog.csdn.net/blog/chenee543216/4348124

你可能感兴趣的:(linux)