- 浏览: 3424518 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
将flv文件转为mp4文件
直接将文件转为flv文件
http://fanfq.iteye.com/blog/655569
ffmpeg -i chendong.flv -c:v libx264 -crf 19 -strict experimental chendong.mp4 ffmpeg -i /mnt/D/work_documents/工作文档/公司文档/5.技术文档/zhendoc/vdo/2014suzhou/chendong.flv -c:v libx264 -crf 19 -strict experimental /mnt/D/work_documents/工作文档/公司文档/5.技术文档/zhendoc/vdo/2014suzhou/chendong.mp4
直接将文件转为flv文件
http://fanfq.iteye.com/blog/655569
import java.io.File; import java.util.ArrayList; import java.util.Calendar; import java.util.List; public class ConvertVideo { private final static String PATH = "c:\\ffmpeg\\input\\c.mp4"; 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) { System.out.println("直接将文件转为flv文件"); 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 ArrayList<String>(); commend.add("c:\\ffmpeg\\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:\\ffmpeg\\output\\a.avi"); try { ProcessBuilder builder = new ProcessBuilder(); builder.command(commend); builder.start(); return "c:\\ffmpeg\\output\\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; } // 文件命名 Calendar c = Calendar.getInstance(); String savename = String.valueOf(c.getTimeInMillis())+ Math.round(Math.random() * 100000); List<String> commend = new ArrayList<String>(); commend.add("c:\\ffmpeg\\ffmpeg"); commend.add("-i"); commend.add(oldfilepath); commend.add("-ab"); commend.add("56"); commend.add("-ar"); commend.add("22050"); commend.add("-qscale"); commend.add("8"); commend.add("-r"); commend.add("15"); commend.add("-s"); commend.add("600x500"); commend.add("c:\\ffmpeg\\output\\a.flv"); try { Runtime runtime = Runtime.getRuntime(); Process proce = null; String cmd = ""; String cut = " c:\\ffmpeg\\ffmpeg.exe -i " + oldfilepath + " -y -f image2 -ss 8 -t 0.001 -s 600x500 c:\\ffmpeg\\output\\" + "a.jpg"; String cutCmd = cmd + cut; proce = runtime.exec(cutCmd); ProcessBuilder builder = new ProcessBuilder(commend); builder.command(commend); builder.start(); return true; } catch (Exception e) { e.printStackTrace(); return false; } } }
发表评论
-
FFmpeg常用基本命令
2016-07-15 11:52 0http://www.cnblogs.com/dwdxdy/p ... -
iF.SVNAdmin安装
2016-06-27 17:13 1419http://blog.linhere.com/archive ... -
Java Comparable和Comparator
2016-06-26 08:52 699http://my.oschina.net/android52 ... -
Java集合框架之fastutil & koloboke
2016-06-23 14:04 2473Java集合框架之fastutil http://rensan ... -
ehcache 分布式支持
2016-06-05 22:26 1099原文 http://my.oschina.net/glenxu ... -
Intellij IDEA插件开发入门
2016-05-26 11:42 2883原文: http://blog.csdn.net/dc_726 ... -
阿里巴巴Druid数据源的配置与使用
2016-05-24 17:42 1546http://my.oschina.net/wjme/blog ... -
apache调优
2016-05-21 10:10 1141http://my.oschina.net/renqingsh ... -
mysql中间件研究(Atlas,cobar,TDDL), 分库分表插件
2016-05-09 14:15 3445http://www.guokr.com/blog/47576 ... -
Java集合: Queue和Deque
2016-05-09 09:49 1864Queue http://my.oschina.net/kev ... -
使用gzip优化web应用(filter实现)
2016-05-07 01:45 1032使用gzip优化web应用(filter实现) http:// ... -
tomcat命令
2016-04-28 09:56 947./startup.sh : 启动tomcat ./shutd ... -
Shiro 基于注解和标签实现的授权认证过程
2016-04-25 13:24 5949将 Shiro 作为应用的权限 ... -
Byteman 3.0.5 发布,Java 字节码注入工具
2016-04-23 10:29 1770Byteman 3.0.5 发布,Java 字 ... -
安装Hadoop, Hbase, Phoenix
2016-04-22 09:22 1484http://my.oschina.net/jrrx/blog ... -
RandomStringUtils的说明和生成随机汉字
2016-04-20 15:21 1394更多参考: http://my.oschina.net/wil ... -
通过IP地址获取地理位置
2016-04-20 15:19 895http://my.oschina.net/githubhty ... -
jenkins+ant+jmeter搭建持续集成的接口测试平台实例
2016-04-15 13:29 1559http://my.oschina.net/u/1425843 ... -
Java编程中使用正则表达式过滤非数字字符串
2016-04-14 13:51 1719/** * * @param str ... -
Dubbo 介绍
2016-04-14 10:26 1056官方 http://dubbo.io/ DUBBO是一个分布式 ...
相关推荐
Java调用视频转换工具FFmpeg是一项常见的任务,特别是在多媒体处理和流媒体服务中。FFmpeg是一个强大的跨平台命令行工具,用于转换、流化、编辑和处理音频和视频文件。在Java应用程序中集成FFmpeg,可以实现灵活的...
总的来说,Java调用FFmpeg是一个常用的技术手段,可以帮助开发者在Java应用程序中实现丰富的音视频处理功能。需要注意的是,由于FFmpeg的命令行语法较为复杂,因此在实际使用中,理解其参数和选项至关重要,同时也要...
### Java调用视频转换工具FFmpeg知识点归纳 #### 一、环境配置与文件准备 **1.1 FFmpeg工具的安装与配置** - **下载与安装:** - 首先,确保已经在本地计算机上安装了FFmpeg工具。可以在官方网站上下载适合...
Java FFmpeg Wrapper将FFmpeg的命令行工具包装成Java API,使得开发者可以在Java代码中直接调用转换视频的方法,无需关心底层的命令行执行细节。 以下是一些核心知识点: 1. **FFmpeg命令行工具**:FFmpeg的基本...
总结来说,通过Java调用FFmpeg和Mencoder进行视频格式转换,需要理解这两个工具的命令行语法,以及如何在Java中执行外部进程。此过程涉及到文件类型的检查、预处理转换(如果必要)、最终的格式转换以及错误处理,...
4. 使用说明文档:`java调用视频转换工具ffmpeg.doc`很可能是详细的使用教程,涵盖了如何配置环境、调用FFmpeg的命令行参数以及如何在Java代码中调用这些命令。阅读这份文档对于理解整个转换过程至关重要。 5. 其他...
Java调用FFmpeg转换视频格式为...总之,Java调用FFmpeg转换视频格式是一项常见任务,涉及到系统进程调用、第三方库的使用,以及对FFmpeg命令和参数的理解。通过合理的编程实践,我们可以构建稳定、高效的视频处理功能。
在Java开发中,通过调用FFmpeg的命令行工具,可以方便地集成到应用程序中进行视频处理,例如本实例中的视频压缩。在百度AI和腾讯AI的活体验证场景中,高质量、低大小的视频文件是必要的,因此使用FFmpeg进行视频压缩...
总之,Java FFmpeg视频转换涉及了多媒体处理的基本原理和Java调用外部进程的技术。理解FFmpeg的组件和命令结构,以及如何在Java中正确地执行和处理FFmpeg命令,是成功实现这一功能的关键。遇到问题时,参考社区资源...
在Windows环境下,使用Java调用FFmpeg进行视频处理是一项常见的任务,尤其在开发涉及多媒体处理的应用时。FFmpeg是一款强大的跨平台的音频和视频处理工具,而Java则是一种广泛使用的编程语言,它提供了丰富的库来与...
Java 使用 FFmpeg 截取视频图片是一个常见的任务,它涉及到多媒体处理、命令行操作和跨平台编程。FFmpeg 是一个强大的开源工具集,用于处理音频和视频文件,包括编码、解码、转码、流处理等功能。在 Java 中,我们...
LAME(LAME Ain't an MP3 Encoder)是许多音频编辑软件和转换工具背后的引擎。3.99.5是LAME的一个稳定版本,提供了良好的编码质量和速度平衡。在Java项目中,可以通过Java的外部进程调用来集成LAME,实现音频文件的...
6. **环境搭建**:配合"windows下java调用ffmpeg视频处理环境搭建",这部分可能包括如何在Windows系统上安装FFmpeg,设置环境变量,以及如何确保Java程序能正确找到并执行FFmpeg的可执行文件。 7. **错误处理和日志...
在Java中使用FFmpeg获取视频时长,首先需要安装FFmpeg命令行工具,并将其添加到系统的PATH环境变量中,以便Java程序可以调用。此外,还需要引入一个Java的FFmpeg绑定库,例如`ffmpeg-java`或`fluent-ffmpeg`,这些库...
在Java中使用ffmpeg,通常会通过调用系统命令或者使用第三方库如`Xuggle`或`ffmpeg-java`来实现。在这个项目中,开发者选择了一个简洁的方法,仅通过一个类和二十多行代码就实现了功能,这使得代码易于理解和维护。 ...
6. **执行命令**:在Java中,你可能还需要使用`Runtime.getRuntime().exec()`方法来执行FFmpeg命令行工具,以直接生成指定帧的图片,而无需先解码视频。这可以简化流程,但可能限制了灵活性。 7. **错误处理和资源...
这个压缩包文件"java 调用 ffmpeg 进行视频转换以及截图.rar"显然提供了一个解决方案,让我们能够在Java环境中利用`ffmpeg`的功能。 首先,让我们详细了解一下如何在Java中调用`ffmpeg`。这通常涉及到使用Java的`...
Java使用FFmpeg解析视频、截图和获取播放时间的实践是一个重要的技术主题,尤其在多媒体处理领域。FFmpeg是一个强大的开源工具集,包含了多种用于处理音频和视频的工具,如ffprobe、ffmpeg等。在Java中集成FFmpeg,...
通过以上分析,我们可以看出这个项目的核心是利用Java调用FFmpeg实现视频和音频的转码功能,涉及到多媒体处理、文件操作、系统调用等多个方面。对于开发者来说,理解FFmpeg的工作原理以及如何在Java中有效地利用它是...
本文将详细介绍如何在Java中使用封装的FFmpeg库进行视频截图、视频剪辑和视频转换,并讨论其支持的编码类型以及在Windows和Linux平台上的应用。 首先,我们要了解Java封装FFmpeg的基本原理。通常,这涉及到使用JNI...