FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
一、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是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。的更多相关文章
- Unity 利用FFmpeg实现录屏、直播推流、音频视频格式转换、剪裁等功能
目录 一.FFmpeg简介. 二.FFmpeg常用参数及命令. 三.FFmpeg在Unity 3D中的使用. 1.FFmpeg 录屏. 2.FFmpeg 推流. 3.FFmpeg 其他功能简述. 一. ...
- 基于Red5与ffmpeg实现rtmp处理NVR或摄像头的监控视频处理方案
背景 各大监控视频平台厂商与外对接均是基于IE的OCX插件方式提供实时视频查看.历史视频回放与历史视频下载.在h5已大行其道的当下,基于IE的OCX插件方式已满足不了广大客户的实际需求,因此需要一个兼 ...
- javascript 中关于对象转换数字值的一些特点
下面是摘至<Javascript 高级程序设计第三版>里的一段话 是关于对象转换数字值的一些规则 "在应用于对象时,先调用对象的valueOf()方法以取得一个可供操作的值.然后 ...
- 数据库记录转换成json格式 (2011-03-13 19:48:37) (转)
http://blog.sina.com.cn/s/blog_621768f30100r6v7.html 数据库记录转换成json格式 (2011-03-13 19:48:37) 转载▼ 标签: 杂谈 ...
- Oracle数据库多行记录转换一行并排序函数
Oracle数据库多行记录转换一行并排序方法 在ORACLE数据库查询中,我们通常会要求用到将多行记录转换成一行并排序,这时候我们自然会想到Oracle的一个“wx_concat”函数,可以将多行记录 ...
- JavaScript 转换数字为整数的方法
本文将会列举并说明JavaScript 把一个number(或者numerical的对象)转换成一个整数相关方法. 使用parseInt parseInt的语法如下:parseInt(string, ...
- 音频视频解决方案:GStreamer/ffmpeg/ffdshow/directshow/vfw
音频视频编程相关:GStreamer/ffmpeg/directshow/vfw linux和window下几种流行的音频视频编程框架作一个总结,防止自己迷惘,免于晕头转向. 一.GStreamer ...
- [视频转换] C#VideoConvert视频转换帮助类 (转载)
点击下载 VideoConvert.zip 主要功能如下 .获取文件的名字 .获取文件扩展名 .获取文件类型 .视频格式转为Flv .生成Flv视频的缩略图 .转换文件并保存在指定文件夹下 .转换文件 ...
- FFMPEG 最简滤镜filter使用实例(实现视频缩放,裁剪,水印等)
FFMPEG官网给出了FFMPEG 滤镜使用的实例,它是将视频中的像素点替换成字符,然后从终端输出.我在该实例的基础上稍微的做了修改,使它能够保存滤镜处理过后的文件.在上代码之前先明白几个概念: Fi ...
随机推荐
- SpringMVC接收对象数组参数进行封装
前台代码:注意.contentType : "application/json; charset=utf-8",必须要设置,只有这样SpringMVC才认识这个json数组参数 f ...
- ruby 类方法、实例方法、类变量
###################### #类变量 ###################### class Cloud @@count=0 def initialize(user,passwor ...
- 客户注册功能,发短信功能分离 通过ActiveMQ实现
客户注册功能,发短信功能分离 通过ActiveMQ 配置链接工厂, 配置session缓存工厂(引入链接工厂) 2.配置模板对象JmsTemplate 引入缓存工厂 指定消息模式(队列,发布和订 ...
- linux中怎么结果一页一页输出
比如sudo apt-cache search php 结果可能有两个屏幕,但是命令执行完毕之后直接就跳到最后面了,我想看第一行怎么办? 可以用管道命令(|)把一个命令的结果作为另一个命令的参数即可. ...
- Picasso VS Glide
原文: Introduction to Glide, Image Loader Library for Android, recommended by Google 在泰国举行的谷歌开发者论坛上,谷歌 ...
- Zinterstore 命令
先来看一下这个命令的定义: Redis Zinterstore 命令计算给定的一个或多个有序集的交集,其中给定 key 的数量必须以 numkeys 参数指定,并将该交集(结果集)储存到 destin ...
- linux中的线程同步:生产者、消费者问题
#include <stdio.h> #include <semaphore.h> #include <unistd.h> #include <stdlib. ...
- html复杂url提交
在使用手机向webapi发送照片请求的时候遇到一个问题,关于base64位字符串码无法识别,提交的表单是这样的: <form id="form1" method=" ...
- 从底层了解ASP.NET体系结构
导读: 前言 关于ASP.NET的底层的工作机制,最近园子里讨论的甚是火热.相信很多人都看过Rick Strahl先生的一篇经典之作:A low-level Look at the ASP.NET ...
- D3.js 之 d3-shap 简介(转)
[转] D3.js 之 d3-shap 简介 译者注 原文: 来自 D3.js 作者 Mike Bostock 的 Introducing d3-shape 译者: ssthouse 联系译者: 邮箱 ...