[Cin] FFmpeg supported QSV pixel formats and profiles

Terje J. Hanssen terjejhanssen at gmail.com
Sun Oct 13 16:55:19 CEST 2024




Den 13.10.2024 16:39, skrev Andrew Randrianasulu:
>
>
> вс, 13 окт. 2024 г., 17:29 Terje J. Hanssen <terjejhanssen at gmail.com>:
>
>
>
>
>     Den 13.10.2024 14:49, skrev Andrew Randrianasulu:
>>
>>
>>     вс, 13 окт. 2024 г., 15:44 Terje J. Hanssen
>>     <terjejhanssen at gmail.com>:
>>
>>
>>
>>
>>         Den 13.10.2024 14:04, skrev Andrew Randrianasulu:
>>>
>>>
>>>         On Sun, Oct 13, 2024 at 2:43 PM Terje J. Hanssen
>>>         <terjejhanssen at gmail.com> wrote:
>>>
>>>
>>>
>>>
>>>             Den 13.10.2024 03:04, skrev Andrew Randrianasulu:
>>>>             [snip]
>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>                     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
>>>>>
>>>>>
>>>>                 Verified video and audio used with ffprobe :
>>>>
>>>>                 ffprobe -hide_banner dv01_07_av1_qsv_pr4_bv1570k.mkv
>>>>                 Input #0, matroska,webm, from
>>>>                 'dv01_07_av1_qsv_pr4_bv1570k.mkv':
>>>>                   Metadata:
>>>>                     TIMECODE        : 01:09:35:09
>>>>                     ENCODER         : Lavf61.1.100
>>>>                   Duration: 00:01:53.29, start: -0.007000, bitrate:
>>>>                 1724 kb/s
>>>>                   Stream #0:0: Video: av1 (libdav1d) (Main),
>>>>                 yuv420p(tv, bottom coded first (swapped)), 720x576,
>>>>                 SAR 16:15 DAR 4:3, 25 fps, 25 tbr, 1k tbn
>>>>                       Metadata:
>>>>                 ENCODER         : Lavc61.3.100 av1_qsv
>>>>                 DURATION        : 00:01:53.280000000
>>>>                   Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp
>>>>                       Metadata:
>>>>                 ENCODER         : Lavc61.3.100 libopus
>>>>                 DURATION        : 00:01:53.288000000
>>>>                 ---------
>>>>
>>>>                 ffprobe -hide_banner dv01_07_av1_qsv_pr4_bv1570k.mp4
>>>>                 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
>>>>                 'dv01_07_av1_qsv_pr4_bv1570k.mp4':
>>>>                   Metadata:
>>>>                     major_brand     : isom
>>>>                     minor_version   : 512
>>>>                     compatible_brands: isomav01iso2mp41
>>>>                     encoder         : Lavf61.1.100
>>>>                   Duration: 00:01:53.28, start: 0.000000, bitrate:
>>>>                 1768 kb/s
>>>>                   Stream #0:0[0x1](und): Video: av1 (libdav1d)
>>>>                 (Main) (av01 / 0x31307661), yuv420p(tv, bottom
>>>>                 coded first (swapped)), 720x576, 1634 kb/s, SAR
>>>>                 16:15 DAR 4:3, 25 fps, 25 tbr, 12800 tbn (default)
>>>>                       Metadata:
>>>>                 handler_name    : VideoHandler
>>>>                 vendor_id       : [0][0][0][0]
>>>>                 encoder         : Lavc61.3.100 av1_qsv
>>>>                 timecode        : 01:09:35:09
>>>>                   Stream #0:1[0x2](und): Audio: aac (LC) (mp4a /
>>>>                 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
>>>>                       Metadata:
>>>>                 handler_name    : SoundHandler
>>>>                 vendor_id       : [0][0][0][0]
>>>>                   Stream #0:2[0x3](eng): Data: none (tmcd / 0x64636D74)
>>>>                       Metadata:
>>>>                 handler_name    : TimeCodeHandler
>>>>                 timecode        : 01:09:35:09
>>>>                 Unsupported codec with id 0 for input stream 2
>>>>                 ---------
>>>>
>>>>                 ffprobe -hide_banner dv01_07_av1_qsv_pr4_bv1570k.webm
>>>>                 Input #0, matroska,webm, from
>>>>                 'dv01_07_av1_qsv_pr4_bv1570k.webm':
>>>>                   Metadata:
>>>>                     TIMECODE        : 01:09:35:09
>>>>                     ENCODER         : Lavf61.1.100
>>>>                   Duration: 00:01:53.29, start: -0.007000, bitrate:
>>>>                 1724 kb/s
>>>>                   Stream #0:0: Video: av1 (libdav1d) (Main),
>>>>                 yuv420p(tv), 720x576, SAR 16:15 DAR 4:3, 25 fps, 25
>>>>                 tbr, 1k tbn
>>>>                       Metadata:
>>>>                 ENCODER         : Lavc61.3.100 av1_qsv
>>>>                 DURATION        : 00:01:53.280000000
>>>>                   Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp
>>>>                       Metadata:
>>>>                 ENCODER         : Lavc61.3.100 libopus
>>>>                 DURATION        : 00:01:53.288000000
>>>>
>>>>
>>>>             so, it works for ffmpeg but not for us.
>>>>
>>>>             can you test those two attached files (profile for
>>>>             av1_qsv.webm and default file for av1_qsv, put both in
>>>>             bin/ffmpeg/video) ?
>>>>
>>>>
>>>             I should hope I could report progress, but sorry - it's
>>>             the same immediately error with av1_qsv.webm
>>>
>>>             localhost:/home/cinelerra/cinelerra-5.1
>>>             # ls bin/ffmpeg/video/av1_qsv*
>>>             bin/ffmpeg/video/av1_qsv.dfl
>>>             bin/ffmpeg/video/av1_qsv.mp4 bin/ffmpeg/video/av1_qsv.webm
>>>
>>>             # bin/cin
>>>             Render to: /Videoklipp/QSV/dv01_07_av1_qsv.webm
>>>             FFMPEG/webm
>>>             Audio Preset: webm.webm (tried also opus.webm and
>>>             opus.ffmpeg.webm)
>>>             Video compression: av1_qsv.webm
>>>             Pixels: yuv420
>>>
>>>
>>>
>>>         should be: Pixels: nv12 (due to QSV accepting it only this way)
>>
>>         Here show to be something strange;
>>         Some times entering the Video preset and compression
>>         av1_qsv.webm: pixels has shifted between yuv420p and nv12,
>>         and no other option to select each time!?
>>
>>
>>     I think this mean selected codec does not exist.
>>
>>     be sure to launch self-compiled against system's ffmpeg version
>>     of cin (you can check libraries it links to by using ldd
>>     path_to_executable )
>
>     Please, specify the command steps with paths
>
>     My system ffmpeg is
>
>         which ffmpeg
>         /usr/bin/ffmpeg
>
>     My Cinelerra "home" installation is
>
>         /home/cinelerra/cinelerra-5.1
>
>
>
> ldd /home/cinelerra/cinelerra-5.1/bin/cin
>
> but I think it does not matter because yeah full output below shows 
> that"home" build of cinelerra started
>
>
>
>
>>
>>         It looks like when I write 'nv12' directly in the widget it
>>         remember it next time.
>>         But it doesn't help on the render error
>>
>>
>>
>>     yeah, strange.
>>
>>     Can you
>>     a) launch cin like LANG=C bin/cin
>>
>>     b) try to save video to somesimple location like /dev/shm/1.mp4
>
>     Then the initial PluginFilter errors arised again, see terminal
>     output below
>     By the way, the same render error as previously
>
>     localhost:/home/cinelerra/cinelerra-5.1 # LANG=C bin/cin
>     Cinelerra Infinity - built: Sep 23 2024 10:31:07
>     git://git.cinelerra-gg.org/goodguy/cinelerra.git
>     <http://git.cinelerra-gg.org/goodguy/cinelerra.git>
>     (c) 2006-2019 Heroine Virtual Ltd. by Adam Williams
>     2007-2020 mods for Cinelerra-GG by W.P.Morrow aka goodguy
>     2003-2017 mods for Cinelerra-CV by CinelerraCV team
>     2015-2024 mods for Cinelerra-GG by Cinelerra-GG team
>
>     Libav version: Lavc61.3.100
>
>     Cinelerra is free software, covered by the GNU General Public License,
>     and you are welcome to change it and/or distribute copies of it under
>     certain conditions. There is absolutely no warranty for Cinelerra.
>
>     lang changed from 'POSIX' to 'C'
>     build plugin index for: /home/cinelerra/cinelerra-5.1/bin/plugins
>     PluginFFilter::new_ffilter(lv2)
>       err: Operation not permitted
>     [sofalizer_205 @ 0x33de0780] Valid SOFA filename must be set.
>     PluginFFilter::new_ffilter(sofalizer)
>       err: Invalid argument
>     PluginFFilter::new_ffilter(blend_vulkan)
>       err: Input/output error
>     PluginFFilter::new_ffilter(libplacebo)
>       err: Operation not permitted
>     PluginFFilter::new_ffilter(overlay_qsv)
>       err: Input/output error
>     PluginFFilter::new_ffilter(overlay_vulkan)
>       err: Input/output error
>     PluginFFilter::new_ffilter(xfade_vulkan)
>       err: Input/output error
>     PluginFFilter::new_ffilter(hstack_qsv)
>       err: Operation not permitted
>     PluginFFilter::new_ffilter(vstack_qsv)
>       err: Operation not permitted
>     PluginFFilter::new_ffilter(xstack_qsv)
>       err: Operation not permitted
>     build lv2 index for: $CIN_PATH/lv2
>     int FFMPEG::init_encoder(const char*):
>     mismatch audio/video file format: /dev/shm/1.mp4
>     Render::render_single: Session finished.
>     Total excess of backups: -50
>     Session time: 0:03:28
>     Cpu time: user: 0:00:05.252 sys: 0:00:02.696
>
>
>
> I am about to give up :(
>

It is understandable, if not any new ideas popup.
We have already tried a lot.


> I have no idea WHY it shows this error.
>
> from "home" cin directory can you
>
> cat bin/ffmpeg/video/av1_qsv.webm
>
> cat bin/ffmpeg/video/av1_qsv.mp4
>
> ?
>
localhost:/home/cinelerra/cinelerra-5.1 # cat bin/ffmpeg/video/av1_qsv.webm
# only usable with ext. ffmpeg
webm av1_qsv
# cin_pix_fmt=nv12

localhost:/home/cinelerra/cinelerra-5.1 # cat bin/ffmpeg/video/av1_qsv.mp4
# only usable with ext. ffmpeg
mp4 av1_qsv
cin_pix_fmt=nv12

>
>
>
>
>
>>
>>
>>
>>>             webm av1_qsv
>>>             # cin_pix_fmt=nv12
>>>             (+)
>>>             Overwrite: /Videoklipp/QSV/dv01_07_av1_qsv.webm
>>>             (+)
>>>             Cin error; Couldn't open /Videoklipp/QSV/dv01 07 av1
>>>             qsv.webm
>>>             (+)
>>>             Error rendering data
>>>
>>>
>>>
>>>         strange, Overwrite: /Videoklipp/QSV/dv01_07_av1_qsv.webm
>>
>>         Have to confirm (+) or (-) when the file name exists from before
>>>
>>>         yet Couldn't open /Videoklipp/QSV/dv01 07 av1 qsv.webm (with
>>>         spaces, not underscores)
>>
>>         Yeah, it seemed as the underscores were stripped away, a
>>         graphical issue here?
>>>
>>>             -------------
>>>             Message log:
>>>             int FFMPEG::init_encoder(const char*):
>>>             mismatch audio/video file format:
>>>             /Videoklipp/QSV/dv01_07_av1_qsv.webm
>>>             Render::render_single: Session finished.
>>>             -----------
>>>
>>>             Another question I wondered about from yesterday:
>>>             "you can change loglevel to debug in
>>>             bin/ffmpeg/encode.opts too, it will produce bugger log,
>>>             hopefully with more detailed error msg."
>>>             -------
>>>             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
>>>             ----------------
>>>             As I understood this, the loglevel=debug is setup in
>>>             Cingg's internal ffmpeg, to "trigger" debug error
>>>             messages from the external system ffmpeg(?)
>>>             How does communication work, and did it report more
>>>             detailed error msg."
>>>
>>>
>>>         Yeah, but we are not even at encoding entrypoint, so this
>>>         line had no chance to show anything.
>>
>>         That's also my impression, the encoding really never starts
>>         and breaks immediately
>>         So there is no ffmpeg log file to inspect
>>
>>>
>>>
>>>
>>>             ====================================
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20241013/1b2045ac/attachment-0001.htm>


More information about the Cin mailing list