1

当我在视频文件上运行 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 会有所不同,因为我将在各种不同的视频文件上使用此脚本。

谢谢

4

2 回答 2

2

您可以使用如下表达式:

([\d.]+) fps

FPS 在第一个捕获组中。

Perl 示例:

perl -nE '/([\d.]+) fps/ && say $1'
于 2012-06-18T13:48:10.873 回答
0

对于您可以使用的框架:

frames=(\d+)

如果你想要 fps,这将起作用:

(\d+.\d+)\sfps
于 2012-06-18T13:56:28.217 回答