//视频上传过程中自动转换为flv格式并截图生成缩略图(Java调用命令实现)
import java.util.ArrayList;
import java.util.List;
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
public class VideoProcess {
System.out.println(oldfilepath+"->"+newfilename+"->"+newimg);
List<String> commendF = new ArrayList<String>();
List<String> commendI=new java.util.ArrayList<String>();
commendF.add("D:\\tools\\mencoder\\mencoder");
commendF.add(oldfilepath);
commendF.add("-o");
commendF.add(newfilename);
commendF.add("-of");
commendF.add("lavf");
commendF.add("-oac");
commendF.add("mp3lame");
commendF.add("-lameopts");
commendF.add("abr:br=32:vol=1");
commendF.add("-srate");
commendF.add("22050");
commendF.add("-ovc");
commendF.add("lavc");
commendF.add("-lavcopts");
commendF.add("vcodec=flv:vbitrate=480:mbd=2:v4mv:turbo:vb_strategy=1:last_pred=2:trell");
commendF.add("-vf");
commendF.add("scale=400:226");
commendI.add("d:\\tools\\ffmpeg");
commendI.add("-i");
commendI.add(oldfilepath);
commendI.add("-y");
commendI.add("-f");
commendI.add("image2");
commendI.add("-ss");
commendI.add("8");
commendI.add("-t");
commendI.add("0.001");
commendI.add("-s");
commendI.add("100x100");
commendI.add(newimg);
try {
ProcessClass.exec(commendF);
ProcessClass.exec(commendI);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public static void main(String[] args){
String oldfilepath = "D:\\video\\a1.avi";
String newfilename = "D:\\video\\a1.flv";
String newimg = "D:\\video\\a1.jpg";
processTransToImg2(oldfilepath,newfilename,newimg);
System.out.println("over");
}
}
ProcessClass.java
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ProcessClass{
public List<String> commendList = new ArrayList<String>();
public ProcessClass(List<String> commendList){
this.commendList = commendList;
}
//同步使只能有一个进程执行该方法(实现格式转换进程完成后执行截图进程操作)
public static synchronized Process exec(List<String> commendlist){
StringBuffer strBuf = new StringBuffer();
for(Iterator iter =commendlist.iterator();iter.hasNext(); ){
String Strtemp = (String)iter.next();
strBuf.append(Strtemp);
strBuf.append(" ");
}
try {
return Runtime.getRuntime().exec(strBuf.toString());
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
这并不是完善的程序,还存在一些问题:
1、 由于对于ffmpeg中的命令参数我并不是很了解,对于命令中的参数值并不是最优的选择,我在运行过程中出现转换后的文件大小还大于原文件。
2、 如果当你转换后没有看到生成图片,则你可以尝试修改
commendI.add("100x100"); 这个里面的值。
当我在程序中设置为100x75就不会生成图片,而当设置为100x100就可以看到图片生成出来了。
网上看到有一个朋友给的实例中设置为320X240,不过在我的项目感觉图片太大了,影响了整体的美观。你可以自己尝试一下。
分享到:
相关推荐
在本文中,我们将深入探讨如何使用Java程序调用FFmpeg执行视频文件格式转换,特别是将非FFmpeg原生支持的格式转换为FLV格式。FFmpeg是一个强大的多媒体处理工具,支持多种视频、音频格式的编码、解码和转换。在这个...
Java调用FFmpeg转换视频格式为FLV是一个常见的任务,特别是在开发媒体处理应用程序时。FFmpeg是一个强大的跨平台命令行工具,用于处理音频和视频文件,包括转换、编码、解码、分割等操作。在Java中,我们通常通过...
这通常涉及解码视频帧并将其转换为静态图像格式,如JPEG或PNG。 4. **图像处理**:如果需要,可以对提取的帧进行一些基本的图像处理,比如裁剪、缩放、调整亮度和对比度等,以满足设计需求。 5. **保存和展示**:...
这一技术允许用户上传视频文件后,系统自动从视频中提取一帧作为预览图片,并将视频转换为FLV(Flash Video)格式,以便在网络中流畅播放。 首先,让我们详细了解一下"自动截图"这一概念。在视频处理中,自动截图...
本文将深入探讨如何使用纯Java代码实现视频转码至FLV(Flash Video)格式,并支持在线播放,而不依赖任何第三方库,从而确保高效、快速的转码过程。 首先,我们需要了解FLV格式。FLV是一种流行的网络流媒体格式,...
在Java中调用FFmpeg进行视频转换,我们可以利用Java的`Runtime.getRuntime().exec()`方法或者第三方库如JAVE(Java Audio Video Encoder)。JAVE是一个Java封装库,它提供了友好的API来调用FFmpeg命令行工具。以下是...
在Java中调用FFmpeg,通常有两种方式:直接执行系统命令和使用Java库。直接执行命令是通过Runtime.exec()方法或ProcessBuilder类来调用FFmpeg的命令行工具,例如: ```java String command = "ffmpeg -i input.mp4 ...
刚开始学java就一直在想用java生成视频 以前用java做了个屏幕录制加录音 不过生成的不是标准的视频文件 无法通过播放器播放 下载的人还不少 因此这次参考了FLV文件规范 通过原生java生成FLV视频文件 录屏加录音 ...
本文将详细介绍如何在服务器端处理用户上传的视频文件,将其转换为FLV格式,并实现在线播放功能。 首先,用户注册后能够上传视频文件,这些文件可能是各种不同的格式,如MP4、AVI、WMV等。由于不同浏览器对视频格式...
Java视频转换FLV技术常应用于在线教育平台、视频分享网站、直播系统等,允许用户上传各种格式的视频并自动转换为适合在网络中播放的FLV格式。 通过理解这些知识点,开发者可以熟练地在Java环境中实现视频格式的...
总结来说,这个Java源码转换FLV的项目是利用Java编程语言和相关库实现的视频转换工具,它可以将源视频文件转化为适用于网络播放的FLV格式。理解和使用这个项目,你需要熟悉Java编程、视频处理概念以及可能涉及的第三...
1. **下载并准备FLV格式的视频文件**:选择一个FLV格式的视频文件作为转换对象,可以是任意来源的文件,只要确保它是FLV格式即可。 2. **文件存放位置**:为了简化后续命令行操作,建议将FLV格式的视频文件放置于...
最简单的java调用FFmpeg转换视频格式为FLV的方法,在win下调用命令提示符。
Easy-FLV 是一个用 Java 实现的库,它能够将 RTSP 或 RTMP 视频流转换为 FLV 格式,以便在浏览器中播放。它为实时视频监控、直播和视频流处理提供了一个高效、稳定且易于集成的解决方案。高效转换:快速将视频流转换...
本项目涉及的关键知识点是使用C#实现视频格式转换为FLV(Flash Video),以便于在线预览。FLV是一种流行的网络流媒体格式,由于其体积小、加载快的特性,常用于网页中的视频播放。 1. **C#基础**: C#是一种面向...
本文将详细讲解如何实现“视频上传并转换编码成flv格式”的过程,以及涉及到的相关技术,包括ASP编程语言、编码转换和流媒体服务。 首先,视频上传是指用户通过网络将本地视频文件上传到服务器的过程。这个过程通常...
在这个文档中,我们关注的是如何将用户上传的视频文件转换为FLV(Flash Video)格式,以便在网页上通过Flash Player进行在线播放。以下是相关知识点的详细说明: 1. **FLV格式**:FLV是Adobe Flash平台广泛使用的...
本项目是一款基于Java技术栈的视频处理工具源码,集成了视频压缩与格式转换功能,特别针对FLV到MP4的转换。项目结构包含40个文件,其中Java源文件28个,HTML文件2个,并涉及其他类型的文件如属性文件、Markdown文件...
java调用ffmpeg转换视频,并读取转换后视频的分辨率、大小以及时长。主要参考http://blog.sina.com.cn/s/blog_a5116c670102wiwj.html 的代码方式。步骤: 1.研究java如何调用外部程序 2.研究ffmpeg转换视频格式的...
在本场景中,我们关注的是如何使用ASP实现视频上传并自动将其转换为FLV格式的功能。FLV(Flash Video)是Adobe Flash平台广泛使用的视频格式,特别适合在网络流媒体应用中使用。 实现这一功能,我们需要以下几个...