FFMPEG 视频格式转换
FFmpeg的名称来自MPEG视频编码标准,前面的“FF”代表“Fast Forward”,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换。FFmpeg的用户有Google,Facebook,Youtube,优酷,爱奇艺,土豆等。
组成
- libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能,包含demuxers和muxer库;
- libavcodec:用于各种类型声音/图像编解码;
- libavutil:包含一些公共的工具函数;
- libswscale:用于视频场景比例缩放、色彩映射转换;
- libpostproc:用于后期效果处理;
- ffmpeg:是一个命令行工具,用来对视频文件转换格式,也支持对电视卡实时编码;
- ffsever:是一个HTTP多媒体实时广播流服务器,支持时光平移;
- ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;
需要准备的东西
- ffmpeg-2.4.1.tar.bz2 下载地址https://www.ffmpeg.org/releases/
- 下载ffmpeg所需要的所有依赖库文件libx264、libfaac、libmp3lame、libtheora、libvorbis、libxvid、libxext、libxfixes
安装libx264
因为libx264依赖yasm,所以我们先安装yasm
sudo apt-get install yasm
使用aptitude安装libx264
sudo aptitude install libx264-dev
有的同学没有aptitude,下载一个就行了
sudo apt-get install aptitude
tar.gz安装包安装libx264,我们需要去下载last_x264.tar.bz2
tar -zxvf last_x264.tar.bz2
进入目录进行编译并安装
./configure –enable-shared –enable-pic
make
make install
安装ffmpeg
我们一个一个来安装ffmpeg的依赖,请确保每个依赖都安装成功!(可以使用echo $?
来判断是否成功)
libfaac
sudo aptitude install libfaac-dev
libmp3lame-dev
sudo aptitude install libmp3lame-dev
libtheora-dev
sudo aptitude install libtheora-dev
libvorbis-dev
sudo aptitude install libvorbis-dev
libxvidcore-dev
sudo aptitude install libxvidcore-dev
libxext-dev
sudo aptitude install libxext-dev
libxfixes-dev
sudo aptitude install libxfixes-dev
libasound2-dev (lz后续想使用alsa录音,遇到了麻烦FFMPEG: Unknown input format:’alsa’,点击可以跳转到lz参考的解决办法)
sudo apt-get install libasound2-dev
安装ffmpeg
tar -xjvf ffmpeg-2.4.1.tar.bz2
cd ffmpeg-2.4.1编译并安装,–prefix指定安装后的目录(方便卸载),后面我添加上了alsa的支持**–enable-indev=alsa,–enable-outdev=alsa**
假如我们不添加alsa支持,后续我们可能无法正常录音,录屏还是可以的.使用ffmpeg -devices可以查看ffmpeg支持的设备
配置ffmpeg环境变量
这里有很多配置环境变量的方法,可以按照自己的方式配,也可以按照我的配
sudo vim /etc/profile
在文件里面添加一行代码
export FFMPEG_HOME=/usr/local/ffmpeg
export PATH=$PATH:$FFMPEG_HOME/bin
保存退出vim使环境变量生效
source /etc/profile
查看环境变量是否可行
echo $PATH
查看ffmpeg是否可行
ffmpeg -version
转换命令:
ffmpeg -i “20090401010.mp4” -y -ab 32 -ar 22050 -qscale 10 -s 640*480 -r 15 /opt/a.flv
-i | 是要转换文件名 |
-y | 是覆盖输出文件 |
-ab | 是音频数据流,大家在百度听歌的时候应该都可以看到 128 64 |
-ar | 是声音的频率 22050 基本都是这个。 |
-qscale | 是视频输出质量,后边的值越小质量越高,但是输出文件就越“肥” |
-s | 是输出文件的尺寸大小! |
-r | 帧率是视频文件中每一秒的帧数,肉眼想看到连续移动图像至少需要15帧。 |
-b | 码率(比特率):是一个确定整体视频/音频质量的参数,秒为单位处理的字节数,码率和视频质量成正比,在视频文件中中比特率用bps来表达。 |
资料
FFmpeg官网: http://www.ffmpeg.org
FFmpeg doc : http://www.ffmpeg.org/documentation.html
FFmpeg wiki : https://trac.ffmpeg.org/wiki
FFmpeg基础: http://wenku.baidu.com/view/296eefcaf90f76c661371af1.html
FFmpeg基本用法 : http://blog.csdn.net/doublefi123/article/details/24325159
FFmpeg参数详解 : http://www.cuplayer.com/player/PlayerCode/FFmpeg/2014/0706/1399.html