Kann nicht nachstellen, dass avs2yuv langsamer als ffmpeg ist. (erscheint bei mir sogar flotter zu sein)
Code:
ClearAutoloadDirs()
SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
LoadPlugin("I:\Hybrid\64bit\Avisynth\AVISYN~1\LoadDll.dll")
LoadDLL("I:\Hybrid\64bit\Avisynth\avisynthPlugins\d3d9.dll")
LoadPlugin("I:\Hybrid\64bit\Avisynth\AVISYN~1\LSMASHSource.dll")
LoadPlugin("I:\Hybrid\64bit\Avisynth\AVISYN~1\FFT3dGPU.dll")
# loading source: C:\Users\Selur\Desktop\YUV444_10bit\cut_TGM_TLR2_IMAX_1920x1012_H265_YUV444_10BIT-thedigitaltheater.mkv
# color sampling YV24@10, matrix: bt709, scantyp: progressive, luminance scale: limited
LWLibavVideoSource("C:\Users\Selur\Desktop\YUV444~1\CUT_TG~1.MKV",cache=false,format="YUV444P16", prefer_hw=0,repeat=true)
# current resolution: 1920x1012
# filtering
# denoising using fft3dgpu
FFT3DGPU(mode=1,precision=1)
# Converting from 16 to 10bit for encoder
ConvertBits(10)
# adjust color to YV12 (color matrix: Rec709)
ConvertToYUV420()
PreFetch(16)
# setting output fps to 24.000fps
AssumeFPS(24,1)
# output: color sampling YV16@10, matrix: bt709, scantyp: progressive, luminance scale: limited
return last
mit avs2yuv:
Code:
encoded 1730 frames, 26.99 fps, 3080.74 kb/s
2022-05-08@15_59_17_3710_02_video finished after 00:01:07.394
mit ffmpeg:
Code:
encoded 1730 frames, 22.67 fps, 3080.90 kb/s
2022-05-08@15_57_30_3910_02_video finished after 00:01:16.505
Cu Selur
Quote:Bin mir auch nicht sicher ob die 64bit FFmpeg Version Avisynth unterstützt,...
Cu Selur
Wenn ich mit dem benchmark-batchfile die ffmpeg.exe in %hybridfolder%\64bit\ffmpeg.exe .avs skripte laden lasse, habe ich im task manager eine 64bit version von ffmpeg laufen.
Ja geht, habe im letzten Post ja mal den Speed getestet -> hier war avs2yuv schneller.
(08.05.2022, 15:58)Selur Wrote: [ -> ]Kann nicht nachstellen, dass avs2yuv langsamer als ffmpeg ist. (erscheint bei mir sogar flotter zu sein)
Code:
ClearAutoloadDirs()
SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
LoadPlugin("I:\Hybrid\64bit\Avisynth\AVISYN~1\LoadDll.dll")
LoadDLL("I:\Hybrid\64bit\Avisynth\avisynthPlugins\d3d9.dll")
LoadPlugin("I:\Hybrid\64bit\Avisynth\AVISYN~1\LSMASHSource.dll")
LoadPlugin("I:\Hybrid\64bit\Avisynth\AVISYN~1\FFT3dGPU.dll")
# loading source: C:\Users\Selur\Desktop\YUV444_10bit\cut_TGM_TLR2_IMAX_1920x1012_H265_YUV444_10BIT-thedigitaltheater.mkv
# color sampling YV24@10, matrix: bt709, scantyp: progressive, luminance scale: limited
LWLibavVideoSource("C:\Users\Selur\Desktop\YUV444~1\CUT_TG~1.MKV",cache=false,format="YUV444P16", prefer_hw=0,repeat=true)
# current resolution: 1920x1012
# filtering
# denoising using fft3dgpu
FFT3DGPU(mode=1,precision=1)
# Converting from 16 to 10bit for encoder
ConvertBits(10)
# adjust color to YV12 (color matrix: Rec709)
ConvertToYUV420()
PreFetch(16)
# setting output fps to 24.000fps
AssumeFPS(24,1)
# output: color sampling YV16@10, matrix: bt709, scantyp: progressive, luminance scale: limited
return last
mit avs2yuv:
Code:
encoded 1730 frames, 26.99 fps, 3080.74 kb/s
2022-05-08@15_59_17_3710_02_video finished after 00:01:07.394
mit ffmpeg:
Code:
encoded 1730 frames, 22.67 fps, 3080.90 kb/s
2022-05-08@15_57_30_3910_02_video finished after 00:01:16.505
Cu Selur
CPU Auslastung war jedenfalls um die 50% wenn nicht niedriger, als ich das vorhin gebencht habe.
Wie lautet der korrekte ffmpeg-Aufruf bei diesem video? Bei mir ist ffmpeg vorhin abgeschmiert.
Hatte da noch versucht einen
-pix_fmt yuv444p10le Aufruf, statt
-pix_fmt yuv420p10le einzubauen. Aber
-vf scale=in_range=tv:out_range=tv macht glaub auch keinen Sinn bei dem video. Genauso wie
--range tv ?!?
Code:
"%hybridFolderWin%\64bit\ffmpeg.exe" -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "%cd%\%dynFileName%.avs" -an -sn -vf scale=in_range=tv:out_range=tv -pix_fmt yuv444p10le -strict -1 -vsync 0 -f rawvideo - | "%hybridFolderWin%\64bit\x264.exe" --crf 19.00 --profile high10 --level 5.2 --ref 1 --no-mixed-refs --keyint 250 --min-keyint 0 --scenecut 40 --bframes 3 --b-bias 0 --b-pyramid normal --direct spatial --b-adapt 1 --sync-lookahead 16 --cplxblur 20.0 --qcomp 0.60 --qblur 0.50 --mbtree --rc-lookahead 10 --ipratio 1.40 --pbratio 1.30 --chroma-qp-offset 0 --qpmin 0 --qpmax 69 --qpstep 4 --partitions i4x4,i8x8,p8x8,b8x8 --8x8dct --me hex --merange 16 --mvrange -1 --subme 2 --cabac --trellis 0 --weightp 1 --aq-mode 1 --aq-strength 1.00 --vbv-maxrate 240000 --vbv-bufsize 720000 --nr 0 --deadzone-inter 21 --deadzone-intra 11 --cqm flat --threads 16 --sar 1:1 --deblock 0:0 --non-deterministic --range tv --colormatrix bt709 --demuxer y4m --input-range tv --fps 24/1 --output-csp i420 --output-depth 10 --output "%cd%\%dynFileName%.264" -
Quote:Aber -vf scale=in_range=tv:out_range=tv macht glaub auch keinen Sinn bei dem video. Genauso wie --range tv ?!?
Die Quelle ist als limited/tv identifiziert deshalb wird tv/limited verwendet.
Histogramm zeigt auch nur Werte im limted Bereich.
-> Warum denkst Du limited range passt nicht?
Gerade nochmal den Aufruf nachgestellt:
Code:
ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "E:\Temp\encodingTempSynthSkript_2022-05-08@16_44_13_3710.avs" -an -sn -vf zscale=rangein=tv:range=tv -pix_fmt yuv420p10le -strict -1 -vsync 0 -f rawvideo - | x264 --preset veryfast --crf 18.00 --profile high10 --level 4.1 --ref 3 --direct auto --b-adapt 0 --sync-lookahead 48 --qcomp 0.50 --rc-lookahead 40 --qpmax 51 --partitions i4x4,p8x8,b8x8 --no-fast-pskip --subme 5 --aq-mode 0 --vbv-maxrate 50000 --vbv-bufsize 187500 --sar 1:1 --non-deterministic --range tv --colormatrix bt709 --demuxer raw --input-res 1920x1012 --input-csp i420 --input-range tv --input-depth 10 --fps 24/1 --output-depth 10 --output "E:\Temp\2022-05-08@16_44_13_3710_02.264" -
Cu Selur
Quote:-> Warum denkst Du limited range passt nicht?
Wahrscheinlich verstehe ich da was nicht richtig... Dachte TV range ist wenn yuv auf das übliche 420 beschränkt ist. Die Quelle ist ja YUV444.
Gerade nochmal den Aufruf nachgestellt:
Code:
ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "E:\Temp\encodingTempSynthSkript_2022-05-08@16_44_13_3710.avs" -an -sn -vf zscale=rangein=tv:range=tv -pix_fmt yuv420p10le -strict -1 -vsync 0 -f rawvideo - | x264 --preset veryfast --crf 18.00 --profile high10 --level 4.1 --ref 3 --direct auto --b-adapt 0 --sync-lookahead 48 --qcomp 0.50 --rc-lookahead 40 --qpmax 51 --partitions i4x4,p8x8,b8x8 --no-fast-pskip --subme 5 --aq-mode 0 --vbv-maxrate 50000 --vbv-bufsize 187500 --sar 1:1 --non-deterministic --range tv --colormatrix bt709 --demuxer raw --input-res 1920x1012 --input-csp i420 --input-range tv --input-depth 10 --fps 24/1 --output-depth 10 --output "E:\Temp\2022-05-08@16_44_13_3710_02.264" -
da steht
-pix_fmt yuv420p10le. Ist das trotz der YUV444 10 bit Quelle richtig?
In der neuen dev Version ändert sich jedenfalls der Aufruf nicht zwischen ffmpeg/avs2yuv64, wenn ich bei config->internal->avisynth prefer ffmpeg / prefer avs2yuv auswähle, es wird immer ein avs2yuv Aufruf erzeugt.
Quote:Wahrscheinlich verstehe ich da was nicht richtig... Dachte TV range ist wenn yuv auf das übliche 420 beschränkt ist. Die Quelle ist ja YUV444.
TV vs PC hat nichts mit dem Sampling zu tun, sondern sagt etwas über die min&max Werte aus.
bit depth |
TV scale |
PC scale |
8 bit |
16-235 |
0-255 |
10 bit |
64-940 |
0-1023 |
12 bit |
256-3760 |
0-4095 |
Kann man entsprechend für andere bit depth berechnen.
Quote:da steht -pix_fmt yuv420p10le. Ist das trotz der YUV444 10 bit Quelle richtig?
Das steht da weil ich in x264 gesagt habe, dass ich YUV420P10 encoden will. (Calculation precision: 10bit + Output color space: i420 + Profile: High10)
Für YUV444P10 müsste man das High4:4:4 Profil nehmen. (Calculation precision: 10bit + Output color space: i444 + Profile: High4:4:4)
Output color sampling und calculation precision wird nicht durch den Input sondern durch den Encoder festgelegt.
Quote:In der neuen dev Version ändert sich jedenfalls der Aufruf nicht zwischen ffmpeg/avs2yuv64, wenn ich bei config->internal->avisynth prefer ffmpeg / prefer avs2yuv auswähle, es wird immer ein avs2yuv Aufruf erzeugt.
Das ist richtig, da bei high bit depth in Hybrid immer avs2yuv verwendet wird.
Cu Selur
Quote:TV vs PC hat nichts mit dem Sampling zu tun, sondern sagt etwas über die min&max Werte aus.
bit depth |
TV scale |
PC scale |
8 bit |
16-235 |
0-255 |
10 bit |
64-940 |
0-1023 |
12 bit |
256-3760 |
0-4095 |
Kann man entsprechend für andere bit depth berechnen.
Jetzt dämmert mir wieder was. War da nicht was mit tendenziell besserem Schwarzwert bei PC, weil bei TV der untere Teil der Skala ausgespart ist?!?
Nicht nur der untere Bereich.
(08.05.2022, 17:03)Selur Wrote: [ -> ]Quote:da steht -pix_fmt yuv420p10le. Ist das trotz der YUV444 10 bit Quelle richtig?
Das steht da weil ich in x264 gesagt habe, dass ich YUV420P10 encoden will. (Calculation precision: 10bit + Output color space: i420 + Profile: High10)
Für YUV444P10 müsste man das High4:4:4 Profil nehmen. (Calculation precision: 10bit + Output color space: i444 + Profile: High4:4:4)
Output color sampling und calculation precision wird nicht durch den Input sondern durch den Encoder festgelegt.
Das heisst
-pix_fmt yuv420p10le beim ffmpeg Aufruf sagt nicht ffmpeg was es für eine Quelle liest, sondern was es für einen output an x264 piped?!?