java中使用ffmpeg的命令进行视频截图

Me_Mr_Wang 2015-12-13 09:16:16
RT:使用命令操作本地视频,可以截取到图片,但是像RTMP RTSP之类的流媒体就不行了,有没有做过这类操作的,求指导啊。

斑竹,求指导啊。

public static void main(String[] args) {  
//视频文件
String videoRealPath = "\"rtmp://s2pchzxmtymn2k.cloudfront.net/cfx/st/mp4:sintel.mp4 live=1\"";
//截图的路径(输出路径)
String imageRealPath ="D:\\temp\\atest.jpg";

//方法一:调用批处理程序,调用批处理文件ffmpeg.bat转换视频格式
// try {
// //调用批处理文件
// Runtime.getRuntime().exec("cmd /c start C:\\Users\\Administrator\\Desktop\\test\\ffmpeg.bat " + videoRealPath + " " + imageRealPath);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }


//方法二:通过命令提示符来调用需要添加系统路径(Path),调用menconder转换视频各种
// commendF
// .add("cmd.exe /c mencoder E:\\Eclipse2\\test.flv -o e:\\Eclipse2\\test.avi
// -oac mp3lame -lameopts cbr:br=32
// -ovc x264 -x264encopts bitrate=440 -vf scale=448:-3");

//方法三:调用系统中的可执行程序调用ffmpeg 提取视屏缩略图
List<String> commend = new java.util.ArrayList<String>();
commend.add("D:\\mm\\ffmpeg.exe");
commend.add("-i");
commend.add(videoRealPath);
commend.add("-y");
commend.add("-f");
commend.add("image2");
commend.add("-ss");
commend.add("1");
commend.add("-t");
commend.add("0.001");
commend.add("-s");
commend.add("350*240");
commend.add(imageRealPath);
try {

ProcessBuilder builder = new ProcessBuilder();

builder.command(commend);

builder.redirectErrorStream(true);

System.out.println("视频截图开始...");

// builder.start();

Process process = builder.start();

InputStream in =process.getInputStream();

byte[] re = new byte[1024];

System.out.print("正在进行截图,请稍候");

while (in.read(re) != -1) {

System.out.print(".");

}

System.out.println("");

in.close();

System.out.println("视频截图完成...");

} catch (Exception e) {

e.printStackTrace();

System.out.println("视频截图失败!");

}
}
...全文
371 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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