管道opencv帧到ffmpeg

时间:2016-07-17 17:52:50

标签: c++ opencv ffmpeg pipe mat

我正在尝试使用rawvideo格式将opencv帧管道传输到ffmpeg,它应该接受输入为BGRBGRBGR ...在管道不是一个选项之前对帧进行编码。

cv::Mat frame;
cv::VideoCapture cap("cap.avi");

while(1)
{
    cap >> frame;
    if(!frame.data) break;

    // some processing

    cv::Mat array = frame.reshape(0, 1); // to make continuous
    std::string output((char*) array.data, array.total() * array.elemSize());
    std::cout << output;
}

使用命令

cap.exe | ffplay -f rawvideo -pixel_format bgr24 -video_size 1920x1080 -framerate 10 -i -

给出this kind of失真的结果

我认为问题与ffmpeg / ffplay无关,但我的框架与原始转换有问题

如何将3个频道的mat转换为rawvideo bgr24格式?

0 个答案:

没有答案