[Cin] FFmpeg supported QSV pixel formats and profiles

Terje J. Hanssen terjejhanssen at gmail.com
Sat Oct 12 22:39:53 CEST 2024




Den 12.10.2024 21:54, skrev Andrew Randrianasulu:
>
>
> сб, 12 окт. 2024 г., 22:42 Terje J. Hanssen <terjejhanssen at gmail.com>:
>
>
>
>
>     Den 12.10.2024 21:36, skrev Terje J. Hanssen:
>>
>>
>>
>>     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?
>>
>>
>>>         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" ....?
>>
>
>     I came to wonder where are the equivalents to the ffmpeg command
>     line "-hwaccel_output_format qsv -qsv_device /dev/dri/renderD128"
>     defined in CinGG?
>
>
>
> I think you can change device for vaapi, but I have not tested this 
> code for qsv. It seems to puck correct device by default here ... so 
> no need to complicate our investigation with this for now.
>
> hwaccel_output_format *probably* only needed for hw transcoding, like 
> mpeg2 hdv to av1.
>
> What happen if you remove those two from dv to av1_qsv command line?

It works
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20241012/fb884674/attachment-0001.htm>


More information about the Cin mailing list