|
【Linux】
Ubuntu 系統下 Gstreamer H.264 硬體解碼 hang 住
发表于 2023-11-21 15:09:49
浏览:2945
|
回复:0
打印
只看该作者
[复制链接]
楼主
问题描述及复现步骤:
在 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 住?
|
|