【问题标题】:Is it possible that phone camera shoots video with irregular fps?手机摄像头是否有可能以不规则的 fps 拍摄视频?
【发布时间】:2015-01-23 10:34:48
【问题描述】:

我的目标是将电影的帧与来自手机陀螺仪/加速度计的设备方向数据同步。 Android 提供带有适当时间戳的方向数据。至于视频,它的帧速率只有一般情况下才知道。实验表明,加速度计测量的方向变化与场景变化不匹配。有时它会更快,有时它会在同一视频中变慢。

有什么方法可以知道两个后续帧之间经过了多少时间?

【问题讨论】:

  • 系统时钟可能吗?

标签: android c++ opencv camera frame-rate


【解决方案1】:

我将自己回答这个问题。

首先,是的,fps 或帧速率可能不是恒定的。以下是来自 Android 开发者指南的引述:“注意:在某些具有自动帧速率的设备上,这会设置最大帧速率,而不是恒定帧速率。”

http://developer.android.com/reference/android/media/MediaRecorder.html#setVideoFrameRate%28int%29

其次,OpenCV VideoCapture类中有一个get(CV_CAP_PROP_POS_MSEC)函数可以读取当前帧时间位置:

VideoCapture capture("test.mp4");
double curFrameTime;
double prevFrameTime = 0;
double dt;
while (capture.grab())
{
  curFrameTime = capture.get(CV_CAP_PROP_POS_MSEC); //Current frame position
  dt = curFrameTime - prevFrameTime;  //Time difference
  prevFrameTime = curFrameTime;  //Previous frame position
} 
capture.release();

如果有更好的建议,我会很高兴看到它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    相关资源
    最近更新 更多