因为要用到improved dense trajectory特征,用源码需要编译ffmpeg和OpenCV,网址给出的源码需要的OpenCV-2.4.2 和ffmpeg-0.11.1都比较老,我用的是比较新的opencv2.4.12和ffmpeg-snapshot.tar.bz2 (2016-05-22)。

本文主要基于此官方指导编译

1. 安装依赖

sudo apt-get update
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev
mkdir ~/ffmpeg_sources  //根目录下创建文件夹
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

2. Compilation & Installation

Yasm

sudo apt-get install yasm
  • 1
  • 1

libx264

sudo apt-get install libx264-dev
  • 1
  • 1

libx265

sudo apt-get install cmake mercurial
cd ~/ffmpeg_sources
hg clone https://bitbucket.org/multicoreware/x265
cd ~/ffmpeg_sources/x265/build/linux
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make
make install
make distclean
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

libfdk-aac

cd ~/ffmpeg_sources
wget -O fdk-aac.tar.gz https://github.com/mstorsjo/fdk-aac/tarball/master
tar xzvf fdk-aac.tar.gz
cd mstorsjo-fdk-aac*
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

libmp3lame

sudo apt-get install libmp3lame-dev
  • 1
  • 1

libopus

sudo apt-get install libopus-dev
  • 1
  • 1

libvpx

cd ~/ffmpeg_sources
wget http://storage.googleapis.com/downloads.webmproject.org/releases/webm/libvpx-1.5.0.tar.bz2
tar xjvf libvpx-1.5.0.tar.bz2
cd libvpx-1.5.0
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests
PATH="$HOME/bin:$PATH" make
make install
make clean
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

avdevice

sudo apt-get install libavdevice-dev
  • 1
  • 1

ffmpeg

cd ~/ffmpeg_sources
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build"
  --pkg-config-flags="--static"
  --extra-cflags="-I$HOME/ffmpeg_build/include"
  --extra-ldflags="-L$HOME/ffmpeg_build/lib"
  --bindir="$HOME/bin"
  --enable-gpl
  --enable-libass
  --enable-libfdk-aac
  --enable-libfreetype
  --enable-libmp3lame
  --enable-libopus
  --enable-libtheora
  --enable-libvorbis
  --enable-libvpx
  --enable-libx264
  --enable-libx265
  --enable-nonfree
PATH="$HOME/bin:$PATH" make
make install
make distclean
hash -r
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

到这里ffmpeg就编译安装结束了,编译过的ffmpeg在~/bin 目录下

Usage

两种方法使用ffmpeg

  • 进入~/bin文件夹,然后调用binary文件: cd ~/bin && ./ffmpeg -i ~/input.mp4 ~/videos/output.mkv
  • 使用绝对路径:/home/yourusername/bin/ffmpeg -i ../input.mp4 ../videos/output.mkv

如果想要ffmpeg在所有地方都能直接调用,需要先注销,然后登陆。 
或者执行source ~/.profile

Documentation

如果想要用man ffmpeg命令看文档,执行下面命令

echo "MANPATH_MAP $HOME/bin $HOME/ffmpeg_build/share/man" >> ~/.manpath
  • 1
  • 1

注销,然后登陆即可。

更新FFmpeg

rm -rf ~/ffmpeg_build ~/ffmpeg_sources ~/bin/{ffmpeg,ffprobe,ffplay,ffserver,vsyasm,x264,x265,yasm,ytasm}
  • 1
  • 1

然后从头开始再来一次

