[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 13:59:17 CEST 2024




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?

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


More information about the Cin mailing list