java调用ffmpeg获取视频时长
来源:互联网 发布:淘宝自制食品怎么上架 编辑:程序博客网 时间:2024/04/30 05:26
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(); } } // ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等) private static String processFLV(String inputPath) {/* if (!checkfile(inputPath)){ _log.warn(inputPath+" is not file"); return false; }*/ List<String> commend=new java.util.ArrayList<String>(); // commend.add("e:\\videoconver\\ffmpeg\\ffmpeg ");//可以设置环境变量从而省去这行 commend.add("ffmpeg"); commend.add("-i"); commend.add(inputPath); try { ProcessBuilder builder = new ProcessBuilder(); builder.command(commend); builder.redirectErrorStream(true); Process p= builder.start(); //1. start BufferedReader buf = null; // 保存ffmpeg的输出结果流 String line = null; //read the standard output 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();//这里线程阻塞,将等待外部转换进程运行成功运行结束后,才往下执行 //1. end return sb.toString(); } catch (Exception e) {// System.out.println(e); return null; } }
0 0
- java调用ffmpeg获取视频时长
- java调用ffmpeg获取视频时长
- Java通过调用FFMPEG获取视频时长
- Java通过调用FFMPEG获取视频时长
- Java通过调用FFMPEG获取视频时长(已测试)
- FFMPEG获取视频播放时长
- FFMPEG获取视频播放时长
- ffmpeg转换视频格式、获取视频截图、获取视频时长
- 获取音、视频时长(NAudio,Shell32,FFmpeg)
- [ffmpeg]显示视频时长
- Java调用ffmpeg转换视频,并读取转换后视频的分辨率、大小以及时长
- Java获取3gp视频时长
- java 获取音频,视频时长
- java获取视频播放时长
- java、js 获取视频时长
- java调用ffmpeg获取视频信息函数代码
- 获取视频时长
- 获取视频时长
- Kaggle竞赛优胜者源代码剖析(一)
- python中if __name__ == '__main__': 的解析
- 怎样快速搜索自己所需的资料?(90%的人不会使用此方法)
- 147. Insertion Sort List
- ubuntu下的samba配置
- java调用ffmpeg获取视频时长
- Fragment AutoCompleteTextView xml动画(补间 属性动画)
- java api文档的阅读技巧
- Android--使用XMLPull解析xml
- java提高篇-----详解java的四舍五入与保留位
- Android Dalvik虚拟机初识
- 大型网站架构系列:分布式消息队列(一)
- 34. Search for a Range
- 怎么快速修改iMindMap浮动文本格式