2011-12-09 14 views
0

ffmpeg -iコマンドの出力を解析しようとしています。出力の一部は、次のようになります。Java:ffmpegの出力を解析します。

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の値を選択する静的パーサーは作成できません。したがって、何らかの方法で動的にする必要があります。

どのようにですか?

+0

パーサーで「ビットレート」の文字列をSERCHことはできますか? – chance

答えて

2

正規表現を使用できます。

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/

0

文字列「bitrate:」を検索してそこから移動します。

関連する問題