ffmpeg安装教程

一、在线安装方法

这个方法只能安装可执行文件而没有库,不能做开发

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next 
sudo apt-get update 
sudo apt-get install ffmpeg

二、Ubuntu上编译安装

###安装yasm
不安装后面会报错:报错 yasm/nasm 包不存在或者很旧
sudo apt-get install yasm
重新配置

安装第三方库:x264

不安装H.264第三方库使用H.264的时候会报错Cannot load libcuda.so.1

下载网址是:
http://download.videolan.org/pub/videolan/x264/snapshots/

文件名:
last_stable_x264.tar.bz2

$./configure --enable-shared --disable-asm
$ make
$ make install

安装ffmpeg

1.解压缩

tar -xvjf ffmpeg-3.4.1.tar.bz2
###2.配置ffmpeg
./configure --enable-shared --enable-libx264 --enable-gpl --prefix=tmp
###3.安装ffmpeg
make

make install
在tmp目录中可以看到bin include lib share

三、树莓派安装ffmpeg

omx-rpi 树莓派的硬编码加速
mmal 树莓派的硬解码加速

进入ffmpeg目录下

新建文件config_ffmpeg_rpi.sh:vim config_ffmpeg_rpi.sh
在文件中加入:

#!/bin/sh
# build ffmpeg for raspberrypi (tested on rpi3)
# v0.1.1-20161129
# --- by shawn (shawn.static@gmail.com) 

PREFIX=/usr/local

./configure \
--enable-gpl    --enable-version3 --enable-nonfree \
--enable-static --disable-shared \
\
--prefix=$PREFIX \
\
--disable-opencl \
--disable-thumb \
--disable-pic \
--disable-stripping \
\
--enable-small \
\
--enable-ffmpeg \
--enable-ffplay \
--enable-ffserver \
--enable-ffprobe \
\
--disable-doc \
--disable-htmlpages \
--disable-podpages \
--disable-txtpages \
--disable-manpages \
\
--disable-everything \
\
--enable-libx264 \
--enable-encoder=libx264 \
--enable-decoder=h264 \
--enable-encoder=aac \
--enable-decoder=aac \
--enable-encoder=ac3 \
--enable-decoder=ac3 \
--enable-encoder=rawvideo \
--enable-decoder=rawvideo \
--enable-encoder=mjpeg \
--enable-decoder=mjpeg \
\
--enable-muxer=flv \
--enable-demuxer=flv \
--enable-muxer=mp4 \
--enable-demuxer=mpegvideo \
--enable-muxer=matroska \
--enable-demuxer=matroska \
--enable-muxer=wav \
--enable-demuxer=wav \
--enable-muxer=pcm* \
--enable-demuxer=pcm* \
--enable-muxer=rawvideo \
--enable-demuxer=rawvideo \
\
--enable-parser=h264 \
--enable-parser=aac \
\
--enable-protocol=file \
--enable-protocol=tcp \
--enable-protocol=rtmp \
--enable-protocol=cache \
--enable-protocol=pipe \
\
--enable-filter=aresample \
--enable-filter=allyuv \
--enable-filter=scale \
\
--enable-indev=v4l2 \
--enable-indev=alsa \
\
--enable-omx \
--enable-omx-rpi \
--enable-encoder=h264_omx \
\
--enable-mmal \
--enable-hwaccel=h264_mmal \
--enable-decoder=h264_mmal \
\

#--enable-libx264 \
#--enable-encoder=libx264 \
#
#--enable-decoder=h264 \
#
#--enable-mmal \
#--enable-hwaccel=h264_mmal \
#--enable-decoder=*_mmal \
#
#--enable-omx \
#--enable-omx-rpi \
#--enable-encoder=*_omx \
#
# --enable-mmal, broadcomm multi media abstract layer via mmal for rpi

然后输入命令:

chmod +x config_ffmpeg_rpi.sh
./config_ffmpeg_rpi.sh
make -j4
sudo make install

支持硬件编码(h264_omx)
http://blog.csdn.net/realdonaldtrump/article/details/78617502

https://www.jianshu.com/p/dec9bf9cffc9

输入ffmpeg并回车,可以看到以下内容,其中有h264_omx和h264_mmal字样,说明ffmpeg已支持树莓派的H.264硬件编解码器。

#四、海思交叉编译FFmpeg
##1.解压缩
tar -xvjf ffmpeg-3.4.1.tar.bz2

2.配置

./configure --enable-shared --disable-yasm --disable-libx264 --enable-gpl --prefix=tmp --enable-cross-compile --arch=arm --target-os=linux --cross-prefix=arm-hisiv300-linux- --cc=arm-hisiv300-linux-gcc

3.安装

make
make install

一份放在Ubuntu(/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/usr)交叉编译用,一份拷贝到海思开发板。

4.使用的时候报错

###报错
error: #error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS

sudo vim /opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/usr/include/libavutil/common.h

在包含头文件前添加

#ifdef __cplusplus
#define __STDC_CONSTANT_MACROS
#ifdef _STDINT_H
#undef _STDINT_H
#endif
# include "stdint.h"
#endif


#ifndef INT64_C
#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)
#endif

报错

error: #error missing -D__STDC_FORMAT_MACROS / #define __STDC_FORMAT_MACROS

sudo vim /opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/usr/include/libavutil/timestamp.h

在包含头文件前添加

#ifdef __cplusplus
#define __STDC_FORMAT_MACROS
#ifdef _STDINT_H
#undef _STDINT_H
#endif
# include "stdint.h"
#endif
 

#define PRId64 "lld" 

四、飞凌6818交叉编译FFmpeg

安装第三方库:x264

下载网址是:
http://download.videolan.org/pub/videolan/x264/snapshots/

文件名:
last_stable_x264.tar.bz2

$./configure --enable-shared --host=arm-cortex_a9-linux-gnueabi --disable-asm --cross-prefix=arm-cortex_a9-linux-gnueabi- --prefix=/home/xzw/arm-cortex_a9-eabi-4.7-eglibc-2.18/arm-cortex_a9-linux-gnueabi/
$ make
$ make install

1.解压缩

tar -xvjf ffmpeg-3.4.1.tar.bz2

2.配置

./configure --enable-shared --disable-yasm --enable-libx264 --enable-decoder=mjpeg --enable-gpl --enable-libfreetype --prefix=tmp --enable-cross-compile --arch=arm --target-os=linux --cross-prefix=arm-cortex_a9-linux-gnueabi- --cc=arm-cortex_a9-linux-gnueabi-gcc

其中libfreetype是文字水印的时候用到

3.安装

make
make install

五、讯为imx6交叉编译FFmpeg

讯为的交叉编译工具缺乏一些库所以采用飞凌的交叉编译工具
否则会编译ffmpeg报错
报错:./libavutil/timer.h:38: fatal error: linux/perf_event.h: No such file or directory
讯为提供的交叉编译工具的版本过低造成的

同飞凌,修改一下编译器即可
./configure --enable-shared --host=arm-fsl-linux-gnueabi --disable-asm --cross-prefix=arm-fsl-linux-gnueabi- --prefix=/usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/arm-fsl-linux-gnueabi

./configure --enable-shared --disable-yasm --enable-libx264 --enable-decoder=mjpeg --enable-gpl --prefix=tmp --enable-cross-compile --arch=arm --target-os=linux --cross-prefix=arm-fsl-linux-gnueabi- --cc=arm-fsl-linux-gnueabi-gcc

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×