[Cin] cingg hevc_vaapi rendering on Arc A750 gpu

Andrew Randrianasulu randrianasulu at gmail.com
Sun Sep 15 14:45:05 CEST 2024


вс, 15 сент. 2024 г., 15:30 Terje J. Hanssen <terjejhanssen at gmail.com>:

>
> Den 15.09.2024 04:23, skrev Andrew Randrianasulu:
>
>
>
> сб, 14 сент. 2024 г., 22:42 Terje J. Hanssen via Cin <
> cin at lists.cinelerra-gg.org>:
>
>> Two simple tests I got working Cinelerra Infinity - built: Sep  8 2024
>> 10:37:25 (rpm installation)
>> on Leap 15.6 on i7-12700KF + Arc A750 gpu
>>
>> As seen below, quite fast rendering:
>>
>>    - 207 fps for hdv.m2t  (yuv420p) input -> yuvj420p
>>    - 125 fps for proreshq.mov  (yuv422p10le) -> yuvj420p (10-bit  to
>>    8-bit color depth)
>>
>>
>> 1)
>> hdv.m2t
>>
>> Stream #0:0[0x810]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
>> yuv420p(tv, bt709, top first), 1440x1080 [SAR 4:3 DAR 16:9], 25000 kb/s, 25
>> fps, 25 tbr, 90k tbn
>>       Side data:
>>         cpb: bitrate max/min/avg: 25000000/0/0 buffer size: 7340032
>> vbv_delay: N/A
>>   Stream #0:1[0x814]: Audio: mp2 (mp3float) ([3][0][0][0] / 0x0003),
>> 48000 Hz, stereo, fltp, 384 kb/s
>>
>> -> hevc_vaapi.mp4
>>
>> ** rendered 5972 frames in 28.721 secs, 207.931 fps
>> audio0 pad 64 0 (64)
>>
>> tream #0:0[0x1](und): Video: hevc (Main) (hev1 / 0x31766568),
>> yuvj420p(pc, bt709/unknown/unknown, top coded first (swapped)), 1440x1080
>> [SAR 4:3 DAR 16:9], 11716 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
>>       Metadata:
>>         handler_name    : VideoHandler
>>         vendor_id       : [0][0][0][0]
>>   Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
>> stereo, fltp, 129 kb/s (default)
>>
>>
>> 2)
>> hd.mov
>> Stream #0:0[0x1](eng): Video: prores (HQ) (apch / 0x68637061),
>> yuv422p10le(bt709, top coded first (swapped)), 1920x1080, 182130 kb/s, SAR
>> 1:1 DAR 16:9, 25 fps, 25 tbr, 2500 tbn (default)
>>       Metadata:
>>         creation_time   : 2016-02-23T23:49:21.000000Z
>>         handler_name    : Apple Video Media Handler
>>         vendor_id       : appl
>>         encoder         : Apple ProRes 422 (HQ)
>>   Stream #0:1[0x2](eng): Audio: pcm_s24le (lpcm / 0x6D63706C), 48000 Hz,
>> 16 channels, s32 (24 bit), 18432 kb/s (default)
>>
>> -> hevc_vaapi.mp4
>>
>> ** rendered 1781 frames in 14.188 secs, 125.529 fps
>> audio0 pad 128 0 (128)
>>
>> Stream #0:0[0x1](und): Video: hevc (Main) (hev1 / 0x31766568),
>> yuvj420p(pc, bt709/unknown/unknown, top coded first (swapped)), 1920x1080
>> [SAR 1:1 DAR 16:9], 11427 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
>>       Metadata:
>>         handler_name    : VideoHandler
>>         vendor_id       : [0][0][0][0]
>>   Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
>> 16 channels, fltp, 378 kb/s (default)
>>
>>
>
> I think due to some strangeness with full (pc, jpeg) data levels currently
> under investigation  you better to retry with color range set to MPEG?
>
>
>
> Yeah, thanks. I changed Settings>Prefs>Appearance Color Range to MPEG, and
> the ffprobe output color range looks more in accordance with the input:
> yuv420p(tv, bt709 ....)
>
> 2)
> ffprobe -hide_banner hd01_hevc_vaapi.mp4
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'hd01_hevc_vaapi.mp4':
>   Metadata:
>     major_brand     : isom
>     minor_version   : 512
>     compatible_brands: isomiso2mp41
>     encoder         : Lavf61.1.100
>   Duration: 00:01:11.28, start: 0.000000, bitrate: 11603 kb/s
>   Stream #0:0[0x1](und): Video: hevc (Main) (hev1 / 0x31766568),
> yuv420p(tv, bt709/unknown/unknown, top coded first (swapped)), 1920x1080
> [SAR 1:1 DAR 16:9], 11225 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
>       Metadata:
>         handler_name    : VideoHandler
>         vendor_id       : [0][0][0][0]
>   Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 16
> channels, fltp, 378 kb/s (default)
>       Metadata:
>         handler_name    : SoundHandler
>         vendor_id       : [0][0][0][0]
>
>
> But still  yuv422p10le input is changed automatic to  yuv420p output.
> Actually in Cingg there is only one single preset "hevc_vaapi.mp4"
> available to select.
>

yeah, if my understanding of our code is correct vaapi encoding (and may be
decoding, too?) limited to yuv420p. I'll look at OBS source to see if this
can be easily fixed, but again, I have in HW to test .....

For now for hevc10 hw encode I can only suggest to create fifo file with
mkfifo and point ffmpeg/y4m renderer to it (select supported pixformat from
dropbox there). From second terminal run system's ffmpeg set up for hevc10
encode (via any method available).

