Ubuntu 移植 ffmpeg + x264

背景

直接编译移植的ffmpeg是与 arm-linux 下类似的。

详情参考: arm linux 移植 FFMPEG库 + x264

host平台   :Ubuntu 16.04

x264  :20171212

ffmpeg   :3.4.1

gcc   :5.4.0

使用以下脚本编译

##
#    Copyright By Schips, All Rights Reserved
#    https://gitee.com/schips/
#    File Name:  make.sh
#    Created  :  Mon 02 Sep 2019 08:05:53 PM HKT
##
#!/bin/sh
BASE=`pwd`
BUILD_HOST=
OUTPUT_PATH=${BASE}/install

X264_DIR=${OUTPUT_PATH}/x264

make_dirs () {
    #为了方便管理,创建有关的目录
    cd ${BASE} && mkdir compressed install source -p
}
tget () { #try wget
    filename=`basename $1`
    echo "Downloading [${filename}]..."
    if [ ! -f ${filename} ];then
        wget $1
    fi

    echo "[OK] Downloaded [${filename}] "
}


download_package () {
    cd ${BASE}/compressed
    tget http://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20171212-2245.tar.bz2
    tget http://ffmpeg.org/releases/ffmpeg-3.4.1.tar.bz2

}

tar_package () {
    cd ${BASE}/compressed
    ls * > /tmp/list.txt
    for TAR in `cat /tmp/list.txt`
    do
        tar -xf $TAR -C  ../source
    done
    rm -rf /tmp/list.txt
}

make_x264() {
    cd ${BASE}/source/x264*

    ./configure \
    --enable-shared \
    --enable-static \
    --enable-pic \
    --prefix=${OUTPUT_PATH}/x264 \
    --disable-asm

    make -j4 && make install
}

make_ffmpeg() {
    cd ${BASE}/source/ffmpeg*
    ./configure \
    --target-os=linux \
    --prefix=${OUTPUT_PATH}/ffmpeg \
    --enable-shared \
    --enable-static \
    --enable-gpl \
    --enable-nonfree \
    --enable-ffmpeg \
    --disable-ffplay \
    --enable-ffserver \
    --enable-swscale \
    --enable-pthreads \
    --disable-armv5te \
    --disable-armv6 \
    --disable-armv6t2 \
    --disable-yasm \
    --disable-stripping \
    --enable-libx264 \
    --extra-cflags=-I${X264_DIR}/include \
    --extra-ldflags=-L${X264_DIR}/lib
    make clean && make -j4 && make install
}

make_dirs
download_package
tar_package
make_x264
make_ffmpeg

配置完成以后可能会有这个警告,但是不影响后续的结果:

License: nonfree and unredistributable
Creating configuration files ...

WARNING: The --disable-yasm option is only provided for compatibility and will be
 removed in the future. Use --enable-x86asm / --disable-x86asm instead.
WARNING: unknown architecture linux
WARNING: using libx264 without pkg-config

此后,就可以使用编译好的库进行开发,也可以根据需要将库拷贝到 /usr/lib目录下

测试:

 ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 /mnt/tmp/test.avi 
 # video4linux2 代表Linux下  
 # /dev/video0 代表摄像头设备 
 # /mnt/tmp/test.avi代表输出路径

猜你喜欢

转载自www.cnblogs.com/schips/p/12193353.html