Arm-Linux 移植 FFMPEG库 + x264

背景:

ffmpeg 中带有264的解码,没有编码,需要添加x264。libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264。

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。


librtmp用来接收、发布RTMP协议格式的数据。FFmpeg支持RTMP协议,将librtmp编译进去后支持协议RTMPE、RMTPTE、RTMPS。这里我直接使用FFmpeg自带的RTMP功能。
 

host平台   :Ubuntu 18.04

arm平台   : S5P6818

 

x264            :20171212

ffmpeg        :3.4.1

 

arm-gcc   :4.8.1

 

主机准备:

为了方便管理,创建有关的目录

mkdir ffmpeg
cd ffmpeg
mkdir  compressed  install  source

下载并解压有关的源码:

cd compressed 
wget http://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20171212-2245.tar.bz2
wget http://ffmpeg.org/releases/ffmpeg-3.4.1.tar.bz2
tar -C ../source -xf ffmpeg-3.4.1.tar.bz2
tar -C ../source -xf x264-snapshot-20171212-2245.tar.bz2

 

编译x264

cd ../source/x264-snapshot-20171212-2245

使用以下脚本

复制代码

##
#    mk_x264.sh
#    SCHIPS
#    schips@dingtalk.com
#    https://gitee.com/schips/
#    Mon 02 Sep 2019 07:15:41 PM HKT
##
#!/bin/sh
OUTPUT=/home/schips/arm/ffmpeg/install/x264
MYGCC=arm-none-linux-gnueabi

mkdir -p $OUTPUT && rm $OUTPUT/* -rf 

CC=$MYGCC-gcc \
./configure \
--host=$MYGCC \
--enable-shared \
--enable-static \
--enable-pic \
--prefix=$OUTPUT \
--cross-prefix=$MYGCC- \
--disable-asm

make && make install
exit 0

复制代码

 

 

 

移植FFMPEG

cd ../ffmpeg3.4.1

 编写以下脚本

复制代码

##
#    mk_ffmpeg3.4.1.sh
#    SCHIPS
#    schips@dingtalk.com
#    https://gitee.com/schips/
#    Mon 02 Sep 2019 08:05:53 PM HKT
##
#!/bin/sh
OUTPUT=/home/schips/arm/ffmpeg/install/ffmpeg
X264_DIR=/home/schips/arm/ffmpeg/install/x264/
MYGCC=arm-none-linux-gnueabi

mkdir $OUTPUT -p && rm $OUTPUT/* -rf


./configure \
--cross-prefix=$MYGCC- \
--enable-cross-compile \
--target-os=linux \
--cc=$MYGCC-gcc \
--arch=arm \
--prefix=$OUTPUT \
--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 && make install

exit 0

复制代码

 

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

 

开发板准备:

拷贝 x264中的make install 以后生成的lib下的所有文件到板子上的/usr/lib 中

 

 

同样地,拷贝ffmpeg中的lib到板子上

 

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值