ffmpeg 转换flv压缩大小_使用ffmpeg进行视频文件转换成FLV整理

1、首先下载ffmpeg(附件即是)

2、将解压得到的ffmpeg.exe和pthreadGC2.dll文件解压到任何目录(当然也可以是WebRoot中的目录)

3、创建bat文件convertVideo.bat并添加以下内容:(参数说明见附录一)

%1\ffmpeg -i %2 -y -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 %3

exit

******************

%1为ffmpeg存放目录

%2为需要转换的文件路径

%3为FLV文件输出目录

******************

同样需要注意的是bat文件存放的路径不能包含空格

也可以对视频进行截取缩略图哦:)

【转换文件格式的同时抓缩微图】

ffmpeg -i "test.avi" -y -f image2 -ss 8 -t 0.001 -s 350x240 "test.jpg"

【对已有flv抓图】

ffmpeg -i "test.flv" -y -f image2 -ss 8 -t 0.001 -s 350x240 "test.jpg"

****************

-ss后跟的时间单位为秒

****************

4、创建类

public class ConvertVideo

{

private static String INPUT_PATH;

private static String OUTPUT_PATH;

private static String PROJECT_PATH;

private static HashMap fileType;

static

{

fileType = new HashMap();

fileType.put("avi", "true");

fileType.put("mpg", "true");

fileType.put("wmv", "true");

fileType.put("3gp", "true");

fileType.put("mov", "true");

fileType.put("mp4", "true");

fileType.put("asf", "true");

fileType.put("asx", "true");

fileType.put("flv", "true");

}

public static void convertToFLV(String projectPath, String inputFile, String outputFile)

{

INPUT_PATH = inputFile;

OUTPUT_PATH = outputFile;

PROJECT_PATH = projectPath;

if (checkContentType())

processFLV();// 直接将文件转为flv文件

}

private static boolean checkContentType()

{

String type = INPUT_PATH.substring(INPUT_PATH.lastIndexOf(".") + 1, INPUT_PATH.length()).toLowerCase();

// ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)

return "true".equals(fileType.get(type));

}

private static void processFLV()

{

if (new File(INPUT_PATH).isFile())

{

try

{

String cmd = "cmd /c start X:\\ffmpeg.bat \"" + PROJECT_PATH + "\" \"" + INPUT_PATH + "\" \"" + OUTPUT_PATH +"\"";

Runtime.getRuntime().exec(cmd);

}

catch (Exception e)

{

e.printStackTrace();

}

}

}

}

5、测试代码

public static void main(String[] args)

{

ConvertVideo.convertToFLV("X:\\convertVideo", "X:\\a.wmv", "X:\\a.flv");

}

6、附一个下载来的flv播放器吧(附件中下载)

var swf_width="100%";

var swf_height="100%";

var files='nba.flv';

var config='0:自动播放|1:连续播放|100:默认音量|0:控制栏位置|2:控制栏显示|0x000033:主体颜色|60:主体透明度|0x66ff00:光晕颜色|0xffffff:图标颜色|0xffffff:文字颜色|:logo文字|:logo地址|:结束swf地址';

var texts='NBA精彩进球TOP10';

document.write('');

document.write('');

document.write('');

document.write('');

document.write('');

document.write('');

document.write('" wmode="opaque" FlashVars="vcastr_file='+files+'&vcastr_title='+texts+'&vcastr_config='+config+'" menu="false" quality="high" width="'+swf_width+'" height="'+swf_height+'" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');

document.write('');

【补充说明】如果遇到ffmpeg所涉及以外的视频格式,可以使用其他转换工具先转换,例如mencoder。

附录一(ffmpeg参数说明):

【参数】

【说明】

【示例】

-i "路径"

指定需要转换的文件路径

-i "C:\nba.wmv"

-y

覆盖输出文件,即如果nba.xxx文件已经存在的话,直接覆盖

控制画面参数

-bitexac

使用标准比特率

-vcodec xvid

使用xvid压缩

-s

指定分辨率大小

-s 320*240

-r

帧速率(非标准数值会导致音画不同步【标准值为15或29.97】)

-r 15

-b

指定压缩比特率

-b 1500

-qmin

设定最小质量

-qmin 10

-qmax

与-qmin相反,可以与-qmin同时使用

-qmax 30

-sameq

使用与源视频相同的质量

控制声音参数

-acodec aac

设定声音编码

-ac

设定声道数:1为单声道,2为立体声

-ac 2

-ar

设定声音采样率(8000,11025,22050)

-ar 22050

-ab

设定声音比特率(-ac设为立体声时要以一半比特率来设置,比如192kbps的就设成96)

-ab 96

-vol

设定音量大小,比如设定200就会比原来的音量大2倍

-vol 200

文章如有不对的地方可以跟帖指正,谢谢:)

下载次数: 2097

下载次数: 1369

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2009-02-17 10:59

浏览 5824

论坛回复 / 浏览 (10 / 27306)

评论

11 楼

lyh20081984

2010-01-26

请问楼主,我照你的原样抄下来,怎么3gp的格式转换不了,大小为零?

10 楼

lyh20081984

2010-01-24

xiaobao0501 写道

呵呵.看来做视频网站的人还不少.

收了.人才啊.

错了,是转换的速度!我用几M的视频文件测试了一下,都要花几分钟时间

9 楼

lyh20081984

2010-01-24

下载的速度太慢

8 楼

xiaobao0501

2009-12-25

呵呵.看来做视频网站的人还不少.

收了.人才啊.

7 楼

tartar

2009-10-22

顶起来 我也没转换出来

6 楼

l02044128

2009-10-12

请问,楼主的附件好用吗???

为什么我用的不好

是我的bat文件没写对吗??

我所有的文件都在d盘下

这样写对吗?

D:\ffmpeg -i D:\a.avi -y -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 D:\

exit

5 楼

iaimstar

2009-10-10

又见高科技

4 楼

prowl

2009-10-10

推荐使用jave

3 楼

Wanghuidong

2009-10-10

我也转换不出来

你那个X:\\ffmpeg.bat 是什么?

ConvertVideo.convertToFLV("X:\\convertVideo", "X:\\a.wmv", "X:\\a.flv");   中的 X:\\convertVideo又是什么

2 楼

寄生虫

2009-02-19

hanfeng450 写道

麻烦自己检查一次吧

试了一下

你这个例子是转换不出结果来的

我刚才试过了,能运行,也能转换,如果你是把这些代码原封不动的拷贝上去然后执行,那肯定执行不了。

bat文件每行结尾不能有空格,请检查,盘符请对应清楚,我的机器上没有X盘,不知道你的机器有没有,稍微变通一下程序执行是没问题的。

1 楼

hanfeng450

2009-02-19

麻烦自己检查一次吧

试了一下

你这个例子是转换不出结果来的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值