官网:http://ffmpeg.org

一、FFmpeg安装

安装依赖包:

yum install  libtheora-devel  libvorbis-devel
  • 1

FFmpeg编译安装:

由于系统不同,会导致依赖也不尽相同,需根据报错信息逐渐安装依赖

可以自己到官网下载包

wget http://ffmpeg.org/releases/ffmpeg-4.0.2.tar.bz2
tar jxvf ffmpeg-4.0.2.tar.bz2
cd ffmpeg-4.0.2
# 如下是个人需要的编译参数,可以根据实际情况增减
./configure --prefix=/data/server/ffmpeg \
--enable-shared \
--enable-libfdk-aac \
--enable-gpl \
--enable-nonfree \
--enable-postproc \
--enable-avfilter \
--enable-pthreads \
--enable-libmp3lame \
--enable-libtheora \
--enable-libvorbis \
--enable-libx264 \
--enable-libx265 \
--enable-libxvid \ --enable-decoder=libx264 \ --enable-encoder=libx264 make && make install

安装后,查看版本

/data/server/ffmpeg/bin/ffmpeg -version

转码:

ffmpeg -i input.mp4 output.avi

二、FFmpeg安装错误解决

hg clone https://bitbucket.org/multicoreware/x265
cd x265/build/linux
./make-Makefiles.bash
make
make install

有的包下载缓慢,备用下载地址: http://pan.baidu.com/s/1hsEeSNM

  • 报错:yasm/nasm not found or too old. Use --disable-yasm for a crippled build
# rpm包存在的话,可以直接yum安装 yasm,没有则编译安装
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -zxvf yasm-1.3.0.tar.gz

 ./configure  && make  && make install
  • 报错:ERROR: libfdk_aac not found
https://sourceforge.net/projects/opencore-amr/files/fdk-aac/
下载fdk-aac-0.1.5.tar.gz
./configure&& make && make install make 的时候报错
./libtool: line 990: g++: command not found报错信息
于是直接yum -y install gcc* 然后继续make 
OK 通过~~
  • 报错:ERROR: libtheora not found
http://downloads.xiph.org/releases/theora/?C=M;O=D
libtheora-1.2.0alpha1.tar.gz
./configure && make && make install
  • 如下报错:
*** Could not run Ogg test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means Ogg was incorrectly installed
*** or that you have moved Ogg since it was installed.
http://downloads.xiph.org/releases/ogg/?C=M;O=D
libogg-1.3.2.tar.gz
./configure && make && make install
  • 报错:ERROR: libvorbis not found
http://downloads.xiph.org/releases/vorbis/
libvorbis-1.3.3.tar.
  • 报错:ERROR: libmp3lame >= 3.98.3 not found
http://downloads.sourceforge.net/lame
我下到的是lame-3.99.5.tar.gz
./configure && make && make install
  • 报错:ERROR: libx264 not found
 git clone git://git.videolan.org/x264.git
./configure --enable-shared --disable-asm && make && make install
  • 报错:ERROR: libxvid not found
wget http://downloads.xvid.org/downloads/xvidcore-1.3.5.tar.gz
cd build/generic/
./configure && make && make install 依赖包解决完之后编译出现

WARNING: Option --enable-decoder=libx264 did not match anything
WARNING: using libfdk without pkg-config
WARNING: using libx264 without pkg-config

原因是需要设置 PKG_CONFIG_PATH,通过pkg-config去指定路径自动寻找需要链接的依赖库,同时,就不需要使用

--extra-cflags=-I、

--extra-cxxflags=-I、

--extra-ldflags=-L来指定依赖库路径

使用方法:在./configure之前输入export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH(此路径为.pc文件所在路径),可使用

echo $PKG_CONFIG_PATH查看

 
  • 库文件找不到时解决:
ldd /data/server/ffmpeg/bin/ffmpeg  # 查看依赖库文件,找到no found的库文件
find / -name libavdevice.so # 查找库文件位置
vim /etc/ld.so.conf # 如存在,添加库文件位置
/usr/local/lib
ldconfig # 重新加载,使新库文件生效

来查看运行当前可执行文件需要哪些动态库

    cd   /data/server/ffmpeg/bin/ 
ldd ffmpeg
linux-vdso.so.1 => (0x00007fffcfeaf000)
libavdevice.so.57 => not found
libavfilter.so.6 => not found
libavformat.so.57 => not found
libavcodec.so.57 => not found
libswresample.so.2 => not found
libswscale.so.4 => not found
libavutil.so.55 => not found
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f41d6d9e000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f41d6b7f000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f41d67b9000)
/lib64/ld-linux-x86-64.so.2 (0x00007f41d70c7000)

应该有很多人和我一样,不想编译FFMPEG之后还要动自己系统的环境,这时有一个简单的方法可以解决这个问题。就是在当前终端export一个环境变量。

 cd   /data/server/ffmpeg/bin/
 export LD_LIBRARY_PATH=lib/
vim /etc/bashrc export LD_LIBRARY_PATH=/data/server/ffmpeg/lib/

   export PATH=$PATH:/data/server/ffmpeg/bin/

还有找不见的

