I’m trying to build ffmpeg to support hw decode on a Rock Pi 4c + with legacy Debian vendor recommended OS.
uname -r
4.4.194-11-rk3399-rockchip-g1bb08d49cc40
I cloned this repo, installed rockchip mpp from the official repo and builded this ffmpeg with enable-rkmpp but it does not work.
Do I missed something?
git clone -b release https://github.com/rockchip-linux/mpp.git
sudo cmake -DRKPLATFORM=ON -DHAVE_DRM=ON
sudo make install -j6
git clone https://github.com/JeffyCN/FFmpeg
cd FFmpeg
sudo ./configure --enable-rkmpp --enable-librga --enable-version3 --enable-libdrm
sudo make
wget https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/1080/Big_Buck_Bunny_1080_10s_30MB.mp4
sudo ./ffmpeg -benchmark -loglevel debug -hwaccel drm -hwaccel_device /dev/dri/renderD128 -c:v h264_rkmpp -i Big_Buck_Bunny_1080_10s_30MB.mp4 -t 15 -pix_fmt yuv420p -f rawvideo out4.yu
But It does not work, many cur_dts is invalid errors and “Timeout getting decoded frame”.
Has anyone found a way to compile ffmpeg to support h264_rkmpp hardware decode?
Successfully opened the file.
Parsing a group of options: output url out4.yu.
Applying option t (record or transcode "duration" seconds of audio/video) with argument 15.
Applying option pix_fmt (set pixel format) with argument yuv420p.
Applying option f (force format) with argument rawvideo.
Successfully parsed a group of options.
Opening an output file: out4.yu.
File 'out4.yu' already exists. Overwrite? [y/N] y
[file @ 0x55b2da90f0] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
[AVHWDeviceContext @ 0x55b2bb0990] Opened DRM device /dev/dri/renderD128: driver rockchip version 1.0.0.
[h264_rkmpp @ 0x55b2bda7d0] Format yuv420p chosen by get_format().
[h264_rkmpp @ 0x55b2bda7d0] Initializing RKMPP decoder.
[h264_rkmpp @ 0x55b2bda7d0] RKMPP decoder initialized successfully.
Stream mapping:
Stream #0:0 -> #0:0 (h264 (h264_rkmpp) -> rawvideo (native))
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264_rkmpp @ 0x55b2bda7d0] Wrote 1157871 bytes to decoder
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
Last message repeated 1 times
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264_rkmpp @ 0x55b2bda7d0] Wrote 312947 bytes to decoder
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
Last message repeated 1 times
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264_rkmpp @ 0x55b2bda7d0] Wrote 46490 bytes to decoder
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
Last message repeated 1 times
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264_rkmpp @ 0x55b2bda7d0] Wrote 9841 bytes to decoder
[h264_rkmpp @ 0x55b2bda7d0] Decoder noticed an info change (1920x1080), format=0
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.
[h264_rkmpp @ 0x55b2bda7d0] Buffer full
[h264_rkmpp @ 0x55b2bda7d0] Timeout getting decoded frame.