Ubuntu14.04安装编译ffmpeg相关推荐

  1. 编译android 7.1 jdk版本,ubuntu14.04 安装 open-jdk-1.8,下载编译 android nougat 7.1.1

    一,ubuntu14.04 安装 open-jdk-1.8 在 ubuntu 下,把jdk 解压到 /usr/lib/jvm/ 目录下,配置环境变量,就ok. 下面是我已经安装的jdk crg@crg ...

  2. Ubuntu14.04上编译指定版本的protobuf源码操作步骤

    Google Protobuf的介绍可以参考 http://blog.csdn.net/fengbingchun/article/details/49977903 ,这里介绍在Ubuntu14.04上 ...

  3. ubuntu14.04安装hadoop2.7.1伪分布式和错误解决

    ubuntu14.04安装hadoop2.7.1伪分布式和错误解决 需要说明的是我下载的是源码,通过编译源码并安装 一.需要准备的软件: 1.JDK和GCC     设置JAVA_HOME:      ...

  4. Ubuntu14.04安装calamari

    Ubuntu14.04安装calamari 操作系统安装 --省略-- 配置服务器信任 --省略-- Calamari服务端部署 1.配置ubuntu默认仓库为阿里云镜像库 deb http://mi ...

  5. Ubuntu14.04安装OPENCV3.0流程及遇到的问题

    文章已迁至:http://www.machunjie.com/linux/211.html 如需交流请移步新地址,谢谢! Ubuntu14.04安装OPENCV3.0流程及遇到的问题 tianbing ...

  6. ==原创==Ubuntu14.04安装OPENCV3.0流程及遇到的问题

    Ubuntu14.04安装OPENCV3.0流程及遇到的问题 tianbing010@126.com http://www.cnblogs.com/mcjj 作者:马春杰杰 2017年6月14日22: ...

  7. 解决Ubuntu14.04安装Chrome浏览器打不开的问题

    解决Ubuntu14.04安装Chrome浏览器打不开的问题 参考文章: (1)解决Ubuntu14.04安装Chrome浏览器打不开的问题 (2)https://www.cnblogs.com/li ...

  8. Ubuntu14.04安装Torch7笔记

    Ubuntu14.04安装Torch7笔记 利用快捷键Ctrl+Alt+T打开Ubuntu终端 第一步: 获取安装LuauJIT(C语言编写的Lua的解释器)和Torch所必需的依赖包. 代码如下: ...

  9. Ubuntu14.04安装build-essential失败,包依赖问题如何解决?

    Ubuntu14.04安装build-essential失败,包依赖问题如何解决? 参考文章: (1)Ubuntu14.04安装build-essential失败,包依赖问题如何解决? (2)http ...

最新文章

  1. u852日期限制解决补丁_用友U8hotfix和补丁包替换原则及注意事项
  2. 扩展方法必须在非泛型静态类中定义
  3. Linux 内核红黑树分析
  4. “数学物理反问题”:专门研究“关系”,常跟工程师打交道
  5. hadoop--日志聚集功能的配置
  6. 关于7z结尾的压缩包操作系统
  7. sql创建表主键gui_在SQL Server中使用主数据服务快速创建最终用户可以维护的GUI
  8. 这段 JavaScript 代码能挖出你所有的访问记录!
  9. [转载] python中集合的表示_Python No.18_集合以及表示符号
  10. 完整且易读的微信小程序的注册页面(包含倒计时验证码、获取用户信息)
  11. arm linux 删除大量文件,ARM Linux根文件系统(Root Filesystem)的制作
  12. DataFormatString格式字符串
  13. C8T6和指南者使用寄存器点灯
  14. 一款简单微信小程序个人博客。后端基于SpringBoot实现
  15. 《AngularJS深度剖析与最佳实践》一1.5 实现更多功能:主题
  16. Java 8新特性探究(四)深入解析日期和时间-JSR310
  17. C# 获取可执行文件EXE(文件夹)路径大全
  18. 电脑开机黑屏,只有一个鼠标箭头
  19. Security:在 SIEM 上运用 Elastic Security
  20. 疯狂python讲义学习笔记——中十章完结

热门文章

  1. 如何快速搭建一个简约美观的在线互动教室?
  2. 皮一皮:论出门带物的重要性...
  3. 皮一皮:有的人自以为有小聪明...
  4. 皮一皮:下班的渴望...
  5. ajax返回头部页面,ajax getResponseHeader获取中文响应头
  6. matlab fft例程,c++ FFTW与Matlab FFT
  7. MXNet半精度(FP16)
  8. Yolov5 face训练手册
  9. poly-YOLOv3
  10. ubuntu 安装gcc 4.8.2