Tôi nghĩ câu hỏi của mình khá cơ bản, nhưng tôi đang viết mã này trong OpenCV để chỉ cần thu thập dữ liệu video từ webcam và lưu nó vào tệp. Bây giờ vấn đề là các tập tin được thực hiện tại đích mong muốn, ban đầu nó là khoảng 286 byte trong kích thước. Sau đó, khi tôi gán khung đầu tiên cho con trỏ, kích thước sẽ tăng lên 414 byte. Tuy nhiên, khi tôi chạy toàn bộ mã, kích thước của video đã lưu vẫn còn 414 byte. Tất nhiên, kết quả là trình phát phương tiện của tôi không thể phát tệp và nói "không ở định dạng mà QuickTime Player hiểu". và điều tương tự cũng xảy ra với trình phát VLC.OpenCV lưu video vào tập tin
Đây là mã của tôi cho cùng:
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
int main(int argc, char** argv) {
CvCapture* capture;
capture = cvCreateCameraCapture(0);
assert(capture != NULL);
IplImage* bgr_frame = cvQueryFrame(capture);
CvSize size = cvSize(
(int)cvGetCaptureProperty(capture,
CV_CAP_PROP_FRAME_WIDTH),
(int)cvGetCaptureProperty(capture,
CV_CAP_PROP_FRAME_HEIGHT)
);
cvNamedWindow("Webcam", CV_WINDOW_AUTOSIZE);
CvVideoWriter *writer = cvCreateVideoWriter( "/Users/user/Desktop/OpenCV_trial/OpenCV_trial/vidtry.AVI",
CV_FOURCC('D','I','V','X'),
30,
size
);
while((bgr_frame = cvQueryFrame(capture)) != NULL)
{
cvWriteFrame(writer, bgr_frame);
cvShowImage("Webcam", bgr_frame);
char c = cvWaitKey(33);
if(c == 27) break;
}
cvReleaseVideoWriter(&writer);
cvReleaseCapture(&capture);
cvDestroyWindow("Webcam");
return(0);
}
Tôi không biết tại sao điều này đang xảy ra. Tôi đang sử dụng mac OSX Lion và chạy Xcode.
Có ai từng gặp vấn đề này trước đây không? Nếu vậy, làm thế nào tôi có thể giải quyết nó?
Cảm ơn bạn!
-Yash
có bạn cố gắng để mở tập tin của bạn với người chơi khác VLC ví dụ .. –