сб, 28 сент. 2024 г., 23:07 Terje J. Hanssen <[email protected]>:
> > > Den 28.09.2024 18:19, skrev Andrew Randrianasulu: > > > > сб, 28 сент. 2024 г., 19:13 Terje J. Hanssen <[email protected]>: > >> >> >> Den 28.09.2024 17:42, skrev Andrew Randrianasulu: >> >> >> >> сб, 28 сент. 2024 г., 18:35 Terje J. Hanssen <[email protected]>: >> >>> >>> >>> Den 28.09.2024 01:22, skrev Andrew Randrianasulu: >>> >>> >>> >>> пт, 27 сент. 2024 г., 23:27 Terje J. Hanssen <[email protected]>: >>> >>>> >>>> >>>> Den 27.09.2024 19:45, skrev Andrew Randrianasulu: >>>> >>>> >>>> >>>> пт, 27 сент. 2024 г., 18:55 Terje J. Hanssen <[email protected]>: >>>> >>>>> >>>>> >>>>> Den 27.09.2024 12:44, skrev Andrew Randrianasulu: >>>>> >>>>> >>>>> >>>>> пт, 27 сент. 2024 г., 12:40 Terje J. Hanssen <[email protected] >>>>> >: >>>>> >>>>>> >>>>>> >>>>>> Den 26.09.2024 01:18, skrev Andrew Randrianasulu: >>>>>> >>>>>> >>>>>> >>>>>> On Thu, Sep 26, 2024 at 2:06 AM Terje J. Hanssen < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> Den 25.09.2024 23:22, skrev Andrew Randrianasulu: >>>>>>> >>>>>>> >>>>>>> >>>>>>> чт, 26 сент. 2024 г., 00:16 Terje J. Hanssen < >>>>>>> [email protected]>: >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Den 25.09.2024 21:33, skrev Andrew Randrianasulu: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> ср, 25 сент. 2024 г., 18:25 Terje J. Hanssen < >>>>>>>> [email protected]>: >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Den 25.09.2024 00:27, skrev Andrew Randrianasulu: >>>>>>>>> >>>>>>>>> try this git patch, do not forgot to make install again, or put >>>>>>>>> profiles in bin/ffmpeg/video folder manually. >>>>>>>>> >>>>>>>>> >>>>>>>>> # cd /home/cinelerra/cinelerra-5.1 >>>>>>>>> # mv /home/terje/0001-Qsv-encoders-for-testing.patch . >>>>>>>>> >>>>>>>>> # git am 0001-Qsv-encoders-for-testing.patch >>>>>>>>> Applying: Qsv encoders for testing >>>>>>>>> >>>>>>>>> >>>>>>>>> make install > make_install.log 2&1 >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> make install > make_install.log 2>&1 ? >>>>>>>> >>>>>>>> Sorry. I should cleanup all ">" with Find & Replace in my note, and >>>>>>>> oversaw here should be two of them in this command ;( >>>>>>>> >>>>>>>> Now make install went through without faults as I could see, but >>>>>>>> attach it by email again. >>>>>>>> >>>>>>>> But unhappily, no success with testing Cingg Qsv Rendering. >>>>>>>> All attempts so far breaks with the output below: >>>>>>>> >>>>>>>> FFMPEG::open_encoder err: Internal bug, should not have happened >>>>>>>> int FFMPEG::open_encoder(const char*, const char*): >>>>>>>> >>>>>>>> ---------- >>>>>>>> localhost:/home/cinelerra/cinelerra-5.1 # bin/cin >>>>>>>> Cinelerra Infinity - built: Sep 23 2024 10:31:07 >>>>>>>> ---------- >>>>>>>> 1) >>>>>>>> Loaded hdv09_04.m2t >>>>>>>> Render: >>>>>>>> Output to file: /Videoklipp/QSV/hdv09_04_h264_qsv.mp4 >>>>>>>> File format: FFMPEG-mp4 >>>>>>>> Compression: h264_qsv.mp4 >>>>>>>> Pixels: qsv >>>>>>>> >>>>>>>> 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_21 >>>>>>>> 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_21 >>>>>>>> libva info: va_openDriver() returns 0 >>>>>>>> >>>>>>>> FFMPEG::open_encoder err: Internal bug, should not have happened >>>>>>>> int FFMPEG::open_encoder(const char*, const char*): >>>>>>>> open failed h264_qsv:/Videoklipp/QSV/hdv09_04_h264_qsv.mp4 >>>>>>>> Render::render_single: Session finished. >>>>>>>> -------------- >>>>>>>> 2a) >>>>>>>> Loaded hdv09_04.m2t >>>>>>>> Render: >>>>>>>> Output to file: /Videoklipp/QSV/hdv09_04_h265_qsv.mp4 >>>>>>>> File format: FFMPEG-mp4 >>>>>>>> >>>>>>>> Compression: h265_qsv.mp4 >>>>>>>> Pixels: qsv >>>>>>>> >>>>>>>> [hevc_qsv encoder @ 0x7f44e0d0bd80] [Eval @ 0x7f44e57eb6f0] >>>>>>>> Undefined constant or missing '(' in 'high' >>>>>>>> [hevc_qsv encoder @ 0x7f44e0d0bd80] Unable to parse option value >>>>>>>> "high" >>>>>>>> [hevc_qsv encoder @ 0x7f44e0d0bd80] Error setting option profile to >>>>>>>> value high. >>>>>>>> FFMPEG::open_encoder err: Invalid argument >>>>>>>> int FFMPEG::open_encoder(const char*, const char*): >>>>>>>> open failed hevc_qsv:/Videoklipp/QSV/hdv09_04_h265_qsv.mp4 >>>>>>>> Render::render_single: Session finished. >>>>>>>> >>>>>>> >>>>>>> # profile=high >>>>>>> Pixels: qsv (yuv420 isn't available) >>>>>>> >>>>>>> Didn't render: >>>>>>> FFMPEG::open_encoder err: Internal bug, should not have happened >>>>>>> int FFMPEG::open_encoder(const char*, const char*): >>>>>>> open failed hevc_qsv:/Videoklipp/QSV/hdv09_04_h265_qsv.mp4 >>>>>>> Render::render_single: Session finished. >>>>>>> >>>>>>> >>>>>>> >>>>>>> ---------------- >>>>>>>> 2b) >>>>>>>> Compression: h265_qsv.mp4 >>>>>>>> Pixels: p010le >>>>>>>> >>>>>>>> [hevc_qsv encoder @ 0x7f93dcdb3c00] [Eval @ 0x7f93cbff06f0] >>>>>>>> Undefined constant or missing '(' in 'high' >>>>>>>> [hevc_qsv encoder @ 0x7f93dcdb3c00] Unable to parse option value >>>>>>>> "high" >>>>>>>> [hevc_qsv encoder @ 0x7f93dcdb3c00] Error setting option profile to >>>>>>>> value high. >>>>>>>> FFMPEG::open_encoder err: Invalid argument >>>>>>>> int FFMPEG::open_encoder(const char*, const char*): >>>>>>>> open failed hevc_qsv:/Videoklipp/QSV/hdv09_04_h265_qsv.mp4 >>>>>>>> Render::render_single: Session finished. >>>>>>>> >>>>>>> >>>>>>> Some progress: >>>>>>> >>>>>>> # profile=high >>>>>>> Pixels: yuvy422 (yuv420 isn't available) >>>>>>> Settings>Appearance: BT.709/MPEG2 >>>>>>> >>>>>>> Rendered: >>>>>>> Render::render_single: Session finished. >>>>>>> ** rendered 5972 frames in 33.999 secs, 175.652 fps >>>>>>> audio0 pad 64 0 (64) >>>>>>> >>>>>>> VLC playback OK >>>>>>> >>>>>>> ffprobe -hide_banner hdv09_04_h265_qsv.mp4 >>>>>>> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'hdv09_04_h265_qsv.mp4': >>>>>>> Metadata: >>>>>>> major_brand : isom >>>>>>> minor_version : 512 >>>>>>> compatible_brands: isomiso2mp41 >>>>>>> encoder : Lavf61.1.100 >>>>>>> Duration: 00:03:58.88, start: 0.000000, bitrate: 3359 kb/s >>>>>>> Stream #0:0[0x1](und): Video: hevc (Rext) (hev1 / 0x31766568), >>>>>>> yuv422p(tv, bt709/unknown/unknown, top coded first (swapped)), 1440x1080 >>>>>>> [SAR 4:3 DAR 16:9], 3223 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, 129 kb/s (default) >>>>>>> Metadata: >>>>>>> handler_name : SoundHandler >>>>>>> vendor_id : [0][0][0][0] >>>>>>> >>>>>>> >>>>>> >>>>>> ah, so it need tv range .. try also with Pixels nv12 (worked for me >>>>>> on mediacodec) >>>>>> >>>>>> >>>>>> Not really., >>>>>> Also the default at first startup, appearance BT.601-PAL/MJPEG, >>>>>> worked, and then ffprobe output >>>>>> Stream #0:0[0x1](und): Video: hevc (Rext) (hev1 / 0x31766568), >>>>>> yuv422p(pc, bt470bg/unknown/unknown, top coded first (swapped)), >>>>>> 1440x1080 >>>>>> [SAR 4:3 DAR 16:9], 3248 kb/s, 25 fps, 25 tbr, 12800 tbn (default) >>>>>> >>>>>> I just changed it to BT.701/MPEG which is for HD video, and I also >>>>>> remembed you also suggested this in a previous thread. >>>>>> >>>>>> Both yuv422 and nv12 work. >>>>>> >>>>>> But why isn't also the usual yuv420p available for h264 and h265? >>>>>> >>>>> >>>>> not sure, may be qsv library does not support this? >>>>> >>>>> at least I can't see it in source >>>>> >>>>> >>>>> https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/libavcodec/qsvenc_hevc.c#l399 >>>>> >>>>> >>>>> >>>>>> Possibly also rename h265 to hevc as ffmpeg use? >>>>>> >>>>> >>>>> ok, I'll rename it and add nv12 as default pix format. >>>>> >>>>> can you also see if h264 works with nv12? >>>>> >>>>> >>>>> No, h264 doesn't work with nv12, neither with # profile=high >>>>> >>>>> I've extracted three ffmpeg QSV code lines below with qsv and yuv420p >>>>> used from >>>>> https://trac.ffmpeg.org/wiki/Hardware/QuickSync#FullExamples >>>>> >>>>> ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -vf >>>>> hwdownload,format=nv12 -pix_fmt yuv420p output.yuv >>>>> ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -vf >>>>> hwdownload,format=nv12 -pix_fmt yuv420p -f sdl - >>>>> ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -f rawvideo >>>>> -pix_fmt yuv420p -s:v 1920x1080 -i input.yuv -vf >>>>> hwupload=extra_hw_frames=64,format=qsv -c:v h264_qsv -b:v 5M output.mp4 >>>>> >>>>> >>>>> On the other hand the following VAAPI section and code lines from >>>>> 'The encoders only accept input as VAAPI surfaces. If the input is in >>>>> normal memory, it will need to be uploaded before giving the frames to the >>>>> encoder - in the ffmpeg utility, the hwupload filter can be used for >>>>> this. It will upload to a surface with the same layout as the software >>>>> frame, so it may be necessary to add a format filter immediately >>>>> before to get the input into the right format (hardware generally wants >>>>> the >>>>> nv12 layout, but most software functions use the yuv420p layout). The >>>>> hwupload filter also requires a device to upload to, which needs to >>>>> be defined before the filter graph is created.' >>>>> >>>>> ffmpeg -vaapi_device /dev/dri/renderD128 -i input.mp4 -vf >>>>> 'format=nv12,hwupload' -c:v h264_vaapi output.mp4 >>>>> >>>>> >>>>> and from my own ffmpeg test >>>>> >>>>> ffmpeg -hide_banner -hwaccel_output_format qsv -i hdv09_04.m2t >>>>> hdv09_04_h264_qsv.mp4 >>>>> >>>> >>>> >>>> note that this line uses *software* x264 encoder, not qsv. >>>> >>>> >>>> Yeah, I was confused by the "-hwaccel_output_format qsv" >>>> See below for another attempt >>>> >>>> >>>> Does av1_qsv/vp9_qsv works? Can you also try with progressive (not >>>> interlaced) video? >>>> >>>> Sorry, none of av1_qsv nor vp9_qsv pixel formats work (interlaced hdv >>>> input) >>>> I was looking for a progressive video to download? >>>> >>> >>> you can try to add deinterlacing filter in cingg? Do not forgot to set >>> format- > interlacing to progressive. >>> >>> >>>> But I tested "h284_qsv/nv12/profile high" rendering wiht SD-DV file >>>> (interlaced) and it worked >>>> >>>> FFStream::encode_frame: encode failed. >>>> file: /Videoklipp/QSV/dv01_07_h264_qsv.mp4 >>>> err: Resource temporarily unavailable >>>> FFStream::flush failed >>>> :file:/Videoklipp/QSV/dv01_07_h264_qsv.mp4 >>>> err: Operation not permitted >>>> Render::render_single: Session finished. >>>> ** rendered 2832 frames in 5.592 secs, 506.438 fps >>>> audio0 pad 32 0 (32) >>>> >>>> --------------------- >>>> >>> >>> >>> so, h264/5 qsv in cingg works, but vp9/av1 not? >>> >>> I'll add two more silly patches as attachment, they hopefully correct >>> hevc/h264 profiles and add remark about how they only usable with ext. >>> ffmpeg (for now). >>> >>> Sorry about such extended debugging. Thanks for patience (over the >>> years!) >>> >>> >>> I did a summary testing today with results before patching: >>> >>> 1) >>> dv_movie.mpg (progressive) >>> dv01_07.dv (interlaced) >>> >>> av1_qsv/vp9_qsv rendering works with nv12 and p010le >>> h264_qsv rendering works with nv12 >>> >>> 2) >>> hdv09_04.m2t (interlaced) >>> >>> av1_qsv/vp9_qsv nv12/p010le error ... >>> h264_qsv nv12 error ... >>> hevc_qsv nv12/p010le does render #high profile >>> >>> hdv_movie_0.mpg (progressive) >>> av1_qsv/vp9_qsv nv12/p010le error ... >>> h264_qsv nv12 error ... >>> hevc_qsv nv12/p010le does render #high profile >>> >>> 3) >>> hd01.mov (interlaced) >>> >>> av1_qsv/vp9_qsv nv12/p010le error ... >>> h264_qsv nv12 error ... >>> hevc_qsv nv12/p010le does render #high profile >>> >>> --------------------------- >>> >>> After adding the latest two patches and make install, 1) above doesn't >>> work anymore. >>> Tried also to comment out each of the two new options. >>> Any idea why? >>> >> >> no idea o.O >> >> >> To verify if my patch procedure was right (?) here is my procedure and >> output: >> >> # git am 0001-Add-nv12-as-def.-pixformat-for-qsv-profiles-clarify-.patch >> Applying: Add nv12 as def. pixformat for qsv profiles, clarify when it >> work >> .git/rebase-apply/patch:18: new blank line at EOF. >> + >> warning: 1 line adds whitespace errors. >> localhost:/home/cinelerra/cinelerra-5.1 >> >> # git am 0002-Modify-remaining-_qsv-orofiles-to-use-nv12-fix-typo-.patch >> Applying: Modify remaining _qsv orofiles to use nv12, fix typo in hevc_qsv >> >> # make install > make_install.log 2>&1 >> >> Attach make_install.log by email >> >> >> does "git reset --hard git-hash-before-you-added-patches" && make install >> restore 1) ? >> >> >> Could you explain or detqail this a bit more? >> > > use git log, it will show long commit hash (bunch of numbers and letters). > Note commit hash for commit just adding qsv profiles, two commits below > from top. > > try select it fully or first 8 (?) characters into clipboard > > execute "git reset --hard "insert from clipboard" > > verify with git log that two new commits are gone. > > make install again > > > > As I am quite unfamiliar and uncomfortable with this stuff, this might be > over my head. > Maybe I better reconstruct the previous install instead? > > I succeeded to still get the most robust method to work > h265_qsv rendering works with nv12 and p010le and #profile high > > So I wonder if something may have happened with h264/av1/vp9-qsv > with default nv12 some new options, because they worked in 1) before > patching. > sure, you can just edit those profile files manually, either in bin/ffmpeg or in ffmpeg/ you can comment out cin_pix_format line and select "pixels" manually. Also, you can try to set bitrate to some value, like 1000k , by butting b=1000k in gui profile editor. I am honestly very surprised why only hevc works reliably. I thought if something set up wrong hevc will be first to fail. But we have what we have: yet another mystery in sw/hw land! > > > > >> >> normal ffmpeg renders all three input files with qsv encoders, right? >> >> >> I think so, but can try afterwards. >> > > there is another set of settings to try with av1 encode: > > > https://forum.level1techs.com/t/ffmpeg-av1-encoding-using-intel-arc-gpu-tips/205120/2 > > > >> >> >>> I have not continued with 2) and 3) above so far. >>> >>> >>> >> >
-- Cin mailing list [email protected] https://lists.cinelerra-gg.org/mailman/listinfo/cin

