From 2f65ac98051828d04d8129b60f42bc77bf22f90a Mon Sep 17 00:00:00 2001 From: John Andrews Date: Wed, 24 Apr 2024 18:29:19 +1200 Subject: [PATCH] FF-1493: Added ability to save images to the file log --- FileFlows.Plugin.dll | Bin 135680 -> 135680 bytes FileFlows.Plugin.pdb | Bin 32948 -> 32944 bytes .../Video/FfmpegBuilderCropBlackBars.cs | 32 +++++++++++++++--- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/FileFlows.Plugin.dll b/FileFlows.Plugin.dll index f7b57ae58c155b7cb86207157a96cdfbde5f19e1..849f006e730d59091efdd9423a6995ab32abbf4d 100644 GIT binary patch delta 247 zcmZoz!qKpVV?qbZ$%VfjHuh}oVSMmS;P(=H&25Wa9Qv}I{+zo1;l}ow?~IiK8m1P; zX-0|WMy9E0DMlvACT5mK7A8hUDHf(?X68mIscA_jsg?#tN!w*Pn9LbjTF={Do*u!; z6d=&P_W$ZvHj!SlTR*R=vyh3NzJrs=UI8k~B@Gn?sTY`}&czoxU2BE8SjTp8E+$D< ze^Ukv24jXa1|x<<26G^3%8&}=r2ttb49P%j#$X9#TL4)`K$rq#nF7Vkz-m*#YLkF+ RsX$c*K>4KY_54hYOaS6LOmhGL delta 247 zcmZoz!qKpVV?qZ@RhRaQ#-6P`j1RsE6dGN+ADWcwxv=ZyusCK;O~85t#6nkAbVCt6yhr6wC#n3yD*Y?tL=GG}D5TfP3l^axI- z0D-J+vvxUux$3oU!Gg7oE95n%@8D#zSAdG{%7co6)bBr6qiMQ1JU{&Ryu9t=TuhRz z{w56O3>FN@3~4~x49qfPNMx`C@+^U3rVL38#tbGv(g+BXfMRAqwPrvukQxi1ic}!q S0LU@{!bAp>?e+XjjZ6T|xK88% diff --git a/FileFlows.Plugin.pdb b/FileFlows.Plugin.pdb index 0e5cf857a68a23ec2d04bc52e836c2ef9401e3a5..438f8fa3fbc2dbbb664cfa8faa5136f249547914 100644 GIT binary patch delta 2652 zcmZwI3se(V8VB%il0X2_@WuxqAdir^5rQN^Km~#*fsg=7!4(7ob^#HvrC2BfMWL(f zqkv1TkD@NC)w-(N%PQcbO6@AuYOSDK>#kbqKe6stO zCX=*OaZXlob``qwRuavN$ls7jM71X-kKYSTiP^j5KgTK*E~~c;h7O(DrRH$jgX*iy z9atYql=;v;I1PO;0ykwim3%2#?n`Nq4f%58F%fN)i|B1=gagnFpMV}dgKp@9LAV5? zFb0!gt`L#4!Z?qZ+!SK+W>MxtAS{A#SPt>93f6!QW(14L5nNy%h#&x>K@BV6w~z(7 zPz0sGLJe$(2G|RS;A1!mY&%LPoP&NCf-m9U@GXqP6PN`4A~6ZT8Rmj7EC4wyfoO<_ zWJrf~umRoz7HVN9G{Q%4WRaMqzaq3l7xcm)T!tHP2gczEOaeay7XUsW0U0cYWuS&t zkOnzW03}cXHP8e{;UqYRiYW|oLRm4ri*Nu=f&tDzAG{eRra!=85G}?cuohatZHbt~ zPzKfT69|{$5rP&{pc&fXJfwz;DHC$T=Tk9kf=Z}mQFg#?*cWd6VoYtnp~JuKOXyg* zgie70x}XOJU>L5!O}J|sFQEzKC-4HyA|zxD_AnbfKnM#!25eZw)Phs3gp}wgG#!`F zTgW?p$=%5RgMi2dv<%`P306ZUlmZJiupJs;FSNlIky836tWz4-37}eK0PRo)*yA+_ zpxvf}{Pg)!0N$Y?uKzS2-l%81Blgg2+VJlpL8*m%SmwD3b(VmpC z+>;7mEBqNQg3Ag|@`4!1fN@BTnYth^a#I=e9EwxTp*&M|q3=~L^n;36bhy$pl`FZ& z8V9*iQmh*l|B^>z=h7H_XWBRR8#i})6zfg_amLJ0bR36LAp>5A4NwB_z-HJ6b?_-% zghybf=8#m)r35w0r4)poQ5x80?gyh$pr!- z1~On1ybm8kH(ZV9(^F_s^NG<|ke$Yo+`t=><(8DjqRiJ=Q95jtTj9soigJ+G!y8bh znMQjw*3_(-PN%>CUC;yb71L<|?XYGBO=tx4Tw_BPT3g(eEpEz|9JF@i4KfJR+LKc2 zKpIGfG_4~QYMm&vNbOAJ+L`p8)`uEkAN&bEffo22{to>x4A)@{?rV)7zj5=SAAZeZ zQY5@Q`m%~?X@c?ZXRd@g6Yw^}(EkmPk|7DdiTY_)jjrrW(|3cRMKTUf=K@33GBdR1 zrd%brKx=8rw-wXST7x;IMOadnlA+I|Y_M+&c3=g3Q=1sad)aDwnL+AjIv8Ivqe_9V zab6o=j9P9NNj#P+1X;vGtv1!OsBa5ynQAq|qY}X_)HeiN4v&fjTrQ6a1@lZb3$;{m z7PVYZV$P*t>p!CMr?;Ux&-hwlK_y9FD=cYeQf06OJx;>aL?(KLE>@(c=Woc$$lvHs z8>OUg5^`f+8_+(Dht5n+y2hRN^4=U*bNIps{$nXyhnVxJ>(u}~`2DS~7&xm1^(lesWE*k78dKN=F@q*rDoFy61|VA^zyA&)UsGloNqLC+Za^`~`-mV!>^ z3`MAntG7w8sNS{UM~2bq9SUD#X1!_}Owgv&Zz-za^U!@k&)@W%V`)s7M-!p9E^p@j E3>6)^w*UYD delta 2657 zcmZwI3se(V8VB%iLI^K0Jbcgsg{C%u5eOmVAvW^L3I$_=SXf_}#2_LS6e=p>070>> ztDaIV%W6xjqN__Q24b+Xuy88H*2kjQR%yjjrMk5%OMO&Y=|8dboIS@m=l9+J%)K*r zCiBR#3QltcXIEjc>jI(|67mZSM3iT(JDK=X-^(A?*Ed!i4hmHr{b-r zCb2@wkO^rYoPr*>41+T4N+Fab520+xfmh}BZPTe(KAlRT7T$vfXoP0?7&@T`F2EP? z4cq`yOeYucQ`nCqq9BEcge*!pNFf#yAO*CL2}{8Qe5Ht{Kp;#55lA2z=D{nl1eU`p zSPL7V9I9al?1sItAC5p1ur`!-I1Ojv5?qCE;TGJ5hd?t$R zU>W2>A*_dT*ao|x7V6>fOc6`R5Nyx^pTY(B5(eOVxC;+~VsQfC1tAa#a+nQsU>;;b zHmraGC;=9#;eGf!G=bkN5vgFsELKEjg!iBcTH#;N1M6NA(O=*Ih*X#a^w0u9vqdxm zHbE6UhOju?LP&>&&;T|#1B>ECWQ0}mGpGnQLIrGNQFg)}*cWeqFvgc~I`GGO1Raf! zpySXA9ncNupbz?C5N!3SHfJp^ZhFk@2!dEZ=Ls0f70j-=PAVac% z3gAsR1Q#JNML;h?Dj47{EP8qTgr-qYsy+LYCe@$v9XWu0ObwuWsl=iqkbX%Gr03J@ zgPx-WY0pv7@A;dwAi4oRIM(g`_9d7`(t=4c*PaaotZE>dU$Td)>;ZX~mf-V>amw7x21SzC~ z0XD*0a0EKx$~+eug%*tqakQ@Ft97Fw5JHyRjj~ykaIHHngJQWmKECd>0(mvO2Ai}V zRHvOl4O&k+4z17u-4L$uq;qKdv=eDq%cozpUgW0p##MRaqP%Ic&WD5`2bIp3)VfKe zgDl9_O{O)vDP&lynM!3kKYCp!q}{L&4niZeKpT7lXQ2)GpLg{-C3p87`IZ2T@<+J8`&F#CLMy(i;8?j%q~R!0$pW zePt?3Rf!07*M#;u8eY}E8Wk)*(A=NHcO?*&dx6|>hp`lR3srw zeW;T+``;C}CRUo4ILAG{#}6*5>&O#sYCER>dT=N5_@%D z8_f(TO<#VeKkti~-Zz(hYYx78!DaY*-O{UZb;)nde01$^8o6w1Z}rl5|JU}}(B?w7 zO8rMSotb|9t9{3UQ=SbsJ!rgqrQthX?HN~V?!Z8GGs|#~zI}JecdGTe4`zI-2+SXi z7^w>x(Cl+T>W6=(fc0VQ>Je$x^juvkMp9y%yevUpQ{|gyU!vEgqW=a_w*3 EZ&mWc=l}o! diff --git a/VideoNodes/FfmpegBuilderNodes/Video/FfmpegBuilderCropBlackBars.cs b/VideoNodes/FfmpegBuilderNodes/Video/FfmpegBuilderCropBlackBars.cs index ec3c0acb..1ae1a3f1 100644 --- a/VideoNodes/FfmpegBuilderNodes/Video/FfmpegBuilderCropBlackBars.cs +++ b/VideoNodes/FfmpegBuilderNodes/Video/FfmpegBuilderCropBlackBars.cs @@ -100,14 +100,32 @@ public class FfmpegBuilderCropBlackBars : FfmpegBuilderNode process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.StartInfo.CreateNoWindow = true; - process.StartInfo.Arguments = - $" -ss {ss} -i \"{file}\" -hide_banner -vframes 25 -vf cropdetect -f null -"; - args.Logger?.DLog("Executing ffmpeg " + process.StartInfo.Arguments); + process.StartInfo.ArgumentList.Add("-ss"); + process.StartInfo.ArgumentList.Add(ss.ToString()); + process.StartInfo.ArgumentList.Add("-i"); + process.StartInfo.ArgumentList.Add(file); + process.StartInfo.ArgumentList.Add("-hide_banner"); + process.StartInfo.ArgumentList.Add("-vframes"); + process.StartInfo.ArgumentList.Add("-25"); + process.StartInfo.ArgumentList.Add("cropdetect"); + process.StartInfo.ArgumentList.Add("-f"); + process.StartInfo.ArgumentList.Add("null"); + process.StartInfo.ArgumentList.Add("-"); + //$" -ss {ss} -i \"{file}\" -hide_banner -vframes 25 -vf cropdetect -f null -"; + args.Logger?.DLog("Executing ffmpeg " + string.Join(' ', process.StartInfo.ArgumentList + .Select(x => x.IndexOf(" ", StringComparison.Ordinal) > 0 ? "\"" + x + "\"" : x) + .ToArray())); + process.Start(); string output = process.StandardError.ReadToEnd(); Console.WriteLine(output); string error = process.StandardError.ReadToEnd(); - process.WaitForExit(); + if (process.WaitForExit(30_000) == false) + { + process.Kill(); + args.Logger.ELog("Aborted FFmpeg due to timeout"); + continue; + } var dimMatch = Regex.Match(output, @"Stream #[\d]+:[\d]+(.*?)Video:(.*?)([\d]+)x([\d]+)", RegexOptions.Multiline); @@ -222,7 +240,11 @@ public class FfmpegBuilderCropBlackBars : FfmpegBuilderNode string error = process.StandardError.ReadToEnd(); // Wait for the process to exit - process.WaitForExit(); + if (process.WaitForExit(30_000) == false) + { + args.Logger?.ELog("Timed out extracting image"); + return false; + } if (process.ExitCode == 0) return true;