ffmpeg视音频截取与静态图生成

ffmpeg视音频截取与静态图生成
ffmpeg视音频截取与静态图生成

1. ffmpeg概述

◆ffmpeg是一个非常有用的命令行程序,他可以用来转码媒体文件。

◆ffmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。

◆它是领先的多媒体框架FFmpeg的一部分,其有很多功能,比如解码、编码、转码、混流、分离、

转化为流、过滤一级播放几乎多有的有人和机器创建的媒体文件。

2.ffmpeg安装

按顺序依次安装patch、lame、yasm、opencore-amr、amrnb、amrwb、fdk-aac这些相关包。最后安装ffmpeg:

用下面命令解压文档。

>tar -zxvf ffmpeg-1.2.tar.gz

文档解压完成后进入解压后的目录运行以下命令。

>cd ffmpeg-1.2

>./configure

--enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-shared

编译完成后运行下面的命令安装ffmpeg。

>make; make install

◆link lib(64位元作业系统才需要)

3.ffmpeg用到的一些重要参数

* -ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持

* -t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持

* -s size 设置帧大小格式为WXH 缺省160X128.下面的简写也可以直接使用:Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576

* -r fps 设置帧频缺省25

* -an 不使能音频纪录

* -I filename 输入文件

* -target type 设置目标文件类型(vcd,svcd,dvd)所有的格式选项(比特率,编解码以及缓冲区大小)自动设置,只需要输入如下的就可以了:ffmpeg -i myfile.avi -target vcd /opt/vcd.mpg * -vn 不做视频记录,表示忽略视频估计是video no 之类的缩写

* -aspect aspect 设置横纵比 4:3 16:9 或 1.3333 1.7777

* -vcodec codec 强制使用codec编解码方式。如果用copy表示原始编解码数据必须被拷贝。

* -sameq 使用同样视频质量作为源(VBR)

* -vframes 设置转换多少桢(frame)的视频

4.视音频的截取与静态图片的生成

4.1 截取一段视频

从安室奈美恵Brighter\ Day.avi视频的第10秒钟开始,共截取1:22时长的内容,将截取的视频内容存储为shipinjiequ.avi

# ffmpeg -ss 00:00:10 -t 00:01:22 -i 安室奈美恵Brighter\ Day.avi shipinjiequ.avi

截图如下:

4.2 截取一段音频

从安室奈美恵Brighter\ Day.avi视频第10秒钟开始,共截取1:22时长的内容,将截取的音频内容存储为output.mp3

# ffmpeg -ss 00:00:10 -t 00:01:22 -i 安室奈美恵Brighter\ Day.avi output.mp3

截图如下:

4.3 从视频中提取声音(视频与音频的分离)

# ffmpeg -i 安室奈美恵Brighter\ Day.avi -vn Brighter\ Day.mp3

截图如下:

4.4 截取数张图片

从安室奈美恵Brighter\ Day.avi视频第2分钟,每一秒取1帧,总共取2帧,依次存储为test-x.jpg # ffmpeg -i 安室奈美恵Brighter\ Day.avi -an -ss 00:02:00 -r 1 -vframes 2 -y test-%d.jpg 截图如下:

# ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 640x360 test.jpeg

截图如下:

4.5 将截取的shipinjiequ.avi和shipinjiequ2.avi两个视频合并成outputfile.avi一个视频

# ffmpeg -i shipinjiequ.avi inputfile_01.mpg -r 30

# ffmpeg -i shipinjiequ2.avi inputfile_02.mpg -r 30

# cat inputfile_01.mpg inputfile_02.mpg > inputfile_all.mpg

# ffmpeg -i inputfile_all.mpg outputfile.avi

相关主题
相关文档
最新文档