[Cin] so, it looks like qsv integration a bit harder than just adding few lines ....

Terje J. Hanssen terjejhanssen at gmail.com
Fri Sep 27 22:44:19 CEST 2024



Den 27.09.2024 22:27, skrev Terje J. Hanssen:
>
>
> Den 27.09.2024 19:45, skrev Andrew Randrianasulu:
>>
>>
>> пт, 27 сент. 2024 г., 18:55 Terje J. Hanssen <terjejhanssen at gmail.com>:
>>
>>
>>
>>     Den 27.09.2024 12:44, skrev Andrew Randrianasulu:
>>>
>>>
>>>     пт, 27 сент. 2024 г., 12:40 Terje J. Hanssen
>>>     <terjejhanssen at gmail.com>:
>>>
>>>
>>>
>>>         Den 26.09.2024 01:18, skrev Andrew Randrianasulu:
>>>>
>>>>
>>>>         On Thu, Sep 26, 2024 at 2:06 AM Terje J. Hanssen
>>>>         <terjejhanssen at gmail.com> wrote:
>>>>
>>>>
>>>>
>>>>             Den 25.09.2024 23:22, skrev Andrew Randrianasulu:
>>>>>
>>>>>
>>>>>             чт, 26 сент. 2024 г., 00:16 Terje J. Hanssen
>>>>>             <terjejhanssen at gmail.com>:
>>>>>
>>>>>
>>>>>
>>>>>                 Den 25.09.2024 21:33, skrev Andrew Randrianasulu:
>>>>>>
>>>>>>
>>>>>>                 ср, 25 сент. 2024 г., 18:25 Terje J. Hanssen
>>>>>>                 <terjejhanssen at gmail.com>:
>>>>>>
>>>>>>
>>>>>>
>>>>>>                     Den 25.09.2024 00:27, skrev Andrew Randrianasulu:
>>>>>>>                     try this git patch, do not forgot to make
>>>>>>>                     install again, or put profiles in
>>>>>>>                     bin/ffmpeg/video folder manually.
>>>>>>
>>>>>>                     # cd /home/cinelerra/cinelerra-5.1
>>>>>>                     # mv
>>>>>>                     /home/terje/0001-Qsv-encoders-for-testing.patch .
>>>>>>
>>>>>>                     # git am 0001-Qsv-encoders-for-testing.patch
>>>>>>                     Applying: Qsv encoders for testing
>>>>>>
>>>>>>
>>>>>>                     make install > make_install.log 2&1
>>>>>>
>>>>>>
>>>>>>
>>>>>>                 make install > make_install.log 2>&1 ?
>>>>>>
>>>>>                 Sorry. I should cleanup all ">" with Find &
>>>>>                 Replace in my note, and oversaw here should be two
>>>>>                 of them in this command ;(
>>>>>
>>>>>                 Now make install went through without faults as I
>>>>>                 could see, but attach it by email again.
>>>>>
>>>>>                 But unhappily, no success with testing Cingg Qsv
>>>>>                 Rendering.
>>>>>                 All attempts so far breaks with the output below:
>>>>>
>>>>>                     FFMPEG::open_encoder err: Internal bug, should
>>>>>                     not have happened
>>>>>                     int FFMPEG::open_encoder(const char*, const
>>>>>                     char*):
>>>>>
>>>>>                 ----------
>>>>>                 localhost:/home/cinelerra/cinelerra-5.1 # bin/cin
>>>>>                 Cinelerra Infinity - built: Sep 23 2024 10:31:07
>>>>>                 ----------
>>>>>                 1)
>>>>>                 Loaded hdv09_04.m2t
>>>>>                 Render:
>>>>>                 Output to file: /Videoklipp/QSV/hdv09_04_h264_qsv.mp4
>>>>>                 File format: FFMPEG-mp4
>>>>>                 Compression: h264_qsv.mp4
>>>>>                 Pixels: qsv
>>>>>
>>>>>                 libva info: VA-API version 1.22.0
>>>>>                 libva info: Trying to open
>>>>>                 /usr/lib64/dri/iHD_drv_video.so
>>>>>                 libva info: Found init function __vaDriverInit_1_21
>>>>>                 libva info: va_openDriver() returns 0
>>>>>                 libva info: VA-API version 1.22.0
>>>>>                 libva info: Trying to open
>>>>>                 /usr/lib64/dri/iHD_drv_video.so
>>>>>                 libva info: Found init function __vaDriverInit_1_21
>>>>>                 libva info: va_openDriver() returns 0
>>>>>
>>>>>                 FFMPEG::open_encoder  err: Internal bug, should
>>>>>                 not have happened
>>>>>                 int FFMPEG::open_encoder(const char*, const char*):
>>>>>                 open failed
>>>>>                 h264_qsv:/Videoklipp/QSV/hdv09_04_h264_qsv.mp4
>>>>>                 Render::render_single: Session finished.
>>>>>                 --------------
>>>>>                 2a)
>>>>>                 Loaded hdv09_04.m2t
>>>>>                 Render:
>>>>>                 Output to file: /Videoklipp/QSV/hdv09_04_h265_qsv.mp4
>>>>>                 File format: FFMPEG-mp4
>>>>>
>>>>>                 Compression: h265_qsv.mp4
>>>>>                 Pixels: qsv
>>>>>
>>>>>                 [hevc_qsv encoder @ 0x7f44e0d0bd80] [Eval @
>>>>>                 0x7f44e57eb6f0] Undefined constant or missing '('
>>>>>                 in 'high'
>>>>>                 [hevc_qsv encoder @ 0x7f44e0d0bd80] Unable to
>>>>>                 parse option value "high"
>>>>>                 [hevc_qsv encoder @ 0x7f44e0d0bd80] Error setting
>>>>>                 option profile to value high.
>>>>>                 FFMPEG::open_encoder  err: Invalid argument
>>>>>                 int FFMPEG::open_encoder(const char*, const char*):
>>>>>                 open failed
>>>>>                 hevc_qsv:/Videoklipp/QSV/hdv09_04_h265_qsv.mp4
>>>>>                 Render::render_single: Session finished.
>>>>>
>>>>
>>>>             # profile=high
>>>>             Pixels: qsv (yuv420 isn't available)
>>>>
>>>>             Didn't render:
>>>>             FFMPEG::open_encoder  err: Internal bug, should not
>>>>             have happened
>>>>             int FFMPEG::open_encoder(const char*, const char*):
>>>>             open failed hevc_qsv:/Videoklipp/QSV/hdv09_04_h265_qsv.mp4
>>>>             Render::render_single: Session finished.
>>>>
>>>>
>>>>
>>>>>                 ----------------
>>>>>                 2b)
>>>>>                 Compression: h265_qsv.mp4
>>>>>                 Pixels: p010le
>>>>>
>>>>>                 [hevc_qsv encoder @ 0x7f93dcdb3c00] [Eval @
>>>>>                 0x7f93cbff06f0] Undefined constant or missing '('
>>>>>                 in 'high'
>>>>>                 [hevc_qsv encoder @ 0x7f93dcdb3c00] Unable to
>>>>>                 parse option value "high"
>>>>>                 [hevc_qsv encoder @ 0x7f93dcdb3c00] Error setting
>>>>>                 option profile to value high.
>>>>>                 FFMPEG::open_encoder  err: Invalid argument
>>>>>                 int FFMPEG::open_encoder(const char*, const char*):
>>>>>                 open failed
>>>>>                 hevc_qsv:/Videoklipp/QSV/hdv09_04_h265_qsv.mp4
>>>>>                 Render::render_single: Session finished.
>>>>>
>>>>
>>>>             Some progress:
>>>>
>>>>             # profile=high
>>>>             Pixels: yuvy422 (yuv420 isn't available)
>>>>             Settings>Appearance: BT.709/MPEG2
>>>>
>>>>             Rendered:
>>>>             Render::render_single: Session finished.
>>>>             ** rendered 5972 frames in 33.999 secs, 175.652 fps
>>>>             audio0 pad 64 0 (64)
>>>>
>>>>             VLC playback OK
>>>>
>>>>             ffprobe -hide_banner hdv09_04_h265_qsv.mp4
>>>>             Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
>>>>             'hdv09_04_h265_qsv.mp4':
>>>>               Metadata:
>>>>                 major_brand     : isom
>>>>                 minor_version   : 512
>>>>                 compatible_brands: isomiso2mp41
>>>>                 encoder         : Lavf61.1.100
>>>>               Duration: 00:03:58.88, start: 0.000000, bitrate: 3359
>>>>             kb/s
>>>>               Stream #0:0[0x1](und): Video: hevc (Rext) (hev1 /
>>>>             0x31766568), yuv422p(tv, bt709/unknown/unknown, top
>>>>             coded first (swapped)), 1440x1080 [SAR 4:3 DAR 16:9],
>>>>             3223 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
>>>>                   Metadata:
>>>>                     handler_name    : VideoHandler
>>>>                     vendor_id       : [0][0][0][0]
>>>>               Stream #0:1[0x2](und): Audio: aac (LC) (mp4a /
>>>>             0x6134706D), 48000 Hz, stereo, fltp, 129 kb/s (default)
>>>>                   Metadata:
>>>>                     handler_name    : SoundHandler
>>>>                     vendor_id       : [0][0][0][0]
>>>>
>>>>
>>>>
>>>>         ah, so it need tv range .. try also with Pixels nv12
>>>>         (worked for me on mediacodec)
>>>
>>>         Not really.,
>>>         Also the default at first startup, appearance
>>>         BT.601-PAL/MJPEG, worked, and then ffprobe output
>>>         Stream #0:0[0x1](und): Video: hevc (Rext) (hev1 /
>>>         0x31766568), yuv422p(pc, bt470bg/unknown/unknown, top coded
>>>         first (swapped)), 1440x1080 [SAR 4:3 DAR 16:9], 3248 kb/s,
>>>         25 fps, 25 tbr, 12800 tbn (default)
>>>
>>>         I just changed it to BT.701/MPEG which is for HD video, and
>>>         I also remembed you also suggested this in a previous thread.
>>>
>>>         Both yuv422 and nv12 work.
>>>
>>>         But why isn't also the usual yuv420p available for h264 and
>>>         h265?
>>>
>>>
>>>     not sure, may be qsv library does not support this?
>>>
>>>     at least I can't see it in source
>>>
>>>     https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/libavcodec/qsvenc_hevc.c#l399
>>>
>>>
>>>
>>>         Possibly also rename h265 to hevc as ffmpeg use?
>>>
>>>
>>>     ok, I'll rename it and add nv12 as default pix format.
>>>
>>>     can you also see if h264 works with nv12?
>>
>>     No, h264 doesn't work with nv12, neither with # profile=high
>>
>>     I've extracted three ffmpeg QSV code lines below with qsv and
>>     yuv420p used from
>>     https://trac.ffmpeg.org/wiki/Hardware/QuickSync#FullExamples
>>
>>     ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -vf
>>     hwdownload,format=nv12 -pix_fmt yuv420p output.yuv
>>     ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -vf
>>     hwdownload,format=nv12 -pix_fmt yuv420p -f sdl -
>>     ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -f rawvideo
>>     -pix_fmt yuv420p -s:v 1920x1080 -i input.yuv -vf
>>     hwupload=extra_hw_frames=64,format=qsv -c:v h264_qsv -b:v 5M
>>     output.mp4
>>
>>
>>     On the other hand the following VAAPI section and code lines from
>>     'The encoders only accept input as VAAPI surfaces. If the input
>>     is in normal memory, it will need to be uploaded before giving
>>     the frames to the encoder - in the ffmpeg utility, the |hwupload|
>>     filter can be used for this. It will upload to a surface with the
>>     same layout as the software frame, so it may be necessary to add
>>     a |format| filter immediately before to get the input into the
>>     right format (hardware generally wants the |nv12| layout, but
>>     most software functions use the |yuv420p| layout). The |hwupload|
>>     filter also requires a device to upload to, which needs to be
>>     defined before the filter graph is created.'
>>
>>     ffmpeg -vaapi_device /dev/dri/renderD128 -i input.mp4 -vf
>>     'format=nv12,hwupload' -c:v h264_vaapi output.mp4
>>
>>
>>     and from my own ffmpeg test
>>
>>     ffmpeg -hide_banner -hwaccel_output_format qsv -i hdv09_04.m2t
>>     hdv09_04_h264_qsv.mp4
>>
>>
>>
>> note that this line uses *software* x264 encoder, not qsv.
>
> Yeah, I was confused by the "-hwaccel_output_format qsv"
> See below for another attempt
>
>>
>> Does av1_qsv/vp9_qsv works? Can you also try with progressive (not 
>> interlaced) video?
>>
> Sorry, none of av1_qsv nor vp9_qsv pixel formats work (interlaced hdv 
> input)
> I was looking for a progressive video to download?
>
> But I tested "h284_qsv/nv12/profile high" rendering wiht SD-DV file 
> (interlaced) and it worked
>
> FFStream::encode_frame: encode failed.
> file: /Videoklipp/QSV/dv01_07_h264_qsv.mp4
>   err: Resource temporarily unavailable
> FFStream::flush failed
> :file:/Videoklipp/QSV/dv01_07_h264_qsv.mp4
>   err: Operation not permitted
> Render::render_single: Session finished.
> ** rendered 2832 frames in 5.592 secs, 506.438 fps
> audio0 pad 32 0 (32)
>
> ---------------------
>
> What about this modified ffmpeg code line?
>
> ffmpeg -hide_banner -hwaccel_output_format qsv -i hdv09_04.m2t 
> -pix_fmt p010le -c:v hevc_qsv -profile:v main10 hdv09_04_hevc_qsv.mp4
> [mpeg2video @ 0x559aa0f2b740] Invalid frame dimensions 0x0.
>     Last message repeated 3 times
> [mpegts @ 0x559aa0f26080] PES packet size mismatch
> [mpegts @ 0x559aa0f26080] Packet corrupt (stream = 1, dts = 258142320).
> [mpegts @ 0x559aa0f26080] Could not find codec parameters for stream 2 
> (Unknown: none ([160][0][0][0] / 0x00A0)): unknown codec
> Consider increasing the value for the 'analyzeduration' (0) and 
> 'probesize' (5000000) options
> [mpegts @ 0x559aa0f26080] Could not find codec parameters for stream 3 
> (Unknown: none ([161][0][0][0] / 0x00A1)): unknown codec
> Consider increasing the value for the 'analyzeduration' (0) and 
> 'probesize' (5000000) options
> Input #0, mpegts, from 'hdv09_04.m2t':
>   Duration: 00:03:59.06, start: 2629.496000, bitrate: 26110 kb/s
>   Program 100
>   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
>   Stream #0:2[0x815]: Unknown: none ([160][0][0][0] / 0x00A0)
>   Stream #0:3[0x811]: Unknown: none ([161][0][0][0] / 0x00A1)
> Stream mapping:
>   Stream #0:0 -> #0:0 (mpeg2video (native) -> hevc (hevc_qsv))
>   Stream #0:1 -> #0:1 (mp2 (native) -> aac (native))
> Press [q] to stop, [?] for help
> libva info: VA-API version 1.22.0
> libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
> libva info: Found init function __vaDriverInit_1_21
> libva info: va_openDriver() returns 0
> libva info: VA-API version 1.22.0
> libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
> libva info: Found init function __vaDriverInit_1_21
> libva info: va_openDriver() returns 0
> [hevc_qsv @ 0x559aa0f2d840] Using the constant quantization parameter 
> (CQP) by default. Please use the global_quality option and other 
> options for a quality-based mode or the b option and other options for 
> a bitrate-based mode if the default is not the desired choice.
> Output #0, mp4, to 'hdv09_04_hevc_qsv.mp4':
>   Metadata:
>     encoder         : Lavf61.1.100
>   Stream #0:0: Video: hevc (hev1 / 0x31766568), p010le(tv, bt709, top 
> coded first (swapped)), 1440x1080 [SAR 4:3 DAR 16:9], q=2-31, 25 fps, 
> 12800 tbn
>       Metadata:
>         encoder         : Lavc61.3.100 hevc_qsv
>       Side data:
>         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
>   Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, 
> fltp, 128 kb/s
>       Metadata:
>         encoder         : Lavc61.3.100 aac
> [mpegts @ 0x559aa0f26080] PES packet size mismatch0:03:49.92 
> bitrate=26241.8kbits/s dup=12 drop=0 speed=  23x
> [mpegts @ 0x559aa0f26080] Packet corrupt (stream = 1, dts = 258142320).
> [mpeg2video @ 0x559aa0f56fc0] ac-tex damaged at 10 61
> [mpeg2video @ 0x559aa0f56fc0] Warning MVs not available
> [mpeg2video @ 0x559aa0f56fc0] concealing 630 DC, 630 AC, 630 MV errors 
> in P frame
> [vist#0:0/mpeg2video @ 0x559aa0f2e100] [dec:mpeg2video @ 
> 0x559aa103c340] corrupt decoded frame
> [out#0/mp4 @ 0x559aa0f5d600] video:756129KiB audio:3774KiB 
> subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 
> 0.024395%
> frame= 5977 fps=575 q=-0.0 Lsize=  760088KiB time=00:03:58.77 
> bitrate=26077.3kbits/s dup=14 drop=0 speed=  23x
> [aac @ 0x559aa0f5c000] Qavg: 488.617
>
>
> ffprobe -hide_banner hdv09_04_hevc_qsv.mp4
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'hdv09_04_hevc_qsv.mp4':
>   Metadata:
>     major_brand     : isom
>     minor_version   : 512
>     compatible_brands: isomiso2mp41
>     encoder         : Lavf61.1.100
>   Duration: 00:03:59.08, start: 0.000000, bitrate: 26044 kb/s
>   Stream #0:0[0x1](und): Video: hevc (Main 10) (hev1 / 0x31766568), 
> yuv420p10le(tv, bt709, top coded first (swapped)), 1440x1080 [SAR 4:3 
> DAR 16:9], 25908 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
>       Metadata:
>         handler_name    : VideoHandler
>         vendor_id       : [0][0][0][0]
>         encoder         : Lavc61.3.100 hevc_qsv
>   Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 
> Hz, stereo, fltp, 129 kb/s (default)
>       Metadata:
>         handler_name    : SoundHandler
>         vendor_id       : [0][0][0][0]
>
> ----------------------------------------------------------------------
>
> Else I've used ffmpeg to query the supported Qsv formats as follows:
>
> ffmpeg -hide_banner -h encoder=hevc_qsv | egrep 'Supported|profile|main'
>     Supported hardware devices: qsv qsv qsv
>     Supported pixel formats: nv12 p010le p012le yuyv422 y210le qsv 
> bgra x2rgb10le vuyx xv30le
>   -profile           <int>        E..V....... (from 0 to INT_MAX) 
> (default unknown)
>      main            1            E..V.......
>      main10          2            E..V.......
>      mainsp          3            E..V.......
>      main            0            E..V.......
>
> ffmpeg -hide_banner -h encoder=h264_qsv | egrep 'Supported|profile|main'
>     Supported hardware devices: qsv qsv qsv
>     Supported pixel formats: nv12 qsv
>   -profile           <int>        E..V....... (from 0 to INT_MAX) 
> (default unknown)
>      main            77           E..V.......
>
>
> ffmpeg -hide_banner -h encoder=av1_qsv | egrep 'Supported|profile|main'
>     Supported hardware devices: qsv qsv qsv
>     Supported pixel formats: nv12 p010le qsv
>   -profile           <int>        E..V....... (from 0 to INT_MAX) 
> (default unknown)
>      main            1            E..V.......
>
> ffmpeg -hide_banner -h encoder=vp9_qsv | egrep 'Supported|profile|main'
>     Supported hardware devices: qsv qsv qsv
>     Supported pixel formats: nv12 p010le vuyx qsv xv30le
>   -profile           <int>        E..V....... (from 0 to INT_MAX) 
> (default unknown)
>      profile0        1            E..V.......
>      profile1        2            E..V.......
>      profile2        3            E..V.......
>      profile3        4            E..V.......
>
> ffmpeg -hide_banner -h encoder=vp9_qsv | egrep 'Supported|main'
>     Supported hardware devices: qsv qsv qsv
>     Supported pixel formats: nv12 p010le vuyx qsv xv30le
>
> --------------
>
> And also to compare actual pixel formats
>
> ffmpeg -hide_banner -pix_fmts | egrep 'yuv420p|p010le|yuv422p'
> -------
> Pixel formats:
> I.... = Supported Input  format for conversion
> .O... = Supported Output format for conversion
> ..H.. = Hardware accelerated format
> ...P. = Paletted format
> ....B = Bitstream format
> FLAGS NAME            NB_COMPONENTS BITS_PER_PIXEL BIT_DEPTHS
> -----
> IO... yuv420p                3             12      8-8-8

and forgot
  IO... nv12                   3             12      8-8-8

> IO... yuv422p                3             16      8-8-8
> IO... yuv420p16le            3             24      16-16-16
> IO... yuv420p16be            3             24      16-16-16
> IO... yuv422p16le            3             32      16-16-16
> IO... yuv422p16be            3             32      16-16-16
> IO... yuv420p9be             3             13      9-9-9
> IO... yuv420p9le             3             13      9-9-9
> IO... yuv420p10be            3             15      10-10-10
> IO... yuv420p10le            3             15      10-10-10
> IO... yuv422p10be            3             20      10-10-10
> IO... yuv422p10le            3             20      10-10-10
> IO... yuv422p9be             3             18      9-9-9
> IO... yuv422p9le             3             18      9-9-9
> IO... yuv420p12be            3             18      12-12-12
> IO... yuv420p12le            3             18      12-12-12
> IO... yuv420p14be            3             21      14-14-14
> IO... yuv420p14le            3             21      14-14-14
> IO... yuv422p12be            3             24      12-12-12
> IO... yuv422p12le            3             24      12-12-12
> IO... yuv422p14be            3             28      14-14-14
> IO... yuv422p14le            3             28      14-14-14
> IO... p010le                 3             15      10-10-10
>
> -----------------------------
>
> And as extracted from
> cuda - Understanding pixel format and profile when encoding 10-bit 
> video in ffmpeg with nvenc - Super User
> https://superuser.com/questions/1614571/understanding-pixel-format-and-profile-when-encoding-10-bit-video-in-ffmpeg-with
>
> Hardware HEVC encoder uses pixel formats p010le and p016le for 10-bit 
> output
> where first one produces yuv 4:2:0 and the second one yuv 
> 4:4:4.*Params explanation:*
>
>   * |-pix_fmt p010le| converts 8bit input into 10bit; note that
>     conversion is done by CPU so it makes the encoding slower but
>     produces better quality video and in CRF also lower bitrate
>     (smaller file). For CUDA decoder must be used with |-vf
>     "hwdownload,format=nv12"| (or |-vf "hwdownload,format=p010le"| for
>     10 bit input video) to copy decoded frames from CUDA into CPU for
>     conversion (NVDEC decoder sends frames into CPU automatically.)
>     Specifying |-profile main10| is required to allow 10bit encoding
>     but does not accually affect how the encoder encodes the video -
>     encoder itself does not change the bit depth of the input!
>
> According to this reddit post 
> <https://www.reddit.com/r/ffmpeg/comments/c1im2i/encode_4k_hdr_pixel_format/> 
> by @Anton1699:
>
>     *p010le is equivalent to yuv420p10le* (it's 10-bit video with
>     4:2:0 subsampling = 15-bit per pixel).
>
> I have yet to find a more authoritative source in documentation.
>
> |p010le| is supported by nvenc. The output log also indicates that 
> this works. As a result, I put this up as a tentative answer. Sample 
> command:
>
> |ffmpeg -i input.mkv -pix_fmt p010le -c:v hevc_nvenc -profile:v main10 
> -cq 21 out.mkv|
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20240927/971ad9fc/attachment-0001.htm>


More information about the Cin mailing list