[Cin] FFmpeg supported QSV pixel formats and profiles
Terje J. Hanssen
terjejhanssen at gmail.com
Sat Oct 12 22:48:28 CEST 2024
Den 12.10.2024 21:48, skrev Andrew Randrianasulu:
>
>
> сб, 12 окт. 2024 г., 22:45 Andrew Randrianasulu <randrianasulu at gmail.com>:
>
>
>
> сб, 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 ....?
>
mp4 and mkv works like webm from ffmpeg command line:
du -sh dv01_07_av1_qsv_pr4_bv1570k.*
24M dv01_07_av1_qsv_pr4_bv1570k.mkv
24M dv01_07_av1_qsv_pr4_bv1570k.mp4
24M dv01_07_av1_qsv_pr4_bv1570k.webm
> 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" ....?
>
>
> just open it with editor as text file, remove all but very first line
> where it says
>
> mp4 av1_qsv
>
>
> but I think we trying something unsupported here ....
>
>
>
>>
>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>>
>>>>>
>>>>> 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/f3d38ea1/attachment-0001.htm>
More information about the Cin
mailing list