手机摄像头是否有可能以不规则的 fps 拍摄视频
Is it possible that phone camera shoots video with irregular fps?
我的目标是将电影的帧与手机陀螺仪/加速度计的设备方向数据同步。Android 提供带有正确时间戳的方向数据。至于视频,它的帧速率只在一般情况下知道。实验表明,加速度计测量的方向变化与场景中的变化不匹配。有时它走得更快,有时它在同一视频中走得更慢。
有没有办法找出两个连续帧之间经过了多少时间?
我将自己回答这个问题。
首先,是的,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();
如果有更好的建议,我会很高兴看到它。
相关文章:
- 如何在c++中录制具有精确帧时间戳的视频
- 如何在QT中的自定义视频小工具t上绘制矩形
- phytec phyBOARD iMX-6在从闪存而不是SD卡运行qt5 opengles应用程序时表现不佳(FPS减半
- 如何使用OpenCV-C++编写*.mp4视频?
- 开放 CV 中的动态内存分配,用于视频处理
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- OpenCV QT,显示视频的帧(不使用while循环)
- FFmpeg——使用硬件加速进行视频解码
- 在 openCV 中手动停止视频
- 强制Qt相机视频格式
- 在macOS Mojave上尝试OpenCV视频捕获时"Abort Trap: 6"
- 如何使用opencv计算视频的fps(带处理)
- 如何使用C 中的FFMPEG获取视频fps
- 修复视频FPS OPENCV
- 低FPS与OpenCV视频捕获
- 使用OpenCV从文件中更改视频捕获上的fps
- 将视频保存在mp4容器中时FPS太高
- 如何使用 OpenCV 以固定帧速率 (fps) 播放任何视频
- 视频混合呈现器 9 (VMR9):从输入引脚的AM_MEDIA_TYPE获取 FPS
- 手机摄像头是否有可能以不规则的 fps 拍摄视频