Jump to content

HW acceleration (decode + encode) with RK3568?


Recommended Posts

Posted
49 minutes ago, danergo said:

So now, I can do the build on this architecture and see the results myself. But in case this can really do the proper transcoding (and rescaling) please describe what is exactly needed on Debian to replace stock ffmpeg with my own version?

When you have this working, we can talk about it. We would integrate the changes in our ffmpeg. But it's pointless to spend a single thought on it before you have it working in a way that it really provides any benefit (performance-wise).

Posted (edited)

@Luke    @softworkz     any update on this feature? there are couple of solutions (e.g. frigate, jellyfin, redroid) that shows  hw acceleration works on rk3588. how can we support to bring this topic forward? thanks, jan

 

 

Edited by janmemby
Posted
On 5/28/2024 at 1:10 AM, chj915 said:

The Jellyfin 10.9 has included a HWA support for Rockchip devices. I have verified the setup on my Khadas Edge 2 device, it can perform hardware transcoding for HEVC (H.265) videos (CPU usage is low 😀).

Can you show an ffmpeg log where it's transcoding a 4k HEVC video to H264 1080 with subtitles overlay? 

Posted

You could also try to install Android OS and Emby Server Android. I'm not sure though, whether their Android image has rivers for video hwa.

Posted (edited)
6 hours ago, softworkz said:

You could also try to install Android OS and Emby Server Android. I'm not sure though, whether their Android image has rivers for video hwa.

that was a good hint, meanwhile i did some interesting workaround that just proves again that hw transcoding is feasible on rk3588.

i installed docker container redroid that basically runs android with gpu acceleration on my ubuntu. than installed emby server on this android and enabled hw transcoding. and voila, it is working, see few screenshots and transcoding log. 

of course, it is not preferred way to run, but at least to get an inspiration

IMG_6195.png

ffmpeg-transcode-faa8bdd9-17ae-47df-a25e-430a0e3dd6b5_1.txt

Edited by janmemby
Posted

Thanks for the log. It confirms that it can work and that there is a driver for video hwa. But the source video is 492x250. A 4k video has 8 times the horizontal and 8 times the vertical resolution. This means that the amount of data to process is 64 times more than in this example. The transcoding speed is around 25 fps (same like the video), so that's already the absolute minimum in order to do live transcoding. 

You'll have to try with Android installed on the device directly, but I doubt it will be so much better that it can handle 4k transcoding. 

Posted

@softworkz: yesterday I have finally had some time with this.

Basically what I had to do is simply clone this repo:

https://github.com/nyanmisaka/ffmpeg-rockchip

And according to its wiki, I needed to build 2 libraries first: rkmpp and rkrga.

Then I built ffmpeg with the required flags shown in this repo's wiki.

I have tried a full hw transcoding pipeline: 4K (24fps) to 1080p. RK3568 did a pretty decent 1.8x transcoding speed (avg at the end).

So now I tthink we can have that conversation, as it seem it worth (at least for me) integrating this to Emby.

 

Cheers

Posted

Can you please post the ffmpeg log?

Posted

BTW, I know this repo. It's still being declared as experimental and there are lots of issues reported.

Posted (edited)