You can start with 1 sec long test sequences in y4m as normal files just
for initial finding of right ffmpeg command line.

You also in theory can setup something like v408 mov (qt) with pcm audio
and faststart flag, and use this as on the fly lossless transport between
cingg and ffmpeg, but I personally not tested that.





> By showing information from the VA-API driver:
>
>    - VLD means the card is capable to decode this format
>    - Enc means it can encode this format.
>
> vainfo
> Trying display: wayland
> Trying display: x11
> libva info: VA-API version 1.20.0
> libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
> libva info: Found init function __vaDriverInit_1_20
> libva info: va_openDriver() returns 0
> vainfo: VA-API version: 1.20 (libva 2.20.1)
> vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics -
> 24.1.3 ()
> vainfo: Supported profile and entrypoints
>       VAProfileNone                   :    VAEntrypointVideoProc
>       VAProfileNone                   :    VAEntrypointStats
>       VAProfileMPEG2Simple            :    VAEntrypointVLD
>       VAProfileMPEG2Main              :    VAEntrypointVLD
>       VAProfileH264Main               :    VAEntrypointVLD
>       VAProfileH264Main               :    VAEntrypointEncSliceLP
>       VAProfileH264High               :    VAEntrypointVLD
>       VAProfileH264High               :    VAEntrypointEncSliceLP
>       VAProfileJPEGBaseline           :    VAEntrypointVLD
>       VAProfileJPEGBaseline           :    VAEntrypointEncPicture
>       VAProfileH264ConstrainedBaseline:    VAEntrypointVLD
>       VAProfileH264ConstrainedBaseline:    VAEntrypointEncSliceLP
>       VAProfileHEVCMain               :    VAEntrypointVLD
>       VAProfileHEVCMain               :    VAEntrypointEncSliceLP
>       VAProfileHEVCMain10             :    VAEntrypointVLD
>       VAProfileHEVCMain10             :    VAEntrypointEncSliceLP
>       VAProfileVP9Profile0            :    VAEntrypointVLD
>       VAProfileVP9Profile0            :    VAEntrypointEncSliceLP
>       VAProfileVP9Profile1            :    VAEntrypointVLD
>       VAProfileVP9Profile1            :    VAEntrypointEncSliceLP
>       VAProfileVP9Profile2            :    VAEntrypointVLD
>       VAProfileVP9Profile2            :    VAEntrypointEncSliceLP
>       VAProfileVP9Profile3            :    VAEntrypointVLD
>       VAProfileVP9Profile3            :    VAEntrypointEncSliceLP
>       VAProfileHEVCMain12             :    VAEntrypointVLD
>       VAProfileHEVCMain422_10         :    VAEntrypointVLD
>       VAProfileHEVCMain422_10         :    VAEntrypointEncSliceLP
>       VAProfileHEVCMain422_12         :    VAEntrypointVLD
>       VAProfileHEVCMain444            :    VAEntrypointVLD
>       VAProfileHEVCMain444            :    VAEntrypointEncSliceLP
>       VAProfileHEVCMain444_10         :    VAEntrypointVLD
>       VAProfileHEVCMain444_10         :    VAEntrypointEncSliceLP
>       VAProfileHEVCMain444_12         :    VAEntrypointVLD
>       VAProfileHEVCSccMain            :    VAEntrypointVLD
>       VAProfileHEVCSccMain            :    VAEntrypointEncSliceLP
>       VAProfileHEVCSccMain10          :    VAEntrypointVLD
>       VAProfileHEVCSccMain10          :    VAEntrypointEncSliceLP
>       VAProfileHEVCSccMain444         :    VAEntrypointVLD
>       VAProfileHEVCSccMain444         :    VAEntrypointEncSliceLP
>       VAProfileAV1Profile0            :    VAEntrypointVLD
>       VAProfileAV1Profile0            :    VAEntrypointEncSliceLP
>       VAProfileHEVCSccMain444_10      :    VAEntrypointVLD
>       VAProfileHEVCSccMain444_10      :    VAEntrypointEncSliceLP
>
> -----------------
>
> I also did a short attempt with the Cingg Appimage, but as I think has
> been said before: HWA want work there.
>
> Cinelerra Infinity - built: Aug 25 2024 13:42:19
>
> [AVHWDeviceContext @ 0x7f3a982eebc0] libva:
> /usr/lib64/dri/iHD_drv_video.so has no function __vaDriverInit_1_0
> [AVHWDeviceContext @ 0x7f3a982eebc0] libva:
> /usr/lib64/dri/i965_drv_video.so has no function __vaDriverInit_1_0
> [AVHWDeviceContext @ 0x7f3a982eebc0] Failed to initialise VAAPI
> connection: -1 (unknown libva error).
> Failed to create a HW device.
>  err: Inn/ut-feil
> [hevc_vaapi @ 0x7f3a9859df00] A hardware frames reference is required to
> associate the encoding device.
> FFMPEG::open_encoder err: Ugyldig argument
> int FFMPEG::open_encoder(const char*, const char*):
> Åpne mislyktes
> hevc_vaapi:/home/terje/Applications/hdv09_04_hevc_vaapi+aac.mp4
> Render::render_single: Session finished.
>
>
>
>
>
>
>> --
>> Cin mailing list
>> Cin at lists.cinelerra-gg.org
>> https://lists.cinelerra-gg.org/mailman/listinfo/cin
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20240915/d8df05fc/attachment-0001.htm>


More information about the Cin mailing list