用java小例题说明更直观:(可以直接编译运行)
环境我在windows平台下测试的。。。
需要在e:/下有ffmpeg.exe;mencoder.exe;drv43260.dll;pncrt.dll共4个文件。
如何得到这4个文件参考文章http://hanxin0311.iteye.com/admin/blogs/1919481
还要在e:/input下放各种文件名为a的以下各种视频文件;还要e:/output;java程序执行后能得到一个a.flv的已转换的文件。
ffmpeg.exe能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
对ffmpeg.exe无法解析的文件格式(wmv9,rm,rmvb等),
可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式;
mencoder.exe;drv43260.dll;pncrt.dll这3个文件是为文件格式(wmv9,rm,rmvb等)
转换为avi(ffmpeg能解析的)格式准备的;再把转换好的avi文件再用ffmpeg.exe转换成flv格式的视频文件。。。
java文件的内容如下:
import java.io.File; import java.util.List; public class ConvertVideo { private final static String PATH = "c://test//a.mpg"; public static void main(String[] args) { if(!checkfile(PATH)){ System.out.println(PATH+" is not file"); return; } if (process()) { System.out.println("ok"); } } private static boolean process() { int type = checkContentType(); boolean status = false; if (type==0) { status = processFLV(PATH);// 直接将文件转为flv文件 } else if (type==1) { String avifilepath = processAVI(type); if (avifilepath == null) return false;// avi文件没有得到 status = processFLV(avifilepath);// 将avi转为flv } return status; } private static int checkContentType() { String type = PATH.substring(PATH.lastIndexOf(".") + 1, PATH.length()).toLowerCase(); //ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等) if (type.equals("avi")) { return 0; } else if (type.equals("mpg")) { return 0; } else if (type.equals("wmv")) { return 0; } else if (type.equals("3gp")) { return 0; } else if (type.equals("mov")) { return 0; } else if (type.equals("mp4")) { return 0; } else if (type.equals("asf")) { return 0; } else if (type.equals("asx")) { return 0; } else if (type.equals("flv")) { return 0; } //对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等), 可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式. else if (type.equals("wmv9")) { return 1; } else if (type.equals("rm")) { return 1; } else if (type.equals("rmvb")) { return 1; } return 9; } private static boolean checkfile(String path){ File file=new File(path); if(!file.isFile()){ return false; } return true; } // 对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等), 可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式. private static String processAVI(int type) { List<String> commend=new java.util.ArrayList<String>(); commend.add("e://mencoder"); commend.add(PATH); commend.add("-oac"); commend.add("lavc"); commend.add("-lavcopts"); commend.add("acodec=mp3:abitrate=64"); commend.add("-ovc"); commend.add("xvid"); commend.add("-xvidencopts"); commend.add("bitrate=600"); commend.add("-of"); commend.add("avi"); commend.add("-o"); commend.add("c://home//a.avi"); try{ ProcessBuilder builder = new ProcessBuilder(); builder.command(commend); builder.start(); return "c://home//a.avi"; }catch(Exception e){ e.printStackTrace(); return null; } } // ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等) private static boolean processFLV(String oldfilepath) { if(!checkfile(PATH)){ System.out.println(oldfilepath+" is not file"); return false; } List<String> commend=new java.util.ArrayList<String>(); commend.add("e://ffmpeg"); commend.add("-i"); commend.add(oldfilepath); commend.add("-ab"); commend.add("64"); commend.add("-acodec"); commend.add("mp3"); commend.add("-ac"); commend.add("2"); commend.add("-ar"); commend.add("22050"); commend.add("-b"); commend.add("230"); commend.add("-r"); commend.add("24"); commend.add("-y"); commend.add("c://home//a.flv"); try { ProcessBuilder builder = new ProcessBuilder(); builder.command(commend); builder.start(); return true; } catch (Exception e) { e.printStackTrace(); return false; } } }
文章来源:http://blog.csdn.net/xsf_lh/article/details/1693799
相关推荐
在本文中,我们将深入探讨如何使用Java程序调用FFmpeg执行视频文件格式转换,特别是将非FFmpeg原生支持的格式转换为FLV格式。FFmpeg是一个强大的多媒体处理工具,支持多种视频、音频格式的编码、解码和转换。在这个...
Java调用FFmpeg转换视频格式为FLV是一个常见的任务,特别是在开发媒体处理应用程序时。FFmpeg是一个强大的跨平台命令行工具,用于处理音频和视频文件,包括转换、编码、解码、分割等操作。在Java中,我们通常通过...
java调用ffmpeg转换视频,并读取转换后视频的分辨率、大小以及时长。主要参考http://blog.sina.com.cn/s/blog_a5116c670102wiwj.html 的代码方式。步骤: 1.研究java如何调用外部程序 2.研究ffmpeg转换视频格式的...
总结起来,Java调用FFmpeg进行视频转换是一个涉及多媒体处理的核心技术,它使得Java应用程序能够处理各种视频格式,适应多样化的用户需求。通过学习和实践,开发者可以熟练掌握这一技能,提升其在音视频领域的开发...
最简单的java调用FFmpeg转换视频格式为FLV的方法,在win下调用命令提示符。
详解java调用ffmpeg转换视频格式为flv 注意:下面的程序是在Linux下运行的,如果在windows下rmvb转换成avi会出现问题,想成功需要下载下个drv43260.dll东西放到C:WindowsSystem32下面 这几天在写一个视频管理系统,...
java调用ffmpeg添加水印并且转换视频,代码中并没有判断哪些格式支持,那些不支持,mpg,mp4,avi,wmv基本都可以(传入格式),转换为flv avi mp4起码都没问题,其它的没事过ffmpeg是开源的支持的挺多的 补充:时间算错了,...
Java是一种广泛使用的编程语言,它不仅用于开发Web应用程序和企业级系统,还可以处理多媒体处理任务,包括视频格式转换。在本场景中,我们关注的是如何使用Java将各种视频格式转换为FLV(Flash Video)格式。FLV是...
Java 结合 FFmpeg 提供了灵活的多媒体处理能力,但需要注意的是,通过命令行调用外部程序可能会有性能开销,因此在处理大量任务时,可以考虑使用 FFmpeg 的 Java 库,如 Xuggle 或 JAVE(Java Audio Video Encoder)...
### Java调用视频转换工具FFmpeg知识点归纳 #### 一、环境配置与文件准备 **1.1 FFmpeg工具的安装与配置** - **下载与安装:** - 首先,确保已经在本地计算机上安装了FFmpeg工具。可以在官方网站上下载适合...
本教程将深入讲解如何使用Java进行FFmpeg的封装,实现视频截图和格式转换功能,特别关注将视频转换为FLV格式。 首先,你需要在项目中引入FFmpeg的Java绑定库,如`javacpp-presets/ffmpeg`。这个库提供了与FFmpeg...
Java调用FFmpeg实现视频转换涉及到Java编程语言和FFmpeg多媒体处理工具的使用。FFmpeg是一个非常强大的命令行工具,支持几乎所有的视频文件格式转换。在Java中调用FFmpeg,通常使用Runtime或者ProcessBuilder类来...
3. **Java调用FFmpeg**: - 在Java中,我们可以使用`Runtime.getRuntime().exec()`方法来执行系统命令,包括FFmpeg命令。 - 更高级的方法是使用第三方库,如`Xuggle`或`JAVE2`,它们提供了更方便的Java接口来操作...
3. **Java调用FFmpeg** 在Java中,有两种主要方式调用FFmpeg: - **使用Runtime.exec()**:直接执行FFmpeg命令,例如: ```java Process process = Runtime.getRuntime().exec("ffmpeg -i input.mp4 output.flv...
3. Java调用FFmpeg:在Java Web环境中,直接使用FFmpeg通常通过执行系统命令来实现,即使用Java的Runtime类或者ProcessBuilder类来调用`ffmpeg.exe`。压缩包内的`java调用视频转换工具ffmpeg.doc`应该包含了如何在...
Java视频转换FLV是一项在IT领域中常见的任务,主要用于将不同格式的视频文件转换为FLV(Flash Video)格式,这种格式广泛应用于网络流媒体播放。在这个过程中,我们通常会用到开源工具FFmpeg,它是一个强大的命令行...
以下是一个简单的示例,展示如何使用Java调用FFmpeg进行视频转换: ```java import java.io.IOException; public class VideoConverter { public static void main(String[] args) { String inputFilePath = ...
Java作为一种广泛使用的编程语言,提供了多种方式来实现文件格式的转换。本实例聚焦于Java如何实现AMR到MP3的转换,同时,该方法同样适用于其他类型的格式转换,如视频格式FLV转MP4。我们将探讨使用JAVE库、FTP协议...
总结来说,这个Java源码转换FLV的项目是利用Java编程语言和相关库实现的视频转换工具,它可以将源视频文件转化为适用于网络播放的FLV格式。理解和使用这个项目,你需要熟悉Java编程、视频处理概念以及可能涉及的第三...