[root@iZm5eeyc1al5vzh8bo57zyZ etc]# cat ld.so.conf
 include ld.so.conf.d/*.conf
 /usr/local/lib
 [root@iZm5eeyc1al5vzh8bo57zyZ etc]#

cd /data/server/ffmpeg/lib

 ldconfig # 重新加载,使新库文件生效

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。的更多相关文章

  1. Unity 利用FFmpeg实现录屏、直播推流、音频视频格式转换、剪裁等功能

    目录 一.FFmpeg简介. 二.FFmpeg常用参数及命令. 三.FFmpeg在Unity 3D中的使用. 1.FFmpeg 录屏. 2.FFmpeg 推流. 3.FFmpeg 其他功能简述. 一. ...

  2. 基于Red5与ffmpeg实现rtmp处理NVR或摄像头的监控视频处理方案

    背景 各大监控视频平台厂商与外对接均是基于IE的OCX插件方式提供实时视频查看.历史视频回放与历史视频下载.在h5已大行其道的当下,基于IE的OCX插件方式已满足不了广大客户的实际需求,因此需要一个兼 ...

  3. javascript 中关于对象转换数字值的一些特点

    下面是摘至<Javascript 高级程序设计第三版>里的一段话 是关于对象转换数字值的一些规则 "在应用于对象时,先调用对象的valueOf()方法以取得一个可供操作的值.然后 ...

  4. 数据库记录转换成json格式 (2011-03-13 19:48:37) (转)

    http://blog.sina.com.cn/s/blog_621768f30100r6v7.html 数据库记录转换成json格式 (2011-03-13 19:48:37) 转载▼ 标签: 杂谈 ...

  5. Oracle数据库多行记录转换一行并排序函数

    Oracle数据库多行记录转换一行并排序方法 在ORACLE数据库查询中,我们通常会要求用到将多行记录转换成一行并排序,这时候我们自然会想到Oracle的一个“wx_concat”函数,可以将多行记录 ...

  6. JavaScript 转换数字为整数的方法

    本文将会列举并说明JavaScript 把一个number(或者numerical的对象)转换成一个整数相关方法. 使用parseInt parseInt的语法如下:parseInt(string, ...

  7. 音频视频解决方案:GStreamer/ffmpeg/ffdshow/directshow/vfw

    音频视频编程相关:GStreamer/ffmpeg/directshow/vfw linux和window下几种流行的音频视频编程框架作一个总结,防止自己迷惘,免于晕头转向. 一.GStreamer ...

  8. [视频转换] C#VideoConvert视频转换帮助类 (转载)

    点击下载 VideoConvert.zip 主要功能如下 .获取文件的名字 .获取文件扩展名 .获取文件类型 .视频格式转为Flv .生成Flv视频的缩略图 .转换文件并保存在指定文件夹下 .转换文件 ...

  9. FFMPEG 最简滤镜filter使用实例(实现视频缩放,裁剪,水印等)

    FFMPEG官网给出了FFMPEG 滤镜使用的实例,它是将视频中的像素点替换成字符,然后从终端输出.我在该实例的基础上稍微的做了修改,使它能够保存滤镜处理过后的文件.在上代码之前先明白几个概念: Fi ...

随机推荐

  1. 深入浅出Javascript事件循环机制

    一.JS单线程.异步.同步概念 众所周知,JS是单线程(如果一个线程删DOM,一个线程增DOM,浏览器傻逼了-所以只能单着了),虽然有webworker酱紫的多线程出现,但也是在主线程的控制下.web ...

  2. Go语言-变量和常量

    我们在这里需要优先说明的是用于声明变量的关键字var,以及用于声明常量的关键字const.要知道,绝大多数的数据类型的值都可以被赋给一个变量,包括函数.而常量则不同,它只能被赋予基本数据类型的值本身. ...

  3. cocos2dx中的Rapidjson

    1 Json基础 JSON 概念和特点: JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式,类似 XML ...

  4. Gearman 分布式的异步任务分发框架

    What is Gearman? Gearman provides a generic application framework to farm out work to other machines ...

  5. 855C Helga Hufflepuff's Cup

    传送门 题目大意 给你一棵树,可以染m种颜色,现定义一种特殊的颜色K,一棵树上最多能有x个特殊颜色.如果一个节点为特殊颜色,那么他相邻的节点的值只能选比K小的颜色,问一共有多少种染色方案. 分析 不难 ...

  6. [译]Javascript 参数(arguments)对象

    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...

  7. Lucene 全文检索 Lucene的使用

    Lucene  全文检索  Lucene的使用 一.简介: 参考百度百科: http://baike.baidu.com/link?url=eBcEVuUL3TbUivRvtgRnMr1s44nTE7 ...

  8. Django之博客系统:用户登陆

    使用django有一个好处就是有各种各样的框架可以拿来直接使用.相比flask,django自带的框架确实要多很多.比如这一章就要介绍的用户登录.Django拥有一个内置的认证(authenticat ...

  9. 关于jquery.extend()的坑:我的数组变成相同元素了?

    首先呢我有一个数组,存放了多个json对象.这些json对象的属性有缺失,我设置了一个对象模板来存放默认值 先来看一段代码 var source = [ { name: 'dapianzi', bor ...

  10. 智能合约安全事故回顾(3)-DOS漏洞导致的KotET事件

    现实世界中的网络都是有带宽限制的,想象一下,一个访问量稳定的网站,突然有人利用某种方式爆发式的将网站的访问量提升,这个时候系统会作何反应?如果系统没有合理的防DOS攻击的方式,这种时候往往会造成服务器 ...