Firefly开源社区

标题: H264视频解码无法工作 [打印本页]

作者: lin04300119    时间: 2022-5-30 10:53
标题: H264视频解码无法工作
git clonehttps://github.com/rockchip-linux/mpp.git
cd  build/linux/aarch64
cmake ../../../
make  
准备好Tennis1080p.h264文件,
执行 :
sudo ./mpi_dec_test-i Tennis1080p.h264  -o 1080P_n.yuv -w1920 -h 1080 -t 7 -d 0 -x 0
【输出问题】:没打印信息,没有输出文件:然后dmesg输出如下
rk_vcodec:mpp_task_attach_fd:1679: can't import dma-buf 1
[ 1904.064617]rk_vcodec: mpp_translate_reg_address:1735: reg[128]: 0x00000001 fd 1 failed
[ 1904.064624]rk_vcodec: mpp_task_dump_mem_region:1909: --- dump mem region ---
[ 1904.064634]mpp_rkvdec2 fdc38100.rkvdec-core: no memory region mapped
[ 1904.064642]rk_vcodec: mpp_process_task_default:566: alloc_task failed.
[ 1904.064684]rk_vcodec: mpp_wait_result_default:826: session 000000004d9d2db2 pending listis empty!
[ 1904.064699]rk_vcodec: mpp_msgs_wait:1531: session 7 wait result ret -5
[ 1904.564840]mpp_dma_import_fd:197: dma_buf_get fd 1 failed
[ 1904.564873]rk_vcodec: mpp_task_attach_fd:1679: can't import dma-buf 1
[ 1904.564882]rk_vcodec: mpp_translate_reg_address:1735: reg[128]: 0x00000001 fd 1 failed
[ 1904.564889]rk_vcodec: mpp_task_dump_mem_region:1909: --- dump mem region ---
[ 1904.564901]mpp_rkvdec2 fdc38100.rkvdec-core: no memory region mapped
[ 1904.564910]rk_vcodec: mpp_process_task_default:566: alloc_task failed.
[ 1904.564953]rk_vcodec: mpp_wait_result_default:826: session 000000004d9d2db2 pending list
第二个问题:使用系统默认解码脚本
cd  /usr/local/bin
./h264dec.sh
mpp[6646]: mpp_info: mpp version: 8a85dc5d author: HermanChen   2022-03-14 [mpp_enc]: Fix stuck onreset async mode encoder
mpp[6646]: mpp_rt: NOT found ion allocator
mpp[6646]: mpp_rt: found drm allocator
mpp[6646]: mpp_info: mpp version: 8a85dc5d author: HermanChen   2022-03-14 [mpp_enc]: Fix stuck onreset async mode encoder
mpp[6646]: mpp_info: mpp version: 8a85dc5d author: HermanChen   2022-03-14 [mpp_enc]: Fix stuck onreset async mode encoder
mpp[6646]: mpp_info: mpp version: 8a85dc5d author: HermanChen   2022-03-14 [mpp_enc]: Fix stuck onreset async mode encoder
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: Could not initialise Xvoutput
Additional debug info:
xvimagesink.c(1996): gst_xv_image_sink_open ():/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
Could not open display (null)
Setting pipeline to NULL ...
Freeing pipeline ...
firefly@firefly:/usr/local/bin$
请问如果验证32路1080P解码能力,如果进行解码,系统是否有问题?

tchip_askquestions

rk3588 解码功能异常问题.zip

11.75 KB, 下载次数: 0, 下载积分: 灯泡 -1 , 经验 -1


作者: 板蓝根    时间: 2022-5-31 11:01
现在  Ubuntu 用的是 wayland 默认解码 脚本应该 要把 xvimagesink 改成 glimagesink 才可以。mpp 和  kernel 有对应关系,最好下载 SDK  用 sdk 的 external/mpp 开发,另外 mpi_dec_test 固件本身应该自带的,现在 log 都调用 syslog 保存在 /var/log/syslog 中了
作者: lin04300119    时间: 2022-6-1 11:38
编译方法有没有问题,我用sdk中的mpp在板子上编译后,还是无法解码:
firefly mpp[11506]: mpp_opt: setup:real node 18:22 info 11:11
Jun  1 03:28:46 firefly mpp[11506]: mpi_dec_utils: input file Tennis1080p.h264 size 10786528
Jun  1 03:28:46 firefly mpp[11506]: mpi_dec_utils: cmd parse result:
Jun  1 03:28:46 firefly mpp[11506]: mpi_dec_utils: input  file name: Tennis1080p.h264
Jun  1 03:28:46 firefly mpp[11506]: mpi_dec_utils: output file name: 1080P_n.yuv
Jun  1 03:28:46 firefly mpp[11506]: mpi_dec_utils: width      : 1920
Jun  1 03:28:46 firefly mpp[11506]: mpi_dec_utils: height     : 1080
Jun  1 03:28:46 firefly mpp[11506]: mpi_dec_utils: type       :    7
Jun  1 03:28:46 firefly mpp[11506]: mpi_dec_utils: max frames :    0
Jun  1 03:28:46 firefly mpp[11506]: mpi_dec_test: mpi_dec_test start
Jun  1 03:28:46 firefly mpp[11506]: mpp_info: mpp version: unknown mpp version for missing VCS info
Jun  1 03:28:46 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 mpi_dec_test decoder test start w 1920 h 1080 type 7
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode_get_frame get info changed found
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decoder require buffer w:h [1920:1080] stride [1920:1088] buf_size 4177920
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 0 err 1 discard 0
Jun  1 03:28:47 firefly kernel: [ 2314.594793] mpp_dma_import_fd:197: dma_buf_get fd 1 failed
Jun  1 03:28:47 firefly kernel: [ 2314.594819] rk_vcodec: mpp_task_attach_fd:1679: can't import dma-buf 1
Jun  1 03:28:47 firefly kernel: [ 2314.594827] rk_vcodec: mpp_translate_reg_address:1735: reg[128]: 0x00000001 fd 1 failed
Jun  1 03:28:47 firefly kernel: [ 2314.594834] rk_vcodec: mpp_task_dump_mem_region:1909: --- dump mem region ---
Jun  1 03:28:47 firefly kernel: [ 2314.594844] mpp_rkvdec2 fdc38100.rkvdec-core: no memory region mapped
Jun  1 03:28:47 firefly kernel: [ 2314.594851] rk_vcodec: mpp_process_task_default:566: alloc_task failed.
Jun  1 03:28:47 firefly kernel: [ 2314.594950] rk_vcodec: mpp_wait_result_default:826: session 000000009bae5dd2 pending list is empty!
Jun  1 03:28:47 firefly kernel: [ 2314.594957] rk_vcodec: mpp_msgs_wait:1531: session 17 wait result ret -5
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 1 err 1 discard 0
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 2 err 1 discard 0
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 3 err 1 discard 0
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 4 err 1 discard 0
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 5 err 1 discard 0
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 6 err 1 discard 0
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 7 err 1 discard 0
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 8 err 1 discard 0
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 9 err 1 discard 0
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 10 err 1 discard 0
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 11 err 1 discard 0
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 12 err 1 discard 0
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 13 err 1 discard 0
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 14 err 1 discard 0
Jun  1 03:28:47 firefly mpp[11506]: mpi_dec_test: 0x556a325a40 decode get frame 15 err 1 discard 0

作者: lin04300119    时间: 2022-6-1 11:46
板蓝根 发表于 2022-5-31 11:01
现在  Ubuntu 用的是 wayland 默认解码 脚本应该 要把 xvimagesink 改成 glimagesink 才可以。mpp 和  kern ...


Jun  1 03:28:47 firefly kernel: [ 2314.594793] mpp_dma_import_fd:197: dma_buf_get fd 1 failed
Jun  1 03:28:47 firefly kernel: [ 2314.594819] rk_vcodec: mpp_task_attach_fd:1679: can't import dma-buf 1
Jun  1 03:28:47 firefly kernel: [ 2314.594827] rk_vcodec: mpp_translate_reg_address:1735: reg[128]: 0x00000001 fd 1 failed
Jun  1 03:28:47 firefly kernel: [ 2314.594834] rk_vcodec: mpp_task_dump_mem_region:1909: --- dump mem region ---
Jun  1 03:28:47 firefly kernel: [ 2314.594844] mpp_rkvdec2 fdc38100.rkvdec-core: no memory region mapped

主要是报出如下错误:
Jun  1 03:28:47 firefly kernel: [ 2314.594851] rk_vcodec: mpp_process_task_default:566: alloc_task failed.
Jun  1 03:28:47 firefly kernel: [ 2314.594950] rk_vcodec: mpp_wait_result_default:826: session 000000009bae5dd2 pending list is empty!
Jun  1 03:28:47 firefly kernel: [ 2314.594957] rk_vcodec: mpp_msgs_wait:1531: session 17 wait result ret -5

作者: 板蓝根    时间: 2022-6-1 14:34
不编译,直接用 系统自带的可以吗?
作者: Ziven_zhou    时间: 2022-6-1 15:36
去掉 -d 0 -x 0
sudo ./mpi_dec_test-i Tennis1080p.h264  -o 1080P_n.yuv -w1920 -h 1080 -t 7

或者用
sudo ./mpi_dec_mt_test-i Tennis1080p.h264  -o 1080P_n.yuv -w1920 -h 1080 -t 7

我这边用
sudo ./mpi_dec_mt_test-i Tennis1080p.h264  -w1920 -h 1080 -t 7 -s 32
只解码不写 yuv文件 ,可以解码 32 路;





欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1