1、FFmpeg简介
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
主要功能:
- 视频采集功能
- 视频格式转换功能
- 视频截图功能
- 给视频加水印功能
2、编译
ffmpeg中已有H.264的解码,但没有编码,所以需要先编译libx264,它是自由的H.264编码库,是x264项目的一部分。
2.1 编译x264
源码下载地址:Index of /pub/videolan/x264/snapshots/
解压、配置、编译过程如下:
1、tar -vxjf x264-snapshot-20180619-2245.tar.bz2
2、cd x264-snapshot-20180619-2245-stable/
3、mkdir install
4、./configure --host=arm-poky-linux-gnueabi --prefix=$PWD/install --enable-shared --disable-asm
5、vi config.mak
CC=arm-poky-linux-gnueabi-gcc
LD=arm-poky-linux-gnueabi-gcc -o
AR=arm-poky-linux-gnueabi-gcc-ar rc
RANLIB=arm-poky-linux-gnueabihf-gcc-ranlib
STRIP=arm-poky-linux-gnueabihf-strip
6、make&&make install
7、tree install
install
├── bin
│ └── x264
├── include
│ ├── x264_config.h
│ └── x264.h
└── lib
├── libx264.so -> libx264.so.152
├── libx264.so.152
└── pkgconfig
└── x264.pc
8、 file install/bin/x264
install/bin/x264: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, BuildID[sha1]=06aeaa187d3248b9204734c0e3177e300e20dfde, not stripped
2.2 编译ffmpeg
源码下载地址:
1、tar -vxjf ffmpeg-3.4.5.tar.bz2
2、cd ffmpeg-3.4.5/
3、mkdir install
4、./configure --enable-cross-compile --cross-prefix=arm-linux-gnueabihf- \
--arch=arm --target-os=linux --cc=arm-linux-gnueabihf-gcc --prefix=$PWD/install \
--enable-shared --enable-pic --disable-static --enable-gpl --enable-nonfree \
--enable-pthreads --enable-ffmpeg --disable-ffplay --enable-ffserver --enable-swscale \
--disable-armv5te --disable-armv6 --disable-armv6t2 --disable-stripping \
--enable-libx264 \
--extra-cflags=-I$PWD/../x264-snapshot-20180619-2245-stable/install/include \
--extra-ldflags=-L$PWD/../x264-snapshot-20180619-2245-stable/install/lib
5、make && make install
6、ls install
bin include lib share
./configure参数说明可以参考:https://www.cnblogs.com/azraelly/archive/2012/12/31/2840541.html
注:./configure时提示“arm-linux-xxx-pkg-config not found”不影响后续使用。
3、移植
移植时将x264和ffmpeg对应的bin,lib目录下的文件移植到对应板子上的/usr/bin,/usr/lib目录下
4、查看ffmpeg版本
ffmpeg -version