rockchip-linux / mpp

Media Process Platform (MPP) module
596 stars 172 forks source link

使用mpp的插件将视频编码成h264格式后播放出现绿屏或红屏 #554

Closed LazyDog-pj closed 7 months ago

LazyDog-pj commented 8 months ago

本人使用rk3588的板卡,将PC的HDMI输出接到板子的HDMI IN口,之后使用以下命令进行推流: gst-launch-1.0 -e -v v4l2src device=/dev/video0 io-mode=4 ! videorate max-rate=30 ! queue ! mpph265enc qp-max=30 qp-max-step=2 qp-min=26 max-reenc=1 ! h265parse ! rtph265pay ! udpsink host=192.168.10.235 port=8080 sync=false 在PC端,使用以下命令进行显示: gst-launch-1.0 udpsrc port=8080 buffer-size=60000000 caps="application/x-rtp, media=video, payload=96" ! rtpjitterbuffer latency=1000 ! rtph265depay ! h265parse ! video/x-h265, latency-mode=false ! avdec_h265 max-threads=8 ! queue ! videoconvert ! fpsdisplaysink text-overlay=false video-sink="glimagesink" sync=false -v 但结果显示的是红屏幕,如果转化为NV12,则显示的是绿屏, image

我猜想是因为格式工具有bug导致的,具体是什么原因,请问有人知道吗?会不会是mpp插件本身也有bug。 目前项目卡在这里了,想知道是哪里的问题,而且我使用 gst-launch-1.0 -v v4l2src device=/dev/video0 io-mode=4 ! videoconvert ! autovideosink 命令后能正常播放输入的视频

HermanChen commented 8 months ago

分段分析,先看下编码输出是不是正常,再看解码输入码流是不是正常,再看解码图像存文件是不是正常

LazyDog-pj commented 7 months ago

这里说下如何解决的,我直接将上述命令前面加上sudo后,上面绿屏的问题就消失了,估计是gstreamer的一些插件调用的类库是在root权限下安装的,调用失败后,无法完成任务就直接输出个默认的绿屏。