[Cin] FFmpeg supported QSV pixel formats and profiles

Andrew Randrianasulu randrianasulu at gmail.com
Sun Oct 13 14:49:08 CEST 2024


вс, 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 )



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



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


More information about the Cin mailing list