使用Regex从tcprobe文本中提取FPS

时间:2012-06-18 13:45:43

标签: regex

我在视频文件上运行tcprobe -i时返回以下信息:

[tcprobe] RIFF data, AVI video
[avilib] V: 30.000 fps, codec=MJPG, frames=1599, width=640, height=480
[avilib] A: 8000 Hz, format=0x01, bits=8, channels=1, bitrate=64 kbps,
[avilib]    54 chunks, 427248 bytes, CBR
[tcprobe] summary for PICT1120.AVI, (*) = not default, 0 = not detected
import frame size: -g 640x480 [720x576] (*)
       frame rate: -f 30.000 [25.000] frc=0 (*)
      audio track: -a 0 [0] -e 8000,8,1 [48000,16,2] -n 0x1 [0x2000] (*)
                   bitrate=64 kbps
           length: 1599 frames, frame_time=33 msec, duration=0:00:53.299

我想使用正则表达式来提取帧率(第2行)请任何人都可以告诉我如何做到这一点(只是帧数,而不是任何周围文本)。

PS。请记住fps会有所不同,因为我将在各种不同的视频文件上使用此脚本。

由于

2 个答案:

答案 0 :(得分:2)

您可以使用如下表达式:

([\d.]+) fps

FPS位于第一个捕获组中。

Perl示例:

perl -nE '/([\d.]+) fps/ && say $1'

答案 1 :(得分:0)

对于您可以使用的帧:

frames=(\d+)

如果你想要fps,这将有效:

(\d+.\d+)\sfps