1、环境winxp-sp2下:
http://ffdshow.faireal.net/mirror/ffmpeg/ 下载
最新版本的 FFMpeg.exe直接用就行(须rar解压)。
 
以下的东西是为对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等)转换用的,
http://mediacoder.sourceforge.net/download_zh.htm下载 
最新版本的mediacoder的安装后;找到其中的mencoder.exe;drv43260.dll和pncrt.dll三个文件。
 
2、环境linuxas4。3下:
 
a、先装mp3在linux下的包:lame-3.97.tar.gz;
   tar -xvzf lame-3.97.tar.gz;
   cd lame-3.97;
   //(默认是装在/usr/local下);
   //–prefix=/usr/此参数一定要(便于调用os的其它系统包)
   //–enable-shared此参数一定要
   ./configure –enable-shared –prefix=/usr/;
   make;
   make install;
 
b、支持3gp格式,这也是现在好多手机支持的格式,因为手机用户是我们的主要用户,所以也得支持编译 
编译的时候加上–enable-amr_nb –enable-amr_wb参数就行,根据编译系统的提示,所以我们得下载一些编译3gp所需得文件。

wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip
解压以后把里面的文件都拷贝到libavcodec/amrwb_float/

wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip
解压以后把里面的文件都拷贝到libavcodec/amr_float/

c、mpg4 aac格式支持,由于服务器还针对手机用户服务,所以,类似aac,mpg4铃声格式的支持,我们也得做。这里我们安装faad2和faac就行
下载请到http://www.audiocoding.com/modules/mydownloads/

    tar zxvf faad2-2.5.tar.gz
    cd faad2
    echo > plugins/Makefile.am
    echo > plugins/xmms/src/Makefile.am
    sed -i ‘/E_B/d’ configure.in
    autoreconf -vif
    ./configure –prefix=/usr
    make &&
    make install

    tar zxvf faac-1.25.tar.gz
    cd faac
    sed -i ‘/[2de].M/d’ configure.in
    echo “AC_OUTPUT(common/Makefile common/mp4v2/Makefile libfaac/Makefile frontend/Makefile include/Makefile Makefile)” >> configure.in
    autoreconf -vif
    ./configure –prefix=/usr
    make &&
    make install
d、支持xvid; x264,现在最流行的两种高质量的压缩格式
xvid的编译安装
wget http://downloads.xvid.org/downloads/xvidcore-1.1.2.tar.gz
tar zvxf xvidcore-1.1.2.tar.gz

cd xvidcore-1.1.2/build/generic
./configure –prefix=/usr –enable-shared
make
make install

x264的获取同样是采用svn方式:
svn co svn://svn.videolan.org/x264/trunk x264
linux下须从http://www.kernel.org/pub/software/devel/nasm/binaries/linux/下载nasm-0.98.39-1.i386.rpm

在linux下安装就行了。。。

rpm -ivh nasm-0.98.39-1.i386.rpm(如-ivh不行就用-Uvh)

cd x264
./configure –prefix=/usr –enable-shared
make
make install

e、安装ffmpeg:

//as4.3系统已经支持ac3编码,只要加–enable-a52 –enable-gpl参数就行
//我加–enable-shared参数没有成功
./configure –prefix=/opt/ffmpeg/ –enable-mp3lame –enable-amr_nb –enable-amr_wb –enable-a52 –enable-xvid –enable-x264 –enable-faad –enable-faac –enable-gpl –enable-pthreads;

  make clean;//一定要;否则有可能没声音。
  make;
  make install;
 
在相应windows和linux目录下(有ffmpeg文件的;以下用linux下说明):
3、使用ffmpeg转换视频为flv文件:
./ffmpeg -i “/opt/input/1.mpg” -y -ab 32 -ar 22050 -b 800000 -s 640*480 /opt/output/1.flv”
ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
 
对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等),
可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式.
./mencoder /input/a.rmvb -oac lavc -lavcopts acodec=mp3:abitrate=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o /output/a.avi
在执行./ffmpeg -i “/opt/input/a.avi” -y -ab 32 -ar 22050 -b 800000 -s 640*480 /opt/output/a.flv”就可以转了。
 
4、视频抓图:                    
 ./ffmpeg -i “/opt/input/a.flv” -y -f image2 -t 1 -s 300*200 “/opt/output/1.jpg” //获取静态图
    
 ./ffmpeg -i “/opt/input/a.mpg” -vframes 30 -y -f gif “/output/1.gif”  //获取动态图;
不提倡抓gif文件;因为抓出的gif文件大而播放不流畅。 
 
 Ffmpeg使用语法 
