JH989876525 发表于 2023-11-21 15:09:49

Ubuntu 系統下 Gstreamer H.264 硬體解碼 hang 住

在 Ubuntu 系統下使用 Gstreamer 調用 plug-in : avdec_h264_rkmpp 進行 H.264 硬體解碼會 hang 住不動
gst-launch-1.0 -vvv \
filesrc location="/home/firefly/1k30p.h264" \
! h264parse ! avdec_h264_rkmpp debug-mv=true ! videoconvert \
! fpsdisplaysink video-sink="kmssink plane-id=94" \
text-overlay=false sync=false
同樣以plug-in : avdec_h264 進行軟解 mp4 或 H264 raw data 可以正常運行顯示, cmd 如下 :

gst-launch-1.0 -vvv \
filesrc location="/home/firefly/1k30p.h264" \
! h264parse ! avdec_h264 ! videoconvert \
! fpsdisplaysink video-sink="kmssink plane-id=94" \
text-overlay=false sync=false

gst-launch-1.0 -vvv \
filesrc location="/home/firefly/1k30p.mp4" ! qtdemux \
! h264parse ! avdec_h264 ! videoconvert \
! fpsdisplaysink video-sink="kmssink plane-id=94" \
text-overlay=false sync=false
使用 avdec_h264_rkmpp 後 hang 住的 log 如下 :
firefly@firefly:~$ gst-launch-1.0 -vvv \
> filesrc location="/home/firefly/1k30p.h264" \
> ! h264parse ! avdec_h264_rkmpp debug-mv=true ! videoconvert \
> ! fpsdisplaysink video-sink="kmssink plane-id=94" \
> text-overlay=false sync=false
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: display-width = 1920
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: display-height = 1080
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: sync = false
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, pixel-aspect-ratio=(fraction)1/1, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true, stream-format=(string)avc, alignment=(string)au, profile=(string)high, level=(string)4, codec_data=(buffer)01640028ffe1001b67640028acd940780227e5c044000003000400000300f03c60c65801000668ebe3cb22c0
Redistribute latency...
/GstPipeline:pipeline0/avdec_h264_rkmpp:avdec_h264_rkmpp0.GstPad:sink: caps = video/x-h264, pixel-aspect-ratio=(fraction)1/1, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true, stream-format=(string)avc, alignment=(string)au, profile=(string)high, level=(string)4, codec_data=(buffer)01640028ffe1001b67640028acd940780227e5c044000003000400000300f03c60c65801000668ebe3cb22c0

想請教各位大佬 是我在 gstreamer 組成上有遺漏什麼造成 cmd hang 住?


页: [1]
查看完整版本: Ubuntu 系統下 Gstreamer H.264 硬體解碼 hang 住