[Cin] FFmpeg supported QSV pixel formats and profiles
Andrew Randrianasulu
randrianasulu at gmail.com
Sun Oct 13 17:16:37 CEST 2024
вс, 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
>> (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.
>
>
>
>>
>>
>>
>>
>>>
>>>
>>>> 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/aa4a2400/attachment-0001.htm>
More information about the Cin
mailing list