ffmpeg [[options][`-i' input_file]]… {[options] output_file}…
如果没有输入文件,那么视音频捕捉(只在Linux下有效,因为Linux下把音视频设备当作文件句柄来处理)就会起作用。作为通用的规则,选项一般用于下一个特定的文件。如果你给 –b 64选项,改选会设置下一个视频速率。对于原始输入文件,格式选项可能是需要的。缺省情况下,ffmpeg试图尽可能的无损转换,采用与输入同样的音频视频参数来输出。 
ffmpeg转换所涉及到的选项较多,可参考ffmpeg选项详解。 
ffmpeg支持多种文件格式和多种音频、视频编码器,可参考ffmepg格式详解,(附:常见视频文件格式详解) 

[编辑] 视频文件截图 
截取一张352×240尺寸大小的,格式为jpg的图片 
ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352×240 a.jpg
把视频的前30帧转换成一个Animated Gif 
ffmpeg -i test.asf -vframes 30 -y -f gif a.gif
截取指定时间的缩微图 
ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 350×240 test.jpg
-ss后跟的时间单位为秒 
转换文件为3GP格式 
ffmpeg -y -i test.mpeg -bitexact -vcodec h263 -b 128 -r 15 -s 176×144 
 -acodec aac -ac 2 -ar 22500 -ab 24 -f 3gp test.3gp
或 
ffmpeg -y -i test.mpeg -ac 1 -acodec amr_nb -ar 8000 -s 176×144 -b 128 -r 15 test.3gp
[编辑] 视频格式转换 
如何使用 ffmpeg 编码得到高质量的视频 
ffmpeg.exe -i “D:\Video\Fearless\Fearless.avi” -target film-dvd -s 720×352
 -padtop 64 -padbottom 64 -maxrate 7350000 -b 3700000 -sc_threshold 1000000000 
 -trellis -cgop -g 12 -bf 2 -qblur 0.3 -qcomp 0.7 -me full -dc 10 -mbd 2
 -aspect 16:9 -pass 2 -passlogfile “D:\Video\ffmpegencode” -an -f mpeg2video “D:\Fearless.m2v”
转换指定格式文件到FLV格式 
ffmpeg.exe -i test.mp3 -ab 56 -ar 22050 -b 500 -r 15 -s 320×240 f:\test.flv 
ffmpeg.exe -i test.wmv -ab 56 -ar 22050 -b 500 -r 15 -s 320×240 f:\test.flv
转码解密的VOB 
ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800 -g 300 -bf 2 -acodec mp3 -ab 128 snatch.avi
上面的命令行将vob的文件转化成avi文件,mpeg4的视频和mp3的音频。注意命令中使用了B帧,所以mpeg4流是divx5兼容的。GOP大小是300意味着29.97帧频下每10秒就有INTRA帧。该映射在音频语言的DVD转码时候尤其有用。 
同时编码到几种格式并且在输入流和输出流之间建立映射 
ffmpeg -i /tmp/a.wav -ab 64 /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0 -map 0:0
上面的命令行转换一个64Kbits 的a.wav到128kbits的a.mp2 ‘-map file:index’在输出流的顺序上定义了哪一路输入流是用于每一个输出流的。 
转换文件为3GP格式 
ffmpeg -i test.avi -y -b 20 -s sqcif -r 10 -acodec amr_wb -ab 23.85 -ac 1 -ar 16000 test.3gp
注:如果要转换为3GP格式,则ffmpeg在编译时必须加上–enable-amr_nb –enable-amr_wb,详细内容可参考:转换视频为3GPP格式 
[编辑] 屏幕录制 
使用ffmpeg录像屏幕 
ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -vd x11:0,0 -s 1024×768 ~/test.avi
:其中,-vd x11:0,0 指录制所使用的偏移为 x=0 和 y=0,-s 1024×768 指录制视频的大小为 1024×768。录制的视频文件为 test.avi,将保存到用户主目录中 

如果你只想录制一个应用程序窗口或者桌面上的一个固定区域,那么可以指定偏移位置和区域大小。使用xwininfo -frame命令可以完成查找上述参数。 

重新调整视频尺寸大小 
ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -i ~/test.avi -s 800×600 ~/test-800-600.avi
注:ffmpeg的屏幕录制功能只能在Linux环境下有效。 
 
http://tieba.baidu.com/f?kz=210998291

Published in 视频播放
Tags:

No Responses to “安装和使用ffmpeg转换视频为flv文件(windows和linux)”

Leave a Reply

请输入算式结果(看不清请点击图片)
(必须)