Hi NXP,
We used the mxc_v4l2_vpu_enc.out tool to decode successfully, but the MD5 check failed!
mxc_v4l2_vpu_enc.out decode successfully:
/unit_tests/V4L2_VPU/mxc_v4l2_vpu_enc.out \
parser --key 0 --name sp2_bt_b.h264 --fmt h264 \
decoder --key 1 --source 0 \
convert --key 2 --source 1 --fmt I420 \
ofile --key 3 --source 2 --name output.dec.yuv
MD5 failed:
The following videos all have the same problem:
sp2_bt_b.zip
SP1_BT_A.zip
MR4_TANDBERG_C.zip
MR5_TANDBERG_C.zip
FM1_FT_E.zip
CVFC1_Sony_C.zip
h. 264 video source website: https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/AVCv1/
Software version: Yocto Project LF5.15.32_2.0.0
Could you please help me see the cause of the problem? Thank you very much!
All log files are attached:
Solved! Go to Solution.
update: the next firmware would fix this issue, you can use MR5_TANDBERG_C with next firmware, would be release in the Q1 of 2025
Hi NXP,
I found that the profile for SP1_BT_A.zip and sp2_bt_b.zip are Extended profile. Is this SOC not supported?
But MR5_TANDBERG_C.zip, MR5_TANDBERG_C.zip, FM1_FT_E.zip are Baseline profile. Is SOC supported?
And CVFC1_Sony_C.zip is the Constrained Baseline Profile, which is supported by this SOC.
The configuration is shown in the following figure:
your title is imx8x, but refer to the log, you tested on the imx8qm,so what processor do you use?
refer to the I.MX8QM reference manual,
the VPU has two H.264 AVC Encoders which Constrained Baseline, Main and High profile @1080p30.
let me install this bsp and reproduce this then tell you the result later
the below commands were tested by us, do you mind trying again?
unit_tests/V4L2_VPU/mxc_v4l2_vpu_enc.out \ ifile --key 0 --name test.yuv --fmt I420 --size 1920 1080 \ convert --key 1 --source 0 --fmt nv12 \ encoder --key 2 --source 1 --size 1920 1080 --framerate 30 \ ofile --key 3 --source 2 --name test_.264 unit_tests/V4L2_VPU/mxc_v4l2_vpu_enc.out \ ifile --key 0 --name test.yuv --fmt I420 --size 1920 1080 \ convert --key 1 --source 0 --fmt nv12 \ encoder --key 2 --source 1 --crop 960 540 640 480 --size 640 480 --framerate 30 \ ofile --key 3 --source 2 --name test_crop.264
Hi @joanxie
I have a feeling you misunderstood what I meant. I need to convert H.264 video to YUV video.
My test steps are as follows:
1. Download MR5_TANDBERG_C.zip and unzip it
2. cd MR5_TANDBERG_C directory
3. convert H.264 to YUV:
/unit_tests/V4L2_VPU/mxc_v4l2_vpu_enc.out \
parser --key 0 --name MR5_TANDBERG_C.264 --fmt h264 \
decoder --key 1 --source 0 \
convert --key 2 --source 1 --fmt I420 \
ofile --key 3 --source 2 --name output.dec.yuv
4. The md5sum command compares the MD5 checksum:
The check value of the YUV video is the same after the correct conversion. However, the MD5 checksum is different now.
We can use ffmpeg to achieve the conversion, the command:
ffmpeg -i MR5_TANDBERG_C.264-pix_fmt yuv420p output.yuv
So we want to find out why the VPU failed to convert this video. Thank you very much!
ok, I know what you mean, I just send the command example to you for reference, so could you open the output.dec.yuv correctly? my understanding is that you can open this yuv file correctly, but the MD5 checksum is different, then you use ffmpeg to convert, the MD5 checksum is same, right? if yes, do you mind using decode unit test to test again?
case 1: decode h264 stream to test.yuv ./mxc_v4l2_vpu_dec.out ifile decode.264 ifmt 1 ofmt 1 ofile test.yuv
besides of testing by decode, do you mind upgrading the bsp to the latest version? must you use 5.15 bsp version?
Hi @joanxie
We use Linux 6.6.36_2.1.0 firmware. The conversion of CVFC1_Sony_C.zip was successful. However, the conversion of MR5_TANDBERG_C.zip, MR5_TANDBERG_C.zip, FM1_FT_E.zip still fails. But MR5_TANDBERG_C.zip, MR5_TANDBERG_C.zip, FM1_FT_E.zip are Baseline profile. Is SOC supported?
/unit_tests/V4L2_VPU/mxc_v4l2_vpu_enc.out \
parser --key 0 --name CVFC1_Sony_C.jsv --fmt h264 \
decoder --key 1 --source 0 \
convert --key 2 --source 1 --fmt I420 \
ofile --key 3 --source 2 --name output.dec.yuv
confirmed that this issue isn't related to the profile, this is current vpu firmware couldn't support this streaming, because recorder depth of this streaming is bigger than the max size which is calculated by the vpu firmware, so the result md5sum isn't correct, you can use MR3_TANDBERG_B
Hi @joanxie,
Thank you for your reply!So is there a solution to this?
update: the next firmware would fix this issue, you can use MR5_TANDBERG_C with next firmware, would be release in the Q1 of 2025
no solution for this yet even you upgrade to the latest bsp, you can consider current bsp couldn't support this
Hi @joanxie ,
Ok, I see. Thank you for your reply!