Can you try to transcode Samsong Wonderland TWO 4k demo? (from https://4kmedia.org/)

And also watch CPU usage please.

Edited by softworkz
Posted
25 minutes ago, softworkz said:

Can you try to transcode Samsong Wonderland TWO 4k demo? (from https://4kmedia.org/)

And also watch CPU usage please.

Hi!

Are you referring to "Samsung Wonderland TWO HDR" (https://drive.google.com/uc?export=download&id=1yr8sc5SluFIxI3mrlghT47IyMOUBFOAf)?

Please let me know, and I will provide the logs in the next couple of days (hopefully tomorrow I will have some time).

 

Thank you!

Posted
1 hour ago, danergo said:

Are you referring to "Samsung Wonderland TWO HDR"

Yes

Posted

Here you go:

(I renamed the testfile to s.mp4)

Quote

sudo ffmpeg -hwaccel rkmpp -hwaccel_output_format drm_prime -afbc rga -i s.mp4 -c:a copy -strict -2
-vf scale_rkrga=w=1920:h=1080:format=nv12:afbc=1 -c:v h264_rkmpp -rc_mode VBR -b:v 6M -maxrate 6M -bufsize 12M -profile:v high -g
:v 120 -y test.mp4
ffmpeg version 8164ff7 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr --enable-gpl --enable-version3 --enable-libdrm --enable-rkmpp --enable-rkrga
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
[mpegts @ 0x556cdde010] start time for stream 1 is not set in estimate_timings_from_pts
[mpegts @ 0x556cdde010] stream 1 : no TS found at start of file, duration not set
[mpegts @ 0x556cdde010] Could not find codec parameters for stream 1 (Audio: aac ([15][0][0][0] / 0x000F), 0 channels): unspecifi
ed sample format
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Input #0, mpegts, from 's.mp4':
  Duration: 00:02:09.71, start: 1.166822, bitrate: 51871 kb/s
  Program 1
  Stream #0:0[0x101]: Video: hevc (Main 10) ([36][0][0][0] / 0x0024), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR
1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn
  Stream #0:1[0x102](und): Audio: aac ([15][0][0][0] / 0x000F), 0 channels
rga_api version 1.10.0_[8]
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (hevc_rkmpp) -> h264 (h264_rkmpp))
Press [q] to stop, [?] for help
[Parsed_scale_rkrga_0 @ 0x556ce14480] Output format 'nv12' with AFBC modifier is not supported by RGA2
Output #0, mp4, to 'test.mp4':
  Metadata:
    encoder         : Lavf60.16.100
  Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), drm_prime(tv, bt2020nc/bt2020/smpte2084, progressive), 1920x1080 [SAR 1:1
DAR 16:9], q=2-31, 6000 kb/s, 23.98 fps, 24k tbn
    Metadata:
      encoder         : Lavc60.31.102 h264_rkmpp
[out#0/mp4 @ 0x556cde4bc0] video:88997kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.016316%
frame= 3110 fps= 46 q=-0.0 Lsize=   89011kB time=00:02:09.67 bitrate=5623.3kbits/s speed=1.92x

As you can see, overall average speed is pretty impressive.

Average CPU usage (by htop) is around 20-25%.

 

What shall be the next step?

Posted
1 hour ago, danergo said:

What shall be the next step?

Transcoding the file I mentioned above.

Also please add -loglevel v and post the full log from start to end. Thanks.

Posted

Alright, please see it below (I had to use -loglevel verbose):

(s.mp4 is the original Samsung testfile you've asked)

Quote

ffmpeg -loglevel verbose -hwaccel rkmpp -hwaccel_output_format drm_prime -afbc rga -i s.mp4 -c:
a copy -strict -2 -vf scale_rkrga=w=1920:h=1080:format=nv12:afbc=1 -c:v h264_rkmpp -rc_mode VBR -b:v 6M -maxrate 6M -bufsize 12M
-profile:v high -g:v 120 -y test.mp4
ffmpeg version 8164ff7 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr --enable-gpl --enable-version3 --enable-libdrm --enable-rkmpp --enable-rkrga
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
Routing option strict to both codec and muxer layer
[mpegts @ 0x558f266030] start time for stream 1 is not set in estimate_timings_from_pts
[mpegts @ 0x558f266030] stream 1 : no TS found at start of file, duration not set
[mpegts @ 0x558f266030] Could not find codec parameters for stream 1 (Audio: aac ([15][0][0][0] / 0x000F), 0 channels): unspecifi
ed sample format
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Selecting decoder 'hevc_rkmpp' because of requested hwaccel method rkmpp
Input #0, mpegts, from 's.mp4':
  Duration: 00:02:09.71, start: 1.166822, bitrate: 51871 kb/s
  Program 1
  Stream #0:0[0x101]: Video: hevc (Main 10), 1 reference frame ([36][0][0][0] / 0x0024), yuv420p10le(tv, bt2020nc/bt2020/smpte208
4, left), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn
  Stream #0:1[0x102](und): Audio: aac ([15][0][0][0] / 0x000F), 0 channels
[out#0/mp4 @ 0x558f26cbe0] No explicit maps, mapping streams automatically...
[vost#0:0/h264_rkmpp @ 0x558f3427c0] Created video stream from input stream 0:0
[hevc_mp4toannexb @ 0x558f2ada90] The input looks like it is Annex B already
rga_api version 1.10.0_[8]
[hevc_rkmpp @ 0x558f2ae520] AFBC is requested without capable RGA, ignoring
[hevc_rkmpp @ 0x558f2ae520] Picked up an existing RKMPP hardware device
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (hevc_rkmpp) -> h264 (h264_rkmpp))
Press [q] to stop, [?] for help
[hevc_rkmpp @ 0x558f2ae520] Noticed an info change
[hevc_rkmpp @ 0x558f2ae520] Decoder options: deint=true afbc=0 fast_parse=true buf_mode=0
[hevc_rkmpp @ 0x558f2ae520] Configured with size: 3840x2160 | pix_fmt: drm_prime | sw_pix_fmt: nv15
[graph 0 input from stream 0:0 @ 0x558f2c6690] w:3840 h:2160 pixfmt:drm_prime tb:1/90000 fr:24000/1001 sar:1/1
[Parsed_scale_rkrga_0 @ 0x558f29c4a0] w:3840 h:2160 fmt:nv15 -> w:1920 h:1080 fmt:nv12
[Parsed_scale_rkrga_0 @ 0x558f29c4a0] Output format 'nv12' with AFBC modifier is not supported by RGA2
[h264_rkmpp @ 0x558f29bc30] Using input frames context (format drm_prime) with h264_rkmpp encoder.
[h264_rkmpp @ 0x558f29bc30] Rate Control mode is set to VBR
[h264_rkmpp @ 0x558f29bc30] Bitrate Target/Min/Max is set to 6000000/375000/6000000
[h264_rkmpp @ 0x558f29bc30] Stats time is set to 2
[h264_rkmpp @ 0x558f29bc30] QP Init/Max/Min/Max_I/Min_I is set to 26/48/0/48/0
[h264_rkmpp @ 0x558f29bc30] Profile is set to HIGH
[h264_rkmpp @ 0x558f29bc30] 8x8 Transform is enabled
[h264_rkmpp @ 0x558f29bc30] Level is set to 0
[h264_rkmpp @ 0x558f29bc30] Coder is set to CABAC
Output #0, mp4, to 'test.mp4':
  Metadata:
    encoder         : Lavf60.16.100
  Stream #0:0: Video: h264 (High), 1 reference frame (avc1 / 0x31637661), drm_prime(tv, bt2020nc/bt2020/smpte2084, progressive, l
eft), 1920x1080 (0x0) [SAR 1:1 DAR 16:9], q=2-31, 6000 kb/s, 23.98 fps, 24k tbn
    Metadata:
      encoder         : Lavc60.31.102 h264_rkmpp
[h264_rkmpp @ 0x558f29bc30] Configured with size: 1920x1080 | pix_fmt: drm_prime | sw_pix_fmt: nv12
[in#0/mpegts @ 0x558f265f10] EOF while reading input2:08.33 bitrate=5670.3kbits/s speed=1.72x
[in#0/mpegts @ 0x558f265f10] Terminating demuxer thread
[vist#0:0/hevc @ 0x558f26c6a0] Decoder thread received EOF packette=5621.0kbits/s speed=1.73x
[vist#0:0/hevc @ 0x558f26c6a0] Decoder returned EOF, finishing
[vist#0:0/hevc @ 0x558f26c6a0] Terminating decoder thread
No more output streams to write to, finishing.
[out#0/mp4 @ 0x558f26cbe0] All streams finished
[out#0/mp4 @ 0x558f26cbe0] Terminating muxer thread
[AVIOContext @ 0x558f2c5e60] Statistics: 91147594 bytes written, 2 seeks, 351 writeouts
[out#0/mp4 @ 0x558f26cbe0] Output file #0 (test.mp4):
[out#0/mp4 @ 0x558f26cbe0]   Output stream #0:0 (video): 3110 frames encoded; 3110 packets muxed (91132721 bytes);
[out#0/mp4 @ 0x558f26cbe0]   Total: 3110 packets (91132721 bytes) muxed
[out#0/mp4 @ 0x558f26cbe0] video:88997kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.016316%
frame= 3110 fps= 41 q=-0.0 Lsize=   89011kB time=00:02:09.67 bitrate=5623.3kbits/s speed=1.73x
[in#0/mpegts @ 0x558f265f10] Input file #0 (s.mp4):
[in#0/mpegts @ 0x558f265f10]   Input stream #0:0 (video): 3110 packets read (810703657 bytes); 3110 frames decoded; 0 decode erro
rs;
[in#0/mpegts @ 0x558f265f10]   Total: 3110 packets (810703657 bytes) demuxed
[AVIOContext @ 0x558f26e680] Statistics: 871715040 bytes read, 8 seeks

Cheers and thank you!

Posted

Thanks for the log. It looks to be feasible. Probably it won't suffice for the Samsung Dubai sample (on the same site, you can try), but even Xbox can't play it without stuttering, so that's not a KO criterium.

How does the result look like, did you try to play it (on a PC)?

Can you try with tone mapping? (there's a link to an ffmpeg log from which you might be able to adapt the command line: https://github.com/nyanmisaka/ffmpeg-rockchip/issues/98)

Posted

Hi!

I rechecked with Dubai ts (s2.mp4), and it almost reached 2x, please see the full log here:

Quote

$ ffmpeg -loglevel verbose -hwaccel rkmpp -hwaccel_output_format drm_prime -afbc rga -i S2.mp4 -c
:a copy -strict -2 -vf scale_rkrga=w=1920:h=1080:format=nv12:afbc=1 -c:v h264_rkmpp -rc_mode VBR -b:v 6M -maxrate 6M -bufsize 12M
 -profile:v high -g:v 120 -y test2.mp4
ffmpeg version 8164ff7 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr --enable-gpl --enable-version3 --enable-libdrm --enable-rkmpp --enable-rkrga
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
Routing option strict to both codec and muxer layer
[mpegts @ 0x5598448030] start time for stream 1 is not set in estimate_timings_from_pts
[mpegts @ 0x5598448030] stream 1 : no TS found at start of file, duration not set
[mpegts @ 0x5598448030] Could not find codec parameters for stream 1 (Audio: aac ([15][0][0][0] / 0x000F), 0 channels): unspecifi
ed sample format
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Selecting decoder 'hevc_rkmpp' because of requested hwaccel method rkmpp
Input #0, mpegts, from 'S2.mp4':
  Duration: 00:01:46.19, start: 1.083411, bitrate: 51815 kb/s
  Program 1
  Stream #0:0[0x101]: Video: hevc (Main 10), 1 reference frame ([36][0][0][0] / 0x0024), yuv420p10le(tv, bt709, left), 3840x2160
[SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn
  Stream #0:1[0x102](und): Audio: aac ([15][0][0][0] / 0x000F), 0 channels
[out#0/mp4 @ 0x559844ebe0] No explicit maps, mapping streams automatically...
[vost#0:0/h264_rkmpp @ 0x559847d760] Created video stream from input stream 0:0
[hevc_mp4toannexb @ 0x5598490ca0] The input looks like it is Annex B already
rga_api version 1.10.0_[8]
[hevc_rkmpp @ 0x55984a2290] AFBC is requested without capable RGA, ignoring
[hevc_rkmpp @ 0x55984a2290] Picked up an existing RKMPP hardware device
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (hevc_rkmpp) -> h264 (h264_rkmpp))
Press [q] to stop, [?] for help
[hevc_rkmpp @ 0x55984a2290] Noticed an info change
[hevc_rkmpp @ 0x55984a2290] Decoder options: deint=true afbc=0 fast_parse=true buf_mode=0
[hevc_rkmpp @ 0x55984a2290] Configured with size: 3840x2160 | pix_fmt: drm_prime | sw_pix_fmt: nv15
[graph 0 input from stream 0:0 @ 0x55984abaa0] w:3840 h:2160 pixfmt:drm_prime tb:1/90000 fr:24000/1001 sar:1/1
[Parsed_scale_rkrga_0 @ 0x55984501a0] w:3840 h:2160 fmt:nv15 -> w:1920 h:1080 fmt:nv12
[Parsed_scale_rkrga_0 @ 0x55984501a0] Output format 'nv12' with AFBC modifier is not supported by RGA2
[h264_rkmpp @ 0x559844f8c0] Using input frames context (format drm_prime) with h264_rkmpp encoder.
[h264_rkmpp @ 0x559844f8c0] Rate Control mode is set to VBR
[h264_rkmpp @ 0x559844f8c0] Bitrate Target/Min/Max is set to 6000000/375000/6000000
[h264_rkmpp @ 0x559844f8c0] Stats time is set to 2
[h264_rkmpp @ 0x559844f8c0] QP Init/Max/Min/Max_I/Min_I is set to 26/48/0/48/0
[h264_rkmpp @ 0x559844f8c0] Profile is set to HIGH
[h264_rkmpp @ 0x559844f8c0] 8x8 Transform is enabled
[h264_rkmpp @ 0x559844f8c0] Level is set to 0
[h264_rkmpp @ 0x559844f8c0] Coder is set to CABAC
Output #0, mp4, to 'test2.mp4':
  Metadata:
    encoder         : Lavf60.16.100
  Stream #0:0: Video: h264 (High), 1 reference frame (avc1 / 0x31637661), drm_prime(tv, bt709, progressive, left), 1920x1080 (0x0
) [SAR 1:1 DAR 16:9], q=2-31, 6000 kb/s, 23.98 fps, 24k tbn
    Metadata:
      encoder         : Lavc60.31.102 h264_rkmpp
[h264_rkmpp @ 0x559844f8c0] Configured with size: 1920x1080 | pix_fmt: drm_prime | sw_pix_fmt: nv12
[in#0/mpegts @ 0x5598447f10] EOF while reading input1:45.02 bitrate=5491.4kbits/s speed=1.92x
[in#0/mpegts @ 0x5598447f10] Terminating demuxer thread
[vist#0:0/hevc @ 0x559844e6a0] Decoder thread received EOF packet
[vist#0:0/hevc @ 0x559844e6a0] Decoder returned EOF, finishing
[vist#0:0/hevc @ 0x559844e6a0] Terminating decoder thread
No more output streams to write to, finishing.e=00:01:46.14 bitrate=5452.9kbits/s speed=1.92x
[out#0/mp4 @ 0x559844ebe0] All streams finished
[out#0/mp4 @ 0x559844ebe0] Terminating muxer thread
[AVIOContext @ 0x55984aae30] Statistics: 72464685 bytes written, 2 seeks, 280 writeouts
[out#0/mp4 @ 0x559844ebe0] Output file #0 (test2.mp4):
[out#0/mp4 @ 0x559844ebe0]   Output stream #0:0 (video): 2546 frames encoded; 2546 packets muxed (72452436 bytes);
[out#0/mp4 @ 0x559844ebe0]   Total: 2546 packets (72452436 bytes) muxed
[out#0/mp4 @ 0x559844ebe0] video:70754kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.016901%
frame= 2546 fps= 46 q=-0.0 Lsize=   70766kB time=00:01:46.14 bitrate=5461.4kbits/s speed=1.92x
[in#0/mpegts @ 0x5598447f10] Input file #0 (S2.mp4):
[in#0/mpegts @ 0x5598447f10]   Input stream #0:0 (video): 2546 packets read (663682157 bytes); 2546 frames decoded; 0 decode erro
rs;
[in#0/mpegts @ 0x5598447f10]   Total: 2546 packets (663682157 bytes) demuxed
[AVIOContext @ 0x5598450680] Statistics: 717528656 bytes read, 8 seeks

Regarding tone mapping, I couldn't find out what would be needed to check (I only have my phone with me).

Note: I also checked the Wonderland transcoded sample on a large TV and it looks almost as good as original (tv is fhd).

 

Cheers and thanks!

Posted

 

4 hours ago, danergo said:

Regarding tone mapping, I couldn't find out what would be needed to check

Just go to the issue link I posted, there's a link to an ffmpeg log from which you might be able to adapt the command line: https://github.com/nyanmisaka/ffmpeg-rockchip/issues/98)

 

4 hours ago, danergo said:

Note: I also checked the Wonderland transcoded sample on a large TV and it looks almost as good as original (tv is fhd).

But not tone mapped, right? Have you seen the original on a`n HDR display?

 

Posted
On 9/3/2024 at 12:52 AM, softworkz said:

A 4k video has 8 times the horizontal and 8 times the vertical resolution. This means that the amount of data to process is 64 times more than in this example. The transcoding speed is around 25 fps (same like the video), so that's already the absolute minimum in order to do live transcoding. 

Thought I'd just jump in here, currently running Jellyfin on Ubuntu 22.04 in Docker on a Rock5C Lite (RK3582 converted to RK3588S2 by unlocking the disabled cores & GPU) with HWA using the VPU and I'm transcoding Interstellar from 4K HEVC at 68 FPS with subs on.

FFMPEG CPU usage looks to be averaging 20-30% would love to see some more work here on the RK3588 as this thing looks like an absolute powerhouse for the price & power usage.
I think I've attached the correct FFMPEG logs however if it's not, just point me in the right direction & I'm happy to get whatever.

jellyfin-rk3588.png

jellyfin-rk3588 htop.png

FFmpeg.Transcode-2024-09-07_16-06-48_65b250eabcbe17a66b42759ae8b8a72f_4fbb6401.log.txt

  • Like 1
Posted
On 9/7/2024 at 3:08 PM, softworkz said:

 

Just go to the issue link I posted, there's a link to an ffmpeg log from which you might be able to adapt the command line: https://github.com/nyanmisaka/ffmpeg-rockchip/issues/98)

 

But not tone mapped, right? Have you seen the original on a`n HDR display?

 

Hi!

I was travelling. Back to the status:

The issue you have linked (at least for me) doesn't contains any ffmpeg log (only a "search" in github with ffmpeg-related keyword, and a simple commit).

Note: I haven't checked with a HDR display, but on a simple one, all testfiles were perfect (both original and transcoded versions).

 

How shall we move on?

 

Cheers, thanks!

Posted

Thanks.
 

Are you referring to this parameter:

-vf "setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,scale_rkrga=format=p010,hwmap=derive_device=opencl:mode=read,tonemap_opencl=format=nv12:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0:tradeoff=1,hwmap=derive_device=rkmpp:mode=write:reverse=1,format=drm_prime"

Mine was previously:

-vf scale_rkrga=w=1920:h=1080:format=nv12:afbc=1

How shall I test this for you? Like this?

-vf "setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,scale_rkrga=w=1920:h=1080:format=nv12:afbc=1,hwmap=derive_device=opencl:mode=read,tonemap_opencl=format=nv12:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0:tradeoff=1,hwmap=derive_device=rkmpp:mode=write:reverse=1,format=drm_prime"

 

Thank you

Posted

Yes, I meant the filter chain with OpenCL tone mapping

Posted

Okay, well, this one is not working.

[AVFilterGraph @ 0x5571289dd0] No such filter: 'tonemap_opencl'
[vost#0:0/h264_rkmpp @ 0x55712918c0] Error initializing a simple filtergraph

I don't really need tonemap (as of now), so would be happy to move on without hardware tonemap.

Posted
1 hour ago, danergo said:
No such filter: 'tonemap_opencl'

Right, that requires compiling with opencl support

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...