[Cin] FFmpeg supported QSV pixel formats and profiles

Andrew Randrianasulu randrianasulu at gmail.com
Sat Oct 12 21:45:00 CEST 2024


сб, 12 окт. 2024 г., 22:36 Terje J. Hanssen <terjejhanssen at gmail.com>:

>
>
>
> Den 12.10.2024 21:26, skrev Andrew Randrianasulu:
>
>
>
> сб, 12 окт. 2024 г., 22:19 Terje J. Hanssen <terjejhanssen at gmail.com>:
>
>>
>>
>>
>> Den 12.10.2024 19:56, skrev Andrew Randrianasulu:
>>
>>
>>
>> сб, 12 окт. 2024 г., 20:45 Terje J. Hanssen <terjejhanssen at gmail.com>:
>>
>>>
>>>
>>>
>>> Den 12.10.2024 18:43, skrev Andrew Randrianasulu:
>>>
>>>
>>>
>>> сб, 12 окт. 2024 г., 16:59 Terje J. Hanssen <terjejhanssen at gmail.com>:
>>>
>>>>
>>>>
>>>> Den 12.10.2024 15:09, skrev Terje J. Hanssen:
>>>>
>>>>
>>>>
>>>> Den 12.10.2024 14:39, skrev Andrew Randrianasulu:
>>>>
>>>>
>>>>
>>>> сб, 12 окт. 2024 г., 13:23 Terje J. Hanssen via Cin <
>>>> cin at lists.cinelerra-gg.org>:
>>>>
>>>>>
>>>>>
>>>>> Den 12.10.2024 12:08, skrev Terje J. Hanssen:
>>>>>
>>>>>  An overview over the system FFmpeg 7.x supported QSV pixel formats
>>>>> and profiles:
>>>>>
>>>>>
>>>>> 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.......
>>>>>
>>>>>
>>>> I think we can concentrate on av1 for now.
>>>>
>>>> does it fail if you add "-profile main" to ffmpeg command line for dv
>>>> av1 encode?
>>>>
>>>> dv due to it being software codec, so ffmpeg forced to push and convert
>>>> frames from system memory, as opposed to hdv (hw) = > av1 on-gpu transcode)
>>>>
>>>>
>>>> No, it doesn't fail:
>>>>
>>>>
>>>> but claims:
>>>> "Please use -profile:a or -profile:v, -profile is ambiguous"
>>>>
>>>
>>>
>>> ah, I think it mostly relevant to ffmpeg as cli application.
>>>
>>> Now, moving to cingg, does adding
>>>
>>> preset 4
>>> b 1570k
>>>
>>> into profile file
>>>
>>> fix anything?
>>>
>>> you can change loglevel to debug in bin/ffmpeg/encode.opts too, it will
>>> produce bugger log, hopefully with more detailed error msg.
>>>
>>>
>>>
>>> Sorry, the same error as before:
>>>
>>> localhost:/home/cinelerra/cinelerra-5.1/bin/ffmpeg # cat encode.opts
>>> # apply at init encode
>>> #loglevel=error
>>> loglevel=debug
>>> threads=auto
>>> side_data_only_packets=1
>>>
>>> # cd /home/cinelerra/cinelerra-5.1
>>>
>>> bin/cin
>>>
>>> Load recent: dv01_07.dv
>>> Render to: /Videoklipp/QSV/dv01_07_av1_qsv.mp4
>>> FFMPEG mp4
>>> Video wrench: Video Preset
>>> compression: av1_qsv.mp4
>>> Pixels: nv12
>>> preset 4
>>> b 1570k
>>>
>>> Cinelerra Message log:
>>> int FFMPEG::init_encoder(const char*):
>>> mismatch audio/video file format: /Videoklipp/QSV/dv01_07_av1_qsv.mp4
>>> Cinelerra Error (widgets)
>>> Couldn't open /Videoklipp/QSV/dv01 07 av1 qsv.mp4
>>> Error rendering data
>>>
>>> Render::render_single: Session finished.
>>>
>>
>> what kind of audio compression you use?
>>
>>
>> Audio preset was set to h264.mp4
>> tried also h265.mp4 without any change
>> there is no aac available for av1_qsv
>>
>>
>> may be set video profile to something else, then set in gui both
>> av1_qsv.mp4 and relevant audio like aac?
>>
>>
>> Ok, I misunderstood when I tried something quite else below, software
> av1_svt.webm below.
> Should aac audio be available for av1_qsv.mp4, I couldn't see it?
>


it hides behind h264.mp4 audio profile ....


but can you check two more things with cmd line ffmpeg?


first change .webm part of working command line to .mp4

try it and report if and how it fail

and then to mkv

also report if it work or not.

so we will try more common (for now ) container formats for av1, may be 7.0
simply can't make AV1 IN mp4 container ....?


sorry for such long road ...


>
> Rendered also to av1_svt.webm that worked as shown below. Then back again
>> to av1_qsv.mp4 from scratch, but got the same error.
>>
>> Load recent: dv01_07.dv
>> Render to: /Videoklipp/QSV/dv01_07_av1_svt.webm
>> -----------
>> FFMPEG webm
>> Audio preset: opus.webm
>> Video Preset
>> compression: av1_svt.webm
>> Pixels: yuv420p
>> preset 4
>> b 1570k
>> ----------
>> Svt[warn]: Failed to set thread priority: Invalid argument
>> [SWR @ 0x7f7b47452b00] Using fltp internally between filters
>> [libopus @ 0x7f7b473d2500] No bit rate set. Defaulting to 96000 bps.
>> FFStream::encode_frame: encode failed.
>> file: /Videoklipp/QSV/dv01_07_av1_svt.webm
>>   err: Resource temporarily unavailable
>> FFStream::flush failed
>> :file:/Videoklipp/QSV/dv01_07_av1_svt.webm
>>   err: Operation not permitted
>> FFStream::encode_frame: encode failed.
>> file: /Videoklipp/QSV/dv01_07_av1_svt.webm
>>   err: Resource temporarily unavailable
>> FFStream::flush failed
>> :file:/Videoklipp/QSV/dv01_07_av1_svt.webm
>>   err: Operation not permitted
>> Svt[error]: deinit called without sending EOS!
>> Render::render_single: Session finished.
>> ** rendered 2832 frames in 109.469 secs, 25.870 fps
>> FFMPEG::open_decoder: some stream times estimated:
>> /Videoklipp/QSV/dv01_07_av1_svt.webm
>> FFMPEG::open_decoder: some stream times estimated:
>> /Videoklipp/QSV/dv01_07_av1_svt.webm
>> audio0 pad 32 -335 (367)
>> FFMPEG::open_decoder: some stream times estimated:
>> /Videoklipp/QSV/dv01_07_av1_svt.webm
>> FFMPEG::open_decoder: some stream times estimated:
>> /Videoklipp/QSV/dv01_07_av1_svt.webm
>> Total excess of backups: -50
>> Session time: 0:27:05
>> Cpu time: user: 0:10:21.894 sys: 0:00:10.195
>>
>
>
> to be honest this log does not show SAME error about mismatching format,
> so it probably was only first half.
>
> can you try to cut av1_qsv.mp4 back to just first non-comment line?
>
>
> I don't understand:
> Can you explain "cut av1_qsv.mp4 back to just first non-comment line" ....?
>
>
>
>>
>>
>>
>>
>>>
>>>
>>>
>>>
>>>
>>>> ffmpeg -hide_banner -hwaccel_output_format qsv -qsv_device
>>>> /dev/dri/renderD128 -i dv01_07.dv -c:v av1_qsv -preset 4 -profile main -b:v
>>>> 1570k dv01_07_av1_qsv_main_pr4_bv1570k.webm
>>>> 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_22
>>>> 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_22
>>>> libva info: va_openDriver() returns 0
>>>> [dv @ 0x5606d5914c00] Estimating duration from bitrate, this may be
>>>> inaccurate
>>>> Input #0, dv, from 'dv01_07.dv':
>>>>   Metadata:
>>>>     timecode        : 01:09:35:09
>>>>   Duration: 00:01:53.28, start: 0.000000, bitrate: 28800 kb/s
>>>>   Stream #0:0: Video: dvvideo, yuv420p, 720x576 [SAR 16:15 DAR 4:3],
>>>> 28800 kb/s, 60k fps, 25 tbr, 60k tbn
>>>>   Stream #0:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
>>>> Please use -profile:a or -profile:v, -profile is ambiguous
>>>> Stream mapping:
>>>>   Stream #0:0 -> #0:0 (dvvideo (native) -> av1 (av1_qsv))
>>>>   Stream #0:1 -> #0:1 (pcm_s16le (native) -> opus (libopus))
>>>> Press [q] to stop, [?] for help
>>>> [libopus @ 0x5606d5ac5100] No bit rate set. Defaulting to 96000 bps.
>>>> Output #0, webm, to 'dv01_07_av1_qsv_main_pr4_bv1570k.webm':
>>>>   Metadata:
>>>>     timecode        : 01:09:35:09
>>>>     encoder         : Lavf61.1.100
>>>>   Stream #0:0: Video: av1, nv12(bottom coded first (swapped)), 720x576
>>>> [SAR 16:15 DAR 4:3], q=2-31, 1570 kb/s, 25 fps, 1k tbn
>>>>       Metadata:
>>>>         encoder         : Lavc61.3.100 av1_qsv
>>>>   Stream #0:1: Audio: opus, 48000 Hz, stereo, s16, 96 kb/s
>>>>       Metadata:
>>>>         encoder         : Lavc61.3.100 libopus
>>>> [out#0/webm @ 0x5606d591cf40] video:22613KiB audio:1186KiB
>>>> subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead:
>>>> 0.223557%
>>>> frame= 2832 fps=1764 q=-0.0 Lsize=   23852KiB time=00:01:53.24
>>>> bitrate=1725.5kbits/s speed=70.5x
>>>>
>>>>
>>>>
>>>>
>>>>>
>>>>> hevc_qsv and h264_qsv encoders also have "high" profile:
>>>>>
>>>>>
>>>>> ffmpeg -hide_banner -h encoder=hevc_qsv | egrep
>>>>> 'Supported|profile|main|high'
>>>>>     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.......
>>>>>   -tier              <int>        E..V....... Set the encoding tier
>>>>> (only level >= 4 can support high tier) (from 0 to 256) (default high)
>>>>>      main            0            E..V.......
>>>>>      high            256          E..V.......
>>>>>
>>>>>
>>>>> ffmpeg -hide_banner -h encoder=h264_qsv | egrep
>>>>> 'Supported|profile|main|high'
>>>>>     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.......
>>>>>      high            100          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
>>>>>
>>>>>
>>>>> --
>>>>> 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/20241012/63cc8aed/attachment-0001.htm>


More information about the Cin mailing list