`
- 浏览:
424880 次
- 性别:
- 来自:
北京
-
- public static void main(String[] args) {
-
- String result = processFLV("E:\\test\\京视传媒\\体育类\\xiao.flv");
-
-
- PatternCompiler compiler =new Perl5Compiler();
- try {
- String regexDuration ="Duration: (.*?), start: (.*?), bitrate: (\\d*) kb\\/s";
- String regexVideo ="Video: (.*?), (.*?), (.*?)[,\\s]";
- String regexAudio ="Audio: (\\w*), (\\d*) Hz";
-
- Pattern patternDuration = compiler.compile(regexDuration,Perl5Compiler.CASE_INSENSITIVE_MASK);
- PatternMatcher matcherDuration = new Perl5Matcher();
- if(matcherDuration.contains(result, patternDuration)){
- MatchResult re = matcherDuration.getMatch();
-
- System.out.println("提取出播放时间 ===" +re.group(1));
- System.out.println("开始时间 =====" +re.group(2));
- System.out.println("bitrate 码率 单位 kb==" +re.group(3));
- }
-
- Pattern patternVideo = compiler.compile(regexVideo,Perl5Compiler.CASE_INSENSITIVE_MASK);
- PatternMatcher matcherVideo = new Perl5Matcher();
-
- if(matcherVideo.contains(result, patternVideo)){
- MatchResult re = matcherVideo.getMatch();
- System.out.println("编码格式 ===" +re.group(1));
- System.out.println("视频格式 ===" +re.group(2));
- System.out.println(" 分辨率 == =" +re.group(3));
- }
-
- Pattern patternAudio = compiler.compile(regexAudio,Perl5Compiler.CASE_INSENSITIVE_MASK);
- PatternMatcher matcherAudio = new Perl5Matcher();
-
- if(matcherAudio.contains(result, patternAudio)){
- MatchResult re = matcherAudio.getMatch();
- System.out.println("音频编码 ===" +re.group(1));
- System.out.println("音频采样频率 ===" +re.group(2));
- }
-
- } catch (MalformedPatternException e) {
- e.printStackTrace();
- }
-
- }
-
-
-
- private static String processFLV(String inputPath) {
-
-
-
-
-
-
- List<String> commend=new java.util.ArrayList<String>();
-
-
- commend.add("ffmpeg");
- commend.add("-i");
- commend.add(inputPath);
-
- try {
-
- ProcessBuilder builder = new ProcessBuilder();
- builder.command(commend);
- builder.redirectErrorStream(true);
- Process p= builder.start();
-
-
- BufferedReader buf = null;
- String line = null;
-
-
- buf = new BufferedReader(new InputStreamReader(p.getInputStream()));
-
- StringBuffer sb= new StringBuffer();
- while ((line = buf.readLine()) != null) {
- System.out.println(line);
- sb.append(line);
- continue;
- }
- int ret = p.waitFor();
-
- return sb.toString();
- } catch (Exception e) {
-
- return null;
- }
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在Java中使用FFmpeg获取视频时长,首先需要安装FFmpeg命令行工具,并将其添加到系统的PATH环境变量中,以便Java程序可以调用。此外,还需要引入一个Java的FFmpeg绑定库,例如`ffmpeg-java`或`fluent-ffmpeg`,这些库...
本项目就是关于如何在Java环境中使用ffmpeg来获取视频的缩略图,提供了一个简单易用的解决方案。 首先,ffmpeg是一个强大的命令行工具,它支持多种视频、音频格式的处理,包括转换、合并、剪辑以及生成缩略图等。在...
java调用ffmpeg转换视频,并读取转换后视频的分辨率、大小以及时长。主要参考http://blog.sina.com.cn/s/blog_a5116c670102wiwj.html 的代码方式。步骤: 1.研究java如何调用外部程序 2.研究ffmpeg转换视频格式的...
Java使用FFmpeg解析视频、截图和获取播放时间的实践是一个重要的技术主题,尤其在多媒体处理领域。FFmpeg是一个强大的开源工具集,包含了多种用于处理音频和视频的工具,如ffprobe、ffmpeg等。在Java中集成FFmpeg,...
总结来说,通过Java调用FFmpeg获取视频时长的关键知识点包括了解FFmpeg的功能和作用、掌握Java中ProcessBuilder类的使用方法、熟悉正则表达式在字符串匹配中的应用以及对FFmpeg命令输出结果的解析。掌握这些知识点后...
ffmpeg本身没有支持java的AIP,所以在这里使用java中runtime操作ffmpeg获取视频文件的分辨率、码率、时长等信息,以及自动截图功能。 其中有个java项目、ffmpeg-win32程序包
Java调用FFmpeg转换视频格式为...总之,Java调用FFmpeg转换视频格式是一项常见任务,涉及到系统进程调用、第三方库的使用,以及对FFmpeg命令和参数的理解。通过合理的编程实践,我们可以构建稳定、高效的视频处理功能。
5. **获取视频信息**:源码可能包含解析FFmpeg的元数据信息,如分辨率、编码器、帧率、时长等。这些信息对于视频处理和分析非常有用。 6. **环境搭建**:配合"windows下java调用ffmpeg视频处理环境搭建",这部分...
在Windows环境下,使用Java调用FFmpeg进行视频处理是一项常见的任务,尤其在开发涉及多媒体处理的应用时。FFmpeg是一款强大的跨平台的音频和视频处理工具,而Java则是一种广泛使用的编程语言,它提供了丰富的库来与...
本篇文章将详细探讨如何使用`ffmpeg`来获取视频的封面图以及视频的时长信息,尤其对于Java开发者来说,这些知识是进行多媒体处理时的基础。 首先,让我们了解如何通过`ffmpeg`获取视频封面图。视频封面图通常是指...
使用Java语言调用终端开启关闭Nginx服务器,然后执行ffmpeg命令,开启转流推流。以及其它指令,来学习吧
Java 封装FFmpeg库是将FFmpeg的强大功能与Java编程语言相结合的一种方式,使得开发者在Java环境中可以方便地处理视频和音频文件。FFmpeg是一个跨平台的解决方案,用于处理多媒体数据,包括视频转码、视频剪辑、视频...
根据提供的文件信息,我们可以深入探讨如何使用FFmpeg来获取视频的关键属性,如视频时长、码率、编码格式、分辨率以及音频的相关信息,并且通过Java编程语言实现这一过程。 ### FFmpeg简介 FFmpeg是一个非常强大的...
获取视频时长,我们可以使用`ffprobe`,它是FFmpeg的一部分,用于提取媒体元数据。命令可能如下: ```java String durationCommand = "ffprobe -v error -show_entries format=duration -of default=noprint_...
使用ffmpeg.exe获取文件属性信息,ffmpeg是java开发的用于多媒体文件编辑的命令行工具,有多个版本,功能比较强大,C#中可以在进程外异步调用这个工具 using (System.Diagnostics.Process pro = new System....
通过使用Java语言和javacv库,我们可以快速获取视频文件中的帧图片,并对其进行等比缩放,以满足不同的应用需求。 知识点一:视频文件中的帧图片获取 * 视频文件中的帧图片获取是指从视频文件中抽取出每一帧图片的...
JavaFFmpeg是一个强大的Java库,它是FFmpeg命令行工具的Java接口,允许开发者在Java应用程序中处理音频和视频文件。这个案例聚焦于如何利用JavaFFmpeg来获取视频的长度,这是多媒体处理中一个常见的需求。FFmpeg是一...
当然,为了更精确地截取特定帧,你需要解析视频的时长信息,并根据需要调整`-vframes`参数。 总结来说,通过Java后台结合`ffmpeg.jar`,我们可以轻松地实现从视频中截取特定帧图片的功能。这涉及到了FFmpeg的加载、...
本文将详细介绍如何使用Java和OpenCV从视频文件中获取帧,并提供了具体的代码实例。 OpenCV是计算机视觉和机器学习的开源库,它提供了大量的图像和视频处理函数库。Java是最流行的编程语言之一,使用Java和OpenCV...
3) 编写Java代码:使用Java调用FFmpeg命令行,执行转换操作。例如: ```java Process process = Runtime.getRuntime().exec("ffmpeg -i input.mp4 -hls_time 10 -hls_list_size 0 output.m3u8"); ``` 上述...