VideoReader Matlab:Avi影片剪辑fps,长度和帧数不匹配

时间:2015-04-06 07:13:48

标签: matlab video-processing codec avi

我有一个短暂的2分钟视频,我使用以下代码来获取它的规格:

vidObj = VideoReader('./Clip1.avi');

vidHeight = vidObj.Height;
vidWidth = vidObj.Width;

然后用

vidObj.Duration = 121.25

但是当我想获得帧数和帧速率(fps)时,我得到以下内容:

vidObj.FrameRate = 24
vidObj.NumberOfFrames = 2112

和2112/24 88秒,但规格只是说视频持续时间 121.25秒。 Matlab如何加载视频出了什么问题?我错过了编解码器吗?

我在Ubuntu 12.04上运行它

对我而言,这是一个大问题,因为我想编写一个自动脚本,将每个2分钟剪辑分成5个第二个迷你剪辑,一个接一个。也许有一种解决方法?

其他剪辑规格:

         Filename: '/home/arturo/Documents/Clip1.avi'
          FileSize: 35519488
       FileModDate: '20-Feb-2015 11:16:29'
         NumFrames: 2910
   FramesPerSecond: 24
             Width: 1024
            Height: 760
         ImageType: 'truecolor'
  VideoCompression: 'XVID'
           Quality: 4.2950e+07
NumColormapEntries: 0

更新:由于某些原因在Windows上,它可以获取所有2910帧。

更新2:

输出 get(vidObj)

General Settings:
Duration = 121.2500
Name = 12.5highT1nwloc1V2.avi
Path = /home/arturo/Documents/UAV_Project/Clips/High_Clutter
Tag = 
Type = VideoReader
UserData = []

Video Settings:
BitsPerPixel = 24
FrameRate = 24
Height = 760
NumberOfFrames = 2112
VideoFormat = RGB24
Width = 1024

aviinfo('./ Clip1.avi')的输出:

         Filename: '/home/arturo/Documents/Clip1.avi'
          FileSize: 35519488
       FileModDate: '20-Feb-2015 11:16:29'
         NumFrames: 2910
   FramesPerSecond: 24
             Width: 1024
            Height: 760
         ImageType: 'truecolor'
  VideoCompression: 'XVID'
           Quality: 4.2950e+07
NumColormapEntries: 0

诊断:我猜这可能是Linux(12.04)bug的Matlab(2012a)?

0 个答案:

没有答案