【问题标题】:Gstreamer + OpenCV h264 Encoding&Decoding İmage Deformation ProblemGstreamer + OpenCV h264 Encoding&Decoding İmage Deformation Problem
【发布时间】:2021-11-01 14:51:32
【问题描述】:

硬件: Apalis IMX8 CPU(SOM) 和 Sensoray model-1012 视频抓帧器

我正在尝试使用 h264 编码保存模拟视频并播放它。 代码有 3 个部分。读取摄像头,编码保存视频,解码播放视频。

我面临的问题是解码部分。当我解码并显示视频时,它会损坏。

我如何阅读模拟视频(工作正常):

cap = cv::VideoCapture(" v4l2src device=/dev/video4 ! video/x-raw, format=(string)YUY2, width=(int)720, height=(int)480, framerate=30/1, interlace-mode=interleaved ! deinterlace fields=1 method=2 ! videoconvert ! appsink ",cv::CAP_GSTREAMER);

我如何压缩和保存视频(工作正常):

cv::VideoWriter fixedVideo;
QString pipeTmp =  "appsrc ! videoconvert ! v4l2h264enc ! h264parse ! qtmux ! filesink location="+ FixedIMG_recordName +" sync=false ";
std::string pipe = pipeTmp.toUtf8().constData();
isOpen = fixedVideo.open(pipe , cv::CAP_GSTREAMER, (double)30, cv::Size(720,480), true);

我如何解码和打开视频(不能正常工作):

cv::VideoCapture cap_reader;
QString pipeTmp = " filesrc location=" + device + " ! qtdemux ! h264parse ! video/x-h264, width=720, height=480 ! v4l2h264dec ! videoconvert ! appsink ";
std::string pipe = pipeTmp.toUtf8().constData();
cap_reader.open(pipe , cv::CAP_GSTREAMER);

当我打开 cap_read 管道以从 gstreamer 命令行 管道播放相同的视频时,它可以正常工作并出现一些警告。我把 GST_DEBUG 输出放在log.txt 管道中:

GST_DEBUG=3 gst-launch-1.0 -v filesrc location=test.mp4 ! qtdemux ! h264parse ! 'video/x-h264, width=720, height=480, framerate=30/1' ! v4l2h264dec ! videoconvert ! autovideosink

当我从 VLC 打开视频时,它也可以正常工作。但是当我从 VideoCapture 打开视频时,我在上面给出的管道损坏了。损坏的image example。

【问题讨论】:

    标签: opencv video gstreamer h.264 v4l2


    【解决方案1】:

    压缩没有问题。解码 mp4 文件时,应使用“imxvideoconvert_g2d”。

    解码管道应该是 filesrc location=" + device + " ! qtdemux ! h264解析!视频/x-h264,宽度=720,高度=480! v4l2h264dec ! imxvideoconverter_g2d !视频/x-raw,格式=UYVY,宽度=720,高度=480!视频转换!应用程序

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。
    猜你喜欢
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 2023-04-01
    • 2014-01-04
    相关资源
    最近更新 更多