首页 > Linux系统 > system > 基于windows系统安装FFMPEG转码技术
2014
05-20

基于windows系统安装FFMPEG转码技术

本篇教程和安装文件由网友红土地提供,在此表示感谢,如果你有好的教程,欢迎发到论坛或发到群里共享
链接: http://pan.baidu.com/s/1jGyZqOu 密码: pc7a
软件特点:
1、 被转视频基本不失真(支持超清、高清、标清);
2、 转码速度比较现成转码软件快非常多(不管文件有多大,此软件是按时间长度来计算的)
3、 支持任何格式视频互转;
4、 转码参数可按自己网站的要求设定;
5、 可集成到自己网站系统里;
第一步:安装软件
1 、安装 mingw
执行软件文件夹里面的:mingw-get-inst-20120426.exe,
选择安装路径:C:MinGW(可以安装到任何路径,不会有任何影响,我以C盘为例)
在“Select Components”步骤中选择:
√ C Compiler (默认且一定选择)
√ C++ Compiler
√ MSYS Basic System(选择此项将会安装msys,msys则不需要另外安装)
√ MinGW Developer ToolKit
等待安装完成!(需要等待一定的时间,因为安装过程需要下载文件,可想而知,网速越快,安装越快,注意安装过程千万别把命令框关闭,如果关闭就不成功了,安装时间看情况,我试过三台机器,有两台很快,差不多10分钟左右,服务器上装了一晚上,不知道什么原因,估计跟官网有关系,如果想使用请耐心等待,决对能成功的)
安装完成后,在C:MinGW目录下可以看到 msys 文件夹,msys也已经安装。(说明安装成功)
2、试运行;
打开你安装的mingw所在的文件夹,如:C:MinGWmsys1.0
里面会有个:msys.bat
双击会自动弹出命令编辑器,如下图:
基于windows系统安装FFMPEG转码技术 - 第1张  | 大博辞
(第一次运行,系统会为你计算机生成一个home文件夹,不过好像没什么用,我直用来编译了一下X264的插件,不过你们可以用我生成好的,现成的,省得麻烦!)
3、把软件文件夹里的pthreadGC2.dll复制 如下目录
你可以把“pthreadGC2.dll”直接拷贝到当前目录(C:MinGWmsys1.0in下,你安装到那个盘,就到那里找),也可放到系统目录C:WINDOWSsystem32中(我是放在system32里的,不放心的话,就两个地方各复制一份)
pthreadgc2.dll是功能强大的处理数字化影视作品编辑软件premiere6运行所需的一个DLL文件。这是一个无威胁文件。属于Open Source Software community project的文件。
4、系统整合
使用记事本修改C:MinGWmsys1.0etc目下的fstab文件,如果不存在fstab,请复制一份fstab.sample,然后改名为:fstab,再修改其内容为:C:/MinGW /mingw,也即为MinGW的安装路径。
5、配置 yasm
为了减少配置环境变量的麻烦,本处直接把软件文件夹里的yasm.exe并放到系统目录下:C:/WINDOWS/system32里面就可以了。
6、重点:FFmpeg安装
在软件文件夹里有个ffmpeg文件夹,把里面的内容复制到C:MinGWmsys1.0对应的文件夹里面(根据你安装的路径)如:ffmpegin里有3个文件:ffmpeg.exe、ffplay.exe、ffprobe.exe
复制到C:MinGWmsys1.0in里面(完成后,你就成功安装好了FFMPEG了)
7、 测试一下效果:
打开C:MinGWmsys1.0 msys.bat粘贴下面代码到命令框(注意视频文件必须存在,方可成功运行,找一个来试试吧),

截取一张720X576尺寸大小的,格式为jpg的图片
ffmpeg -i d:/a.mpg -y -f image2 -t 0.001 -s 720×576 f:/a.jpg
基于windows系统安装FFMPEG转码技术 - 第2张  | 大博辞
这样就成功了!去找一下所截的图吧^_^
8、 安装x.264高清转码软件,这样转出来的MP4才会清楚不然转出来的视频会很糊。
把软件文件里的libx264-129.dll和x264.exe复制到C:MinGWmsys1.0in里面(高清转码搞定了)
9、 安装qt-faststart.exe
把软件文件夹里的qt-faststart.exe移动到C:MinGWmsys1.0in里面,即可
(此程序可使MP4的meta信息移动到头部,让你网站支持边下载边播放。可以选择不装,如果网站上播放的视频最好要装,不然谁会等你视频下载完再看^_^)

10、测试高清转码,命令如下:
ffmpeg.exe -threads 4 -i d:/1.mpg -ab 32 -ar 22050 -vcodec libx264 -qscale 6 -r 25 -s 480×360 -flags +loop -crf 24 -bt 256k -vol 200 -vf yadif d:/2.mp4

处理MP4命令:
qt-faststart.exe d:/2.mp4 d:/3.mp4(3.mp4.mp4就是被处理过的MP4,转到网站上去试播下,决对可以边下载边播放)

(以上命令可以嵌入到网页或其它软件程序里,看自己情况而定,我是用ASP编辑程的,简单说一下调用,主要看你的编辑思路,以下是决对路径,原理就是这样)
ASP版调用:
ffm=” C:MinGWmsys1.0inffmpeg.exe”
qts=” C:MinGWmsys1.0in qt-faststart.exe”
video=”d:/1.mpg”
mp4vidoe=”d:/mp4/1.mp4”
Set WshShell = server.CreateObject(“Wscript.Shell”)
strk=ffm&” -threads 4 -i “& video &” -ab 32 -ar 22050 -vcodec libx264 -qscale 6 -r 25 -s 480×360 -flags +loop -crf 24 -bt 256k -vol 200 -vf yadif “& mp4vidoe
isffmpeg1=WshShell.Run(strk,1,true)
if isffmpeg1<>0 then
response.write “转码失败”
else
‘进行MP4第二步处理,处理头部信息
Set WshShell2 = server.CreateObject(“Wscript.Shell”)
strk2=qts&” ”& mp4vidoe &” “d:/4.mp4” ‘d:/4.mp4是被处理后的视频文件
isffmpeg2=WshShell2.Run(strk2,1,true)
set WshShell2=nothing
if isffmpeg2<>0 then
response.write “处理失败”
else
response.write “处理成功”
end if
end if

重点:(-qscale 6,4的质量比6高)这个一定要设,不然转出来的视频天差地别
里面的参数看你的实际情况调
参数:
-y(覆盖输出文件,即如果1.***文件已经存在的话,不经提示就覆盖掉了)
-i “1.avi”(输入文件是和ffmpeg在同一目录下的1.avi文件,可以自己加路径,改名字)
-title “Test”(在PSP中显示的影片的标题)
-vcodec xvid(使用XVID编码压缩视频,不能改的)
-s 368×208(输出的分辨率为368×208,注意片源一定要是16:9的不然会变形)
-r 29.97(帧数,一般就用这个吧)
-b 1500(视频数据流量,用-b xxxx的指令则使用固定码率,数字随便改,1500以上没效果;还可以用动态码率如:-qscale 4和-qscale 6,4的质量比6高)
-acodec aac(音频编码用AAC)
-ac 2(声道数1或2)
-ar 24000(声音的采样频率,24000Hz)
-ab 128(音频数据流量,一般选择32、64、96、128)
-vol 200(200%的音量,自己改)
参数参考:http://www.cnblogs.com/MinSentinel/archive/2008/05/14/975692.html

最后编辑:
作者:admin
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

留下一个回复