[FFmpeg-user] H.264 and RockChip MPP

Verachten Bruno gounthar at gmail.com
Thu Nov 14 23:01:43 EET 2019


Hi there,

I compiled the RockChip fork of ffmpeg because I wanted to use
hardware acceleration on one of their chips (RK3399).
For the time being, it looks like only the hardware accelerated
decoding is implemented. So I tried:
ffmpeg -benchmark -loglevel 48 -vcodec h264_rkmpp -i
bbb_sunflower_1080p_30fps_normal.mp4 -map 0:v:0 -f null -
and got at the end:
frame=19036 fps=237 q=-0.0 Lsize=N/A time=00:10:34.83 bitrate=N/A speed=7.91x
video:7585kB audio:0kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: unknown
Input file #0 (/media/linaro/0E9ACA2339F586E5/slides_rushes/bbb_sunflower_1080p_30fps_normal.mp4):
  Input stream #0:0 (video): 19036 packets read (237848132 bytes);
19036 frames decoded;
  Input stream #0:1 (audio): 21 packets read (10080 bytes);
  Input stream #0:2 (audio): 2 packets read (2560 bytes);
  Total: 19059 packets (237860772 bytes) demuxed
Output file #0 (pipe:):
  Output stream #0:0 (video): 19036 frames encoded; 19036 packets
muxed (7766688 bytes);
  Total: 19036 packets (7766688 bytes) muxed
mpp_thread: MPP_THREAD_STOPPING status set mThread 0xab44b8f0
mpp_dec: mpp_dec_parser_thread exit
mpp_dec: mpp_dec_parser_thread exit ok
mpp_thread: MPP_THREAD_STOPPING status set mThread 0xab44b9f8
mpp_dec: mpp_dec_hal_thread exit ok
bench: utime=10.101s
19036 frames successfully decoded, 0 decoding errors
bench: maxrss=93880kB
[AVIOContext @ 0xab3cd8a0] Statistics: 259311905 bytes read, 972 seeks

As I had read RockChip had made a PR to ffmpeg, I tried the latest
source from ffmpeg official repository, and to my surprise, I also got
the RockChip hardware accelerated decoding.

frame=19036 fps=234 q=-0.0 Lsize=N/A time=00:10:34.83 bitrate=N/A speed=7.79x
video:7585kB audio:0kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: unknown
Input file #0 (/media/linaro/0E9ACA2339F586E5/slides_rushes/bbb_sunflower_1080p_30fps_normal.mp4):
  Input stream #0:0 (video): 19036 packets read (237848132 bytes);
19036 frames decoded;
  Input stream #0:1 (audio): 21 packets read (10080 bytes);
  Input stream #0:2 (audio): 2 packets read (2560 bytes);
  Total: 19059 packets (237860772 bytes) demuxed
Output file #0 (pipe:):
  Output stream #0:0 (video): 19036 frames encoded; 19036 packets
muxed (7766688 bytes);
  Total: 19036 packets (7766688 bytes) muxed
mpp_thread: MPP_THREAD_STOPPING status set mThread 0xab149dd0
mpp_dec: mpp_dec_parser_thread exit
mpp_dec: mpp_dec_parser_thread exit ok
mpp_thread: MPP_THREAD_STOPPING status set mThread 0xab149ed8
mpp_dec: mpp_dec_hal_thread exit ok
bench: utime=9.628s stime=8.357s rtime=81.544s
19036 frames successfully decoded, 0 decoding errors
bench: maxrss=75008kB
[AVIOContext @ 0xab11b8b0] Statistics: 259311905 bytes read, 972 seeks

I suppose there are lots of other RockChip specific features that have
not made it yet into the official ffmpeg repository, but for the time
being, it looks like half of what I need is already there.
On the RockChip wiki, it is written that the hardware encoding should
be available Q4 2019 for ffmpeg, so I still have hope (if this work, I
could deploy lots of these machines in the company I work for). It
seems to be already available for gstreamer.
Is there anything going on on your side for the RockChip hardware encoding?

Thanks.
-- 
Bruno Verachten


More information about the ffmpeg-user mailing list