我构建了 Yocto 的 Hardknott 5.10.72 版本,我试图使用 VPU 进行编码作为测试。
root@ucm-imx8m-plus:~# gst-launch-1.0 -v videotestsrc ! 视频/x-raw,格式=I420,宽度=640,高度=480!vpuenc_h264 !filesink loca
tion=test.mp4
将管道设置为 PAUSED ...
====== VPUENC:4.6.3 构建于 2011 年 4 月 5 日 23:00:00。======
wrapper: 3.0.0 (VPUWRAPPER_ARM64_LINUX Build on Apr 5 2011 23:00:00)
vpulib: 1.1.1
firmware: 1.1.1.43690
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad :src: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)480, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, 格式=(string)I420, width=(int)640, height=(int)480, framerate=(fraction)30/1 , multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/vpuenc_h264:vpuenc_h264-0.GstPad:sink: caps = 视频/ x-raw, format=(string)I420, width=(int)640, height=(int)480, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=( fraction)1/1, 交错模式=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)640, height =(int)480,framerate=(fraction)30/1,multiview-mode=(string)mono,pixel-aspect-ratio=(fraction)1/1,interlace-mode=(string)progressive VCEncCheckCfg:无效
宽度
VCEncInit:错误无效配置
错误:来自元素/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:内部数据流错误。
附加调试信息:
../git/libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't想要预卷。
将管道设置为 NULL ...
释放管道 ...
如您所见,VPU 抱怨宽度,但使用 gstreamer 的详细打印应该可以正常工作。有什么办法可以进一步调试吗?该命令不在 imx 8 Gstreamer 用户指南中。