首页 > 解决方案 > jpegenc - 使用 VideoWrite() OpenCV 函数编码 + 存储

问题描述

以下代码可以很好地捕获数据解码并将解码后的数据存储在文件“ out.h364”中,而无需执行编码操作。

cv::VideoCapture cap("filesrc location=720p.mp4 ! qtdemux name=demux.video_0 ! h264parse ! video/x-h264, alignment=nal ! omxh264dec ! videoconvert ! appsink sync=false async=false",cv::CAP_GSTREAMER);

VideoWriter video("appsrc ! videoconvert ! filesink location=out.h264", cv::CAP_GSTREAMER,0,60,Size(1280,720),true); 

cap >> frame;

video.write(frame);

现在我想在将其存储到文件之前执行编码操作。我尝试使用以下代码进行编码->使用“jpegenc”编码器将其存储在文件中。

VideoWriter video("appsrc ! videoconvert ! video/x-raw, width=1280,height=720, framerate=60/1, format=BGR ! jpegenc ! filesink location=out.mp4", cv::CAP_GSTREAMER,0,60,Size(1280,720),true); 

cap >> frame;

video.write(frame);

问题::它正在写入out.mp4文件,但我无法播放它。似乎它没有正确存储数据。

谁能指导我执行编码然后将其存储到文件中?

标签: c++opencvjpeggstreamerencode

解决方案


推荐阅读