【问题标题】:Java: Parse output from ffmpegJava:解析 ffmpeg 的输出
【发布时间】:2011-12-09 15:02:57
【问题描述】:

我正在尝试解析ffmpeg -i 命令的一些输出。一些输出可能如下所示:

  libavutil     50. 8. 0 / 50. 8. 0
  libavcodec    52.52. 0 / 52.52. 0
  libavformat   52.50. 0 / 52.50. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.10. 0 /  0.10. 0
  libpostproc   51. 2. 0 / 51. 2. 0
Input #0, avi, from '/my/folder/clip.mpeg':
  Duration: 00:05:25.00, start: 0.000000, bitrate: 554 kb/s
    Stream #0.0: Video: msvideo1, rgb555le, 160x100, 10 tbr, 10 tbn, 10 tbc

如何解析倒数第二行的比特率值?我不能制作一个静态解析器,它只在字符串中的位置 x 处选择值,因为输出有时会有所不同,所以我必须以某种方式使其动态化。

但是怎么做呢?

【问题讨论】:

  • 你能在解析器中搜索字符串“比特率”吗?

标签: java string parsing text


【解决方案1】:

您可以使用正则表达式。 尝试这样的事情:

String text = "Duration: 00:05:25.00, start: 0.000000, bitrate: 554 kb/s";
final Pattern p = Pattern.compile(".?bitrate:\\s([0-9]*)\\skb/s");
final Matcher m = p.matcher(text);
if(m.find())
{
    System.out.println(m.group(1));
}

更多关于 Java 和正则表达式:http://docs.oracle.com/javase/tutorial/essential/regex/

【讨论】:

    【解决方案2】:

    只需搜索字符串“比特率:”并从那里开始。

    【讨论】:

      猜你喜欢
      • 2017-10-19
      • 1970-01-01
      • 2019-05-28
      • 2012-04-21
      • 1970-01-01
      • 2012-05-17
      • 1970-01-01
      • 1970-01-01
      • 2020-09-29
      相关资源
      最近更新 更多