ภาพรวม
สาธิตการอ่าน Elapsed Time (เวลาที่เล่นไปแล้ว) ของวิดีโอขณะ Playback โดยใช้ CAP_PROP_POS_MSEC
โค้ดตัวอย่าง C++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main() {
Mat myImage;
namedWindow("Video Player");
VideoCapture cap("video.mp4");
if (!cap.isOpened()) {
cout << "No video stream detected" << endl;
system("pause");
return -1;
}
while (true) {
cap >> myImage;
int elapsed_time = cap.get(CAP_PROP_POS_MSEC);
cout << "Elapsed time (seconds): " << elapsed_time / 1000 << endl;
if (myImage.empty()) break;
imshow("Video Player", myImage);
char c = (char)waitKey(25);
if (c == 27) break;
}
cap.release();
return 0;
}
คำอธิบาย
CAP_PROP_POS_MSEC: ตำแหน่งปัจจุบันในหน่วย Milliseconds- หาร 1000 เพื่อได้วินาที
- ลูป While อ่านเฟรมต่อเนื่อง แสดงภาพ และพิมพ์เวลา
waitKey(25): รอ 25ms ≈ 40 FPS
ผลลัพธ์
เล่นวิดีโอในหน้าต่าง "Video Player" พร้อมพิมพ์เวลาที่ผ่านไป (วินาที) ใน Console ทุกเฟรม

