一、在线安装方法
这个方法只能安装可执行文件而没有库,不能做开发
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
.
/
c
o
n
f
i
g
u
r
e
–
e
n
a
b
l
e
−
s
h
a
r
e
d
–
d
i
s
a
b
l
e
−
a
s
m
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
进入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
四、海思交叉编译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"