我有一个短暂的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)?