[Cin] Build Cingg-with-system-FFmpeg won't startup after upgrade to ffmpeg-7-7.1

Terje J. Hanssen terjejhanssen at gmail.com
Wed Oct 23 16:04:03 CEST 2024




Den 23.10.2024 15:08, skrev Andrew Randrianasulu:
>
>
> On Wed, Oct 23, 2024 at 2:59 PM Terje J. Hanssen 
> <terjejhanssen at gmail.com> wrote:
>
>
>
>
>     Den 23.10.2024 03:10, skrev Andrew Randrianasulu:
>>     Try to set vprofile instead of profile?
>
>     Doesn't this correspond to what we previously also discussed for
>     ffmpeg 7.0.2?
>
>
> ffmpeg as cli does its own option processing, as far as I understand.
>
> Using av_dict_* functions in c++ code was working with libav*/ffmpeg 
> libs up to 7.0
> but evidently not after..
>
> I'll look into what ffmpeg cli does now, but if more changes in 
> pipeline may be we better to skip 7.1 completely?

Well, I was happy to get the system 7.1 finally, but can set it on hold 
as a bin_71 backup, f.x until 7.1 come as internal upgrade to Cingg.

> I also do not know why output become progressive (flagged?) after 
> upgrade. May be some default changed.

This was not a big thing from or to - just something I noticed when I 
looked on the result when deinterlacing was testing.

>
> Sorry, but can I suggest to put this build aside and retry with 7.0 
> built-in (+libvpl patch) so at least we will have point of reference?

Yes, this was also my next test plan when 7.1 system was working, backed 
up (Appimage) and installed from rpm on my two legacy Skylake 
iHD/Kabylake uHD  platforms.
Now it seems reasonable to continue directly on that thread.


>
>     Re: [Cin] FFmpeg supported QSV pixel formats and profiles
>     12.10.2024, 15:59
>     https://lists.cinelerra-gg.org/pipermail/cin/2024-October/008811.html
>
>     >>> 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.
>
>
>     Cingg renders standard PAL DV 5765i when the h264_qsv "profile" is
>     changed to "vprofile",
>     though there are some other fail/err messages in the output
>
>     libva info: va_openDriver() returns 0
>     FFStream::encode_frame: encode failed.
>     file: /Videoklipp/QSV/dv01_07_h264_qsv_nv12.mp4
>       err: Resource temporarily unavailable
>     FFStream::flush failed
>     :file:/Videoklipp/QSV/dv01_07_h264_qsv_nv12.mp4
>       err: Operation not permitted
>     Render::render_single: Session finished.
>     ** rendered 2832 frames in 5.291 secs, 535.249 fps
>     audio0 pad 32 0 (32)
>
>
>     Looks like this rendering automatic deinterlace DV
>
>     ffprobe -hide_banner dv01_07.dv
>     [dv @ 0x55613dce4140] 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
>
>
>     ffprobe -hide_banner dv01_07_h264_qsv_nv12.mp4
>     Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'dv01_07_h264_qsv_nv12.mp4':
>       Metadata:
>         major_brand     : isom
>         minor_version   : 512
>         compatible_brands: isomiso2avc1mp41
>         encoder         : Lavf61.7.100
>       Duration: 00:01:53.28, start: 0.000000, bitrate: 2798 kb/s
>       Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661),
>     yuv420p(tv, bt470bg/unknown/unknown, progressive), 720x576 [SAR
>     16:15 DAR 4:3], 2674 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
>           Metadata:
>             handler_name    : VideoHandler
>             vendor_id       : [0][0][0][0]
>       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]
>
>     ----------------
>
>>     For invalid picture structure .. does it go away if you
>>     deinterlace video track?
>
>     So far standard PAL 1080i HDV is not accepted as input for
>     h264_qsv rendering, which is too bad (tested it worked as
>     deinterlaced to DV 16:9)
>
>     ------------
>
>>     i suspect that we should focus on one ffmpeg version that was
>>     working (7.0) instead of chasing new and improved breackage
>
>     For me it looks like the interface? issues lay more on the Cin
>     side, because my three tested command line variants for av1_qsv
>     encoding work for ffmpeg 7.1 as well as on the 7.0.2 predecessor:
>
>     ffmpeg -hide_banner -hwaccel_output_format qsv -qsv_device
>     /dev/dri/renderD128 -i hdv09_04.m2t -c:v av1_qsv hdv09_04_av1_qsv.webm
>
>     ffmpeg -hide_banner -hwaccel_output_format qsv -qsv_device
>     /dev/dri/renderD128 -extra_hw_frames 16 -i hdv09_04.m2t -c:v
>     av1_qsv -preset 4 -b:v 3700k hdv09_04_av1_qsv_pr4_bv3700k.webm
>
>     ffmpeg -hide_banner -hwaccel_output_format qsv -i hdv09_04.m2t
>     -pix_fmt p010le -c:v av1_qsv hdv09_04_av1_qsv_p010le.webm
>
>
>     745M    hdv09_04.m2t
>     47M     hdv09_04_av1_qsv_p010le.webm
>     111M    hdv09_04_av1_qsv_pr4_bv3700k.webm
>     47M     hdv09_04_av1_qsv.webm
>
>
>     ffprobe -hide_banner hdv09_04_av1_qsv_pr4_bv3700k.webm
>     Input #0, matroska,webm, from 'hdv09_04_av1_qsv_pr4_bv3700k.webm':
>       Metadata:
>         ENCODER         : Lavf61.7.100
>       Duration: 00:03:59.08, start: -0.007000, bitrate: 3881 kb/s
>       Stream #0:0: Video: av1 (libdav1d) (Main), yuv420p(tv, bt709),
>     1440x1080, SAR 4:3 DAR 16:9, 25 fps, 25 tbr, 1k tbn
>           Metadata:
>             ENCODER         : Lavc61.19.100 av1_qsv
>             DURATION        : 00:03:59.080000000
>       Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp
>           Metadata:
>             ENCODER         : Lavc61.19.100 libopus
>             DURATION        : 00:03:58.784000000
>
>     ------------------
>
>     Looking at ffmpeg vs the content of cingg's av1_qsv "profiles"
>     again, I wonder why the latter don't contain a "vprofile" line?
>
>
>     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.......
>
>     /Cin/bin/ffmpeg/video> ls av1_qsv*
>     av1_qsv.dfl  av1_qsv.mp4  av1_qsv.webm
>
>     cat av1_qsv.dfl
>     av1_qsv.webm
>
>     cat av1_qsv.mp4
>     mp4 av1_qsv
>     # only usable with ext. ffmpeg
>     cin_pix_fmt=nv12
>
>     cat av1_qsv.webm
>     webm av1_qsv
>     # only usable with ext. ffmpeg
>     cin_pix_fmt=nv12
>
>
>
>>
>>     On Wed, Oct 23, 2024 at 2:49 AM Terje J. Hanssen
>>     <terjejhanssen at gmail.com> wrote:
>>
>>
>>
>>
>>         Den 23.10.2024 00:18, skrev Andrew Randrianasulu:
>>>
>>>
>>>         вт, 22 окт. 2024 г., 21:52 Terje J. Hanssen
>>>         <terjejhanssen at gmail.com>:
>>>
>>>
>>>
>>>
>>>             Den 22.10.2024 17:04, skrev Andrew Randrianasulu:
>>>>
>>>>             [snip]
>>>>
>>>>>>
>>>>>
>>>>>                 Yes, thanks for the help. I used
>>>>>
>>>>>                  #export CFLAGS=-I/usr/include/ffmpeg
>>>>>
>>>>>                 and then the rest worked fine.
>>>>>
>>>>>                 Enough for me today !
>>>>>
>>>>>
>>>>
>>>>                 This rebuild cingg to use ffmpeg 7.1 startup ok and
>>>>                 testing DV rendering to av1_qsv_nv12.mp4,
>>>>                 av1_qsv_nv12.webm and also av1_qsv_p010le.webm work.
>>>>
>>>>                 But the same rendering from hdv does not longer
>>>>                 work, tried also with BT.709 setting.
>>>>
>>>>
>>>>             does ffmpeg 7.1 itself work for this type of encoding
>>>>             and same input file ?
>>>
>>>             Yes, I tried three varants of ffmpeg codelines, and all
>>>             renderend hdv to av1_qsv.webm ok
>>>
>>>
>>>>             Do h264/hevc qsv encoders still work?
>>>>
>>>             No, I got the following Cingg output errors:
>>>
>>>
>>>         looks like ffmpeg changed some parsing code :/
>>>         you can try to replace high/main words with numbers like 0,1
>>>         but .....it will be sad if one set of profiles will not work
>>>         for pre 7.1 and 7.1 :/
>>
>>         I got hevc_qsv to work both with uncommenting # profile and
>>         by setting profile=0 and profile=1
>>
>>         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
>>         Render::render_single: Session finished.
>>         ** rendered 5972 frames in 20.861 secs, 286.276 fps
>>         audio0 pad 64 0 (64)
>>
>>
>>         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
>>         Render::render_single: Session finished.
>>         ** rendered 5972 frames in 21.269 secs, 280.784 fps
>>         audio0 pad 64 0 (64)
>>
>>
>>         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
>>         Render::render_single: Session finished.
>>         ** rendered 5972 frames in 22.176 secs, 269.300 fps
>>         audio0 pad 64 0 (64)
>>
>>         -----------------
>>
>>         But h264_qsv didn't work similar ..........
>>
>>         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
>>         [h264_qsv @ 0x7f4108127880] Current picture structure is
>>         unsupported
>>         [h264_qsv @ 0x7f4108127880] some encoding parameters are not
>>         supported by the QSV runtime. Please double check the input
>>         parameters.
>>         FFMPEG::open_encoder  err: Function not implemented
>>         int FFMPEG::open_encoder(const char*, const char*):
>>         open failed h264_qsv:/Videoklipp/QSV/hdv09_04_h264_qsv.mp4
>>         Render::render_single: Session finished.
>>
>>
>>         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
>>         [h264_qsv @ 0x7f40c03e6dc0] Current picture structure is
>>         unsupported
>>         [h264_qsv @ 0x7f40c03e6dc0] some encoding parameters are not
>>         supported by the QSV runtime. Please double check the input
>>         parameters.
>>         FFMPEG::open_encoder  err: Function not implemented
>>         int FFMPEG::open_encoder(const char*, const char*):
>>         open failed h264_qsv:/Videoklipp/QSV/hdv09_04_h264_qsv.mp4
>>         Render::render_single: Session finished.
>>
>>
>>         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
>>         [h264_qsv @ 0x7f40b805bc80] Current picture structure is
>>         unsupported
>>         [h264_qsv @ 0x7f40b805bc80] some encoding parameters are not
>>         supported by the QSV runtime. Please double check the input
>>         parameters.
>>         FFMPEG::open_encoder  err: Function not implemented
>>         int FFMPEG::open_encoder(const char*, const char*):
>>         open failed h264_qsv:/Videoklipp/QSV/hdv09_04_h264_qsv.mp4
>>         Render::render_single: Session finished.
>>
>>
>>         [h264_qsv @ 0x7f40a4038880] [Eval @ 0x7f40d97f36d0] Undefined
>>         constant or missing '(' in 'main'
>>         [h264_qsv @ 0x7f40a4038880] Unable to parse option value "main"
>>         [h264_qsv @ 0x7f40a4038880] Error setting option profile to
>>         value main.
>>         FFMPEG::open_encoder  err: Invalid argument
>>         int FFMPEG::open_encoder(const char*, const char*):
>>         open failed h264_qsv:/Videoklipp/QSV/hdv09_04_h264_qsv.mp4
>>         Render::render_single: Session finished.
>>         Total excess of backups: -50
>>         Session time: 0:16:31
>>         Cpu time: user: 0:02:54.493 sys: 0:00:12.204
>>
>>
>>
>>>
>>>         thanks for testing .....
>>>
>>>
>>>
>>>             [h264_qsv @ 0x7f4c88107880] [Eval @ 0x7f4cb37f76d0]
>>>             Undefined constant or missing '(' in 'high'
>>>             [h264_qsv @ 0x7f4c88107880] Unable to parse option value
>>>             "high"
>>>             [h264_qsv @ 0x7f4c88107880] Error setting option profile
>>>             to value high.
>>>             FFMPEG::open_encoder  err: Invalid argument
>>>             int FFMPEG::open_encoder(const char*, const char*):
>>>             open failed
>>>             h264_qsv:/Videoklipp/QSV/hdv09_04_h264_qsv_nv12.mp4
>>>             Render::render_single: Session finished.
>>>
>>>
>>>             [hevc_qsv @ 0x7f4c8406b180] [Eval @ 0x7f4cb8ff26d0]
>>>             Undefined constant or missing '(' in 'main'
>>>             [hevc_qsv @ 0x7f4c8406b180] Unable to parse option value
>>>             "main"
>>>             [hevc_qsv @ 0x7f4c8406b180] Error setting option profile
>>>             to value main.
>>>             FFMPEG::open_encoder  err: Invalid argument
>>>             int FFMPEG::open_encoder(const char*, const char*):
>>>             open failed
>>>             hevc_qsv:/Videoklipp/QSV/hdv09_04_hevc_qsv_nv12.mp4
>>>             Render::render_single: Session finished.
>>>
>>>             I forgot to mention that I haven't applied specific
>>>             patches to the last built based on ffmpeg 7.1, other
>>>             than the copied profiles from previous built based on
>>>             ffmpeg 7.0.2
>>>
>>>             Have made a shortcut symlink /Cin
>>>
>>>             ls -l /Cin
>>>             lrwxrwxrwx 1 root root 29 Oct 22 20:23 /Cin ->
>>>             /home/cinelerra/cinelerra-5.1
>>>
>>>             localhost:/Cin/bin/ffmpeg/video #
>>>
>>>             # ls *_qsv*
>>>             av1_qsv.dfl  av1_qsv.mp4 av1_qsv.webm  h264_qsv.mp4
>>>             h265_qsv.mp4  hevc_qsv.mp4 vp9_qsv.mp4
>>>
>>>             Here the h264/hevc qsv profiles contain:
>>>
>>>             # cat h264_qsv.mp4
>>>             mp4 h264_qsv
>>>             # only usable with ext. ffmpeg
>>>             profile=high
>>>             cin_pix_fmt=nv12
>>>
>>>             # cat hevc_qsv.mp4
>>>             mp4 hevc_qsv
>>>             # only usable with ext. ffmpeg, another pixfmt is yuyv422
>>>             profile=main
>>>             cin_pix_fmt=nv12
>>>
>>>>
>>>>                 The current av1_qsv profiles contents are as
>>>>                 follows (tried to copy them from previous ffmpeg
>>>>                 7.0.2 backup):
>>>>
>>>>                 localhost:/home/cinelerra/cinelerra-5.1/bin/ffmpeg/video
>>>>                 #
>>>>
>>>>                 cat av1_qsv.dfl
>>>>                 av1_qsv.webm
>>>>
>>>>                 cat av1_qsv.mp4
>>>>                 mp4 av1_qsv
>>>>                 # only usable with ext. ffmpeg
>>>>                 cin_pix_fmt=nv12
>>>>
>>>>                 cat av1_qsv.webm
>>>>                 webm av1_qsv
>>>>                 # only usable with ext. ffmpeg
>>>>                 cin_pix_fmt=nv12
>>>>                 ------------
>>>>
>>>>                 As shown in the Cingg output below:
>>>>                 [av1_qsv @ 0x7f4788de7200] Current picture
>>>>                 structure is unsupported
>>>>                 [av1_qsv @ 0x7f4788de7200] some encoding parameters
>>>>                 are not supported by the QSV runtime. Please double
>>>>                 check the input parameters.
>>>>                 FFMPEG::open_encoder err: Function not implemented
>>>>
>>>>
>>>>                 Output format and profile from system ffmpeg 7.1
>>>>                 looks similar like from previous 7.0.2
>>>>
>>>>                 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.......
>>>>
>>>>                 Any idea what cause this hd(v) rendering errors now
>>>>                 in the built Cingg?
>>>>
>>>>
>>>>                 # bin/cin
>>>>                 Cinelerra Infinity - built: Oct 20 2024 21:21:06
>>>>
>>>>                 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
>>>>                 [av1_qsv @ 0x7f4788de7200] Current picture
>>>>                 structure is unsupported
>>>>                 [av1_qsv @ 0x7f4788de7200] some encoding parameters
>>>>                 are not supported by the QSV runtime. Please double
>>>>                 check the input parameters.
>>>>                 FFMPEG::open_encoder err: Function not implemented
>>>>                 int FFMPEG::open_encoder(const char*, const char*):
>>>>                 open failed
>>>>                 av1_qsv:/Videoklipp/QSV/hdv09_04_av1_qsv_nv12.webm
>>>>                 Render::render_single: Session finished.
>>>>
>>>>                 -----------------
>>>>
>>>>                 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
>>>>                 [av1_qsv @ 0x7f47b0040840] Current picture
>>>>                 structure is unsupported
>>>>                 [av1_qsv @ 0x7f47b0040840] some encoding parameters
>>>>                 are not supported by the QSV runtime. Please double
>>>>                 check the input parameters.
>>>>                 FFMPEG::open_encoder err: Function not implemented
>>>>                 int FFMPEG::open_encoder(const char*, const char*):
>>>>                 open failed
>>>>                 av1_qsv:/Videoklipp/QSV/hdv09_04_av1_qsv_p010le.webm
>>>>                 Render::render_single: Session finished.
>>>>                 Total excess of backups: -50
>>>>                 Session time: 0:06:36
>>>>                 Cpu time: user: 0:00:08.543 sys: 0:00:03.847
>>>>                 unjoined tids / owner 2
>>>>                   00007f47c5ffb6c0 / 00007f48377fe6c0 12RenderEngine
>>>>                   00007f47c7fff6c0 / 00007f48377fe6c0 12RenderEngine
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20241023/0db8245e/attachment-0001.htm>


More information about the Cin mailing list