[Cin] FFmpeg supported QSV pixel formats and profiles

Terje J. Hanssen terjejhanssen at gmail.com
Sun Oct 13 18:20:12 CEST 2024




Den 13.10.2024 17:16, skrev Andrew Randrianasulu:
>
>
> вс, 13 окт. 2024 г., 17:55 Terje J. Hanssen <terjejhanssen at gmail.com>:
>
>
>
>
>     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
>
>
> looks fine.
>
> I am afraid we better to try and rebuild our cingg BUT before you run 
> make clean note params we passed to configure, put them into note 
> somewhere.
>
> head config.log
>
> I think it should show ./configure --without-thirdparty 
> --without-libdpx --with-single-user
>
> double-check to where installed ffmpeg-devel package installs  
> libavcodec.h and other headers (may be there is gui for that?)
>
> also do not forgot to set to that directory
>
> CFLAGS=-I/usr/include/ffmpeg as example from previous attempt.
>
> Next, what prevent you from copying lines from git log output? Try 
> selecting and pasting with shift key ... put shift down, move mouse 
> cursor to line you want to copy, without unpressing shift put left 
> mouse button down, move it to the right selecting line. Unpress mouse 
> button first, then shift. I sometimes forgot to do this and 
> selection/paste into midnight commander messes up :/
>
> you can simply redownload fresh git copy, and configure it anew in 
> another folder, then copy over profile files to its bin subfolder and 
> use this unpatched build for tests.
>
>

Well, I think I need a break, and leave it as is in a while forward.
Just upgraded to the latest Appimage and rpm for now :)


>
>
>
>
>>
>>
>>
>>
>>
>>>
>>>
>>>
>>>>                 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/13ec5393/attachment-0001.htm>


More information about the Cin mailing list