java调用ffmpeg命令对avi文件码成flv文件的问题

xjh2011xjh 2014-03-18 12:29:21
请大家帮忙看看,java调用ffmpeg命令对avi文件码成flv文件的问题。我用方法一,能把avi文件转成flv文件,使用QQ影音能播放,但是放在html中使用flvplayer.swf却不能播放,点击播放按钮一直在缓冲,不知为何?
	
public boolean executeCodecs(String ffmpegPath, String upFilePath,
String codeFilePath, String mediaPicPath) throws Exception {

// 创建一个List集合来保存转换视频文件为flv格式的命令
List<String> convert = new ArrayList<String>();

//方式一
convert.add(ffmpegPath); // 添加转换工具路径
convert.add("-i"); // 添加参数"-i",该参数指定要转换的文件
convert.add(upFilePath); // 添加要转换格式的视频文件的路径
convert.add("-qscale"); //指定转换的质量
convert.add("6");
convert.add("-ab"); //设置音频码率
convert.add("64");
convert.add("-ac"); //设置声道数
convert.add("2");
convert.add("-ar"); //设置声音的采样频率
convert.add("22050");
convert.add("-r"); //设置帧频
convert.add("24");
convert.add("-y"); // 添加参数"-y",该参数指定将覆盖已存在的文件
convert.add(codeFilePath); //转码后的文件

/*
//方式二:
convert.add(ffmpegPath);
convert.add("-i");
convert.add(upFilePath);
convert.add("-ab");
convert.add("64");
convert.add("-acodec");
convert.add("mp3");
convert.add("-ac");
convert.add("2");
convert.add("-ar");
convert.add("22050");
convert.add("-b");
convert.add("230");
convert.add("-r");
convert.add("24");
convert.add("-y");
convert.add(codeFilePath);
*/

boolean mark = true;
ProcessBuilder builder = new ProcessBuilder();
try {
//转码
builder.command(convert);
builder.redirectErrorStream(true);
builder.start();

} catch (Exception e) {
mark = false;
e.printStackTrace();
}
return mark;

}
...全文
72 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjh2011xjh 2014-03-18
  • 打赏
  • 举报
回复
大神们都去哪了呢?自己帮顶!

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