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

./configureenableshareddisableasm . / 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" 
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值