From c325b29bf0dd701e00d8e830421e220fdc89b569 Mon Sep 17 00:00:00 2001 From: John Andrews Date: Mon, 13 Jun 2022 14:19:24 +1200 Subject: [PATCH] updated FFMPEG Builder Audio Tracks reorder to subtitles aswell and rename dit --- Apprise/Apprise.csproj | Bin 2760 -> 2760 bytes Apprise/Plugin.cs | Bin 283 -> 586 bytes BasicNodes/BasicNodes.csproj | Bin 3566 -> 3566 bytes BasicNodes/Plugin.cs | Bin 355 -> 734 bytes ChecksumNodes/ChecksumNodes.csproj | Bin 2872 -> 2872 bytes ChecksumNodes/Plugin.cs | Bin 263 -> 546 bytes CollectionNodes/CollectionNodes.csproj | Bin 3256 -> 3256 bytes CollectionNodes/Plugin.cs | Bin 426 -> 886 bytes DiscordNodes/DiscordNodes.csproj | Bin 2870 -> 2870 bytes DiscordNodes/Plugin.cs | Bin 282 -> 584 bytes EmailNodes/EmailNodes.csproj | Bin 3386 -> 3386 bytes EmailNodes/Plugin.cs | Bin 264 -> 542 bytes Emby/Emby.csproj | Bin 2844 -> 2844 bytes Emby/Plugin.cs | Bin 271 -> 562 bytes Gotify/Gotify.csproj | Bin 2752 -> 2752 bytes Gotify/Plugin.cs | Bin 281 -> 582 bytes ImageNodes/ImageNodes.csproj | Bin 3232 -> 3232 bytes ImageNodes/Plugin.cs | Bin 284 -> 588 bytes MetaNodes/MetaNodes.csproj | Bin 4504 -> 4504 bytes MetaNodes/Plugin.cs | Bin 310 -> 640 bytes MusicNodes/MusicNodes.csproj | Bin 4228 -> 4228 bytes MusicNodes/Plugin.cs | Bin 365 -> 756 bytes Plex/Plex.csproj | Bin 2844 -> 2844 bytes Plex/Plugin.cs | Bin 271 -> 562 bytes .../Audio/FfmpegBuilderAudioTrackReorder.cs | 96 ++++++++++++++---- VideoNodes/Plugin.cs | Bin 365 -> 756 bytes .../FfmpegBuilder_BasicTests.cs | 34 +++++++ VideoNodes/VideoNodes.csproj | Bin 4098 -> 4098 bytes VideoNodes/VideoNodes.en.json | 18 ++-- 29 files changed, 119 insertions(+), 29 deletions(-) diff --git a/Apprise/Apprise.csproj b/Apprise/Apprise.csproj index 2295490b73c233bae33edf56f8d4e734a16ff997..2977abce047710c0b79bbf7d195cd444b7e9a657 100644 GIT binary patch delta 32 ocmX>hdO~!A3lpmagAIfJWN9YJ$$OYMCTB6}FhdO~!A3lpmmgAIfJWN9YJ$$OYMCTB6}F&b^2$)wK#0F!nIS^xk5 diff --git a/Apprise/Plugin.cs b/Apprise/Plugin.cs index ec96924121595c7a1c207cbd63dd668390ea0de6..bdd5705f3163a596b4334edda39c2853a4cebc4d 100644 GIT binary patch literal 586 zcmb7>%}&BV6ot>)gm;*91&cPdprA$*Hy9QWH?o(4W|CSOYGq-3b>N#R7)o$qCNuZW zoO93pne8Umt3I?)sRA#>GaAY&!y9rgwFZmy2wrFfQi9y6r3=3cRhq%G#2R*nO35;M z#;^1al5@NLL-&{!Y1D{vIlg@sL$q7XY)|N0&3S*>+j~85%c*dUJ>YEx>MDU5gCtZq zSE#06$P?-~IWTN`3k%<#cW|A(xx3QC(SZ zGDpW)lEuwG_=oP;Pt~Gbv8TkZP_SsZSs!x6{9B*xZ2YV5rh2~iFXHQYj?l4m(x%&E Le)BheJXW7OCAn9% literal 283 zcmZusu?oU45Z&_?M<*Q`VpH3yD7YvNii_@Ta>_xPmd5HJ{dc47(7}V_c#roU?`&S8 zt8<00BZE6ry&T`xbwdtUjMZ&nNP#lBb8t58oh&Rz%AVqf{<1d%KZ9xCl7@@l^#&}y z;EN}LjI_Wg*I}B>(l9ROQCKLs2&K$)q;41|nF^+>agcj7WbbhDO}|;eP!CR(Mi=~( o9?4SKmRD>XRrY5RJmHehgb>~_PJdRu;=$5mGX2s04;|~+2V=!muK)l5 diff --git a/BasicNodes/BasicNodes.csproj b/BasicNodes/BasicNodes.csproj index a5a06e2c60c9b4623e47db6430e6d17e1fa4576f..e5db92e3df2ebdd5b0b4433d0de72dd5011f5562 100644 GIT binary patch delta 20 ccmaDS{Z4wr8%9Qp$!{4W87(%uGcD%^09<$nssI20 delta 20 ccmaDS{Z4wr8%9Q>$!{4W8I3l(GcD%^09*_Qo&W#< diff --git a/BasicNodes/Plugin.cs b/BasicNodes/Plugin.cs index 1358e9159d7eb85af8021149d5fd2a80dbad17dd..6a3623858d2d2224b1bddde1bd9ebe36b2fa9b40 100644 GIT binary patch literal 734 zcmbV~$x6de6o&t`;5%Hhs*9Gi4y}rU1C=gX3ZnZMtpt*^G>t{XS69E20Tb*>F6Z7e z|7W=0U#S8mdQqkoTnOhhR-_ni%)QhWTTj0nNNKofjBQoRxAtQJvM}pcwy*<1~lQ z!HurXF|tiKX_mSoi4*P60h2Jy6H@C=7<3fi$3?;4L9!!Ax(_9}yXLi9lf z>Y!DvrEQT+(9o~ctR=wRX{MMQpKH^=i0reI7dX&!>564+4 zCdE|ASurhZSu8}Qi&H7Y{KUDcMU{`2N%BsN!llo!k8yjwJY|FwGXHOQXVAFTed-Iv fXbI!2ViP7f=aKsB@#W*PTQp%bh8uLL-DTYmaTjW4 diff --git a/ChecksumNodes/ChecksumNodes.csproj b/ChecksumNodes/ChecksumNodes.csproj index f411905b9347a76ac92e67bf099dedc264d49980..8584b5193228efaa0dccbada2400d6b6d5fc0de3 100644 GIT binary patch delta 35 rcmdlXwnJ>gDJE761{((b$qShzC*R}ZnykjcH;Gw+(PFbAvp5F;!Mq7X delta 35 rcmdlXwnJ>gDJE7U1{((b$qShzC*R}ZnykjcH;Gw+(P*F>k^!5QX1diT_|_f*~kDAPT5mIv|FkF0fOYf<;Ip0%bt`>(I{*ks6f+S(khE zJD=aZT+W#m+A2|@9JB-(y=YBdYQyOPcB(IZ_?nR#dhn6MyepNZ&JZcL3zpFv_@EU` z#%@SVYG1^oYv(6gptiVG7AB`t!AL>C9cAaT(h>xqp}2&Fn0{<{Ss1rgOb1tO-QRZ61p)`e5u!3}&$cuojk7j4&1&+4Y8&LR!VRxNK zAdiAj&;+W2$85dgFO|q9;9h16hGh@Bjb+ diff --git a/CollectionNodes/CollectionNodes.csproj b/CollectionNodes/CollectionNodes.csproj index e0f225bb45ae06962a91416861edd4a71ed533a3..4431e0fa8353accc2c356f38616765f2ee7e2d72 100644 GIT binary patch delta 36 scmdlXxkGZpEk;%g1{((b$r~9ZC&%${P2R)IH(7v5fze{KAyYdS0M4Nb5C8xG delta 36 scmdlXxkGZpEk;%&1{((b$r~9ZC&%${P2R)IH(7v5fzfEQAyYdS0L|431ONa4 diff --git a/CollectionNodes/Plugin.cs b/CollectionNodes/Plugin.cs index f3219eb6d42dd3f6a5f3f69ca0dce07c2dba6f77..a38435730b670e7561f2a74440cfb668d75c4315 100644 GIT binary patch literal 886 zcmb7?T}uK%6o%jHp#Lymx<`ui&K)Vy3QI$e$V;r&r=eSAtdv)PHp6$JD;?^9*B0kl zYhKnmBjygQndY1^nizc#d5j!k?P!Q*2y)CyoScDgy$fuMALBD~`Q}I?B;$}HSMi8A zAJfmVcVp*N7vL8XXV?)43zjMU&gc?Nx1_U~H|~E1n_XqB2arSlV)T;V*Sg_lf4br> z>{V6JoavaeMJ@KO>r_WNQ5(sgEwpuAaE>)Wn&3adH{cz(s6b7fgH+2o-(Qnu-ge0M zw4d{4GfVa>ze?fNcVe5dNuS$ndpD`yPmJZZ_`!ggOX!Q8 zid0p2sp+l6`#?|FJ{;dE()f?P+?O&3#f){R%*NVjNs!j$->|3XGO9AvUPxaq`)-Zp Y44)wQ&UaxtB)&?`yZ+_5@p%6H1uT<^DgXcg literal 426 zcmZutO>4t2487-9h@6r`Og_4FTiBqqWc1K7Hnz*yAx@NFaO^C$S4!!BpPdA@!wfc( z_4M?fjAEjLl5s4#JSpQ$NC#oLRP}K-q$vM{U|7fwUHWWfKEGLpn`Y&)g_AEo3CjzJQB&iM;|88%`wr;CwgzFXAJ7HciXGhCoU bU4U}Wb!J=O-_m;C3#Nl`BAu6V^{(CzqQHj9 diff --git a/DiscordNodes/DiscordNodes.csproj b/DiscordNodes/DiscordNodes.csproj index 4bc7259aa87c850dac04226e0d16f2e76e37a140..bc3298536de2e7a0d05395f50a4835ebf101618b 100644 GIT binary patch delta 20 ccmdlcwoPoqBqm0S$&;Ca87($HXY%I&08Cy6y#N3J delta 20 ccmdlcwoPoqBqm0q$&;Ca8I3kSXY%I&088=)u>b%7 diff --git a/DiscordNodes/Plugin.cs b/DiscordNodes/Plugin.cs index 9ba37d8aac273a5ea0d64bb06be375bd5868684c..843d2583e844068c09b5384cb1569183dce69014 100644 GIT binary patch literal 584 zcmb7>F>k^^429oZiT`lQ1Vd2@s0mckEbUGjgifLXk){k4e;xSlLPUe;P@R1C zo$cpm`*_GS*QXZBwZZzpG8)Qig*D_}Ylp9`SN?MRYi*TkicWpjlN!47vQeRg3`>+j zR^a6vqZxLgC7z7e;ExKwquLtRvRsWHU&WB^PQBU)dg zugV~7$l=C?N91dYCbaetEXD<6*G@Y!V4R8(j;_0qhxx$XOMKT~_GFOe7ut4Y;goi{ z0*?>){CS32p(=$e%}&BV6ot>4#CMo3t~qf&FWJqQk8vs++J zZ{(#`OmeD6eA4Izgo9x?X2F_RFP!%L&*}XyK5Iyo!(dOW=WRtW=qpx&_4R<=sRxg) zI+lHqr(|;th>2xA_6Hzk*3GCoRFQ5~-R&}`LOX5kMk^RhK?@2xRm`F@t)eS%UJcQM xRpK)cw8O_MOBF^>WopE#!?<0%y}%ajzEWP$Rgi(ioKJ2Vv(&h5?eMj`KC pWQPXpp+2h4Vq?ZI^JjkK2aGZI@k>27PHk(jpG?Q|$NffbK~KU!6oltY!hdLbf&-*T5!C1n3RcA_VAr4(yP`gl!IcBrcWSHUB3H>t3OA-E21PIn@B&(Xf5>R5|lc9rXX9 z^5pakN+q#EZ%c;_zhXOED+m0~n6PVr&+{K$cDkd!>fRh3gYOP+vpui*&E9{xTs8jy D_&idW literal 271 zcmZvWKMTSz5XJX=iX)R95>i|1KXkL=pt$Isq@f(7X=$t?;&(T-4jnu=j(fcK_&He_ z-$-pBM{9ChKRn-6>bWMQ>6Aqc+Dh-?Y`YR2tVXs$;)mgq7lAOp(7wY0E@3xYaOMI1 zKcTZ&6-Am(S(YV&rFx;6N@U9BLQacVXCe_x8m-4g{??)^;S@0YF50uve~u$Mth(xI iT938+dIisT!eb#sNQ_JGbs#%9yiKC7JfOeHn|uI*fKZYE diff --git a/Gotify/Gotify.csproj b/Gotify/Gotify.csproj index 590c43c6e9c2a4c10d5c279d705d455a0a359126..7f2bafeaea64b01c18dae0b6e4118d6a0ee67c88 100644 GIT binary patch delta 32 ocmX>gdO&o83lpmagAIfJWN9YJ$$OYMCTB6}FgdO&o83lpmmgAIfJWN9YJ$$OYMCTB6}F&b^2$)wH!0FibGLI3~& diff --git a/Gotify/Plugin.cs b/Gotify/Plugin.cs index 898ef8c5eed615a65f0e647233155a9c747a54a7..f46455e452ec55d088b6c98291f289783e7e21e7 100644 GIT binary patch literal 582 zcmb7>OKZYF6ot>a;C~ph(nTabXnfEv6&DpZcHj77K%79gXMthS&L_g*J_O^reC*w^~hP&GYxIVe{`lqJ(3TR1X~(F~kx zgC|8B{K0w~)zqYtk=w0-M9?{!a12xL&@As6kqobdBLkH7xw?;*0L1l~1zo##^ z``{m}FP`7>YdP{t{t*TXm)rEUQpBIdh%MV literal 281 zcmZus%L>9U5WMFrmY(dPA!&>CfgUYAC|>m5$F?k_NinTO#D6zh4?VcBEHlguvpR3l zc6o_#AcY5IM$1#vQ~lU7)(wTC5=xa@3uiSnq+v4?P883k%bpC}{7mUU6D@bOR?>^poXH?cii8wBA4E nku%(Rvh0D6=Npa1{> delta 28 kcmZ1=xj=Hm3?^111{((b$@xr@leaP1FdA+C%(Rvh0D1TblmGw# diff --git a/ImageNodes/Plugin.cs b/ImageNodes/Plugin.cs index 8efdf5fa105e81e152c962c912333047ac6bcc49..d9516c4cade2a9e65ffcc3783531a42f78f096db 100644 GIT binary patch literal 588 zcmb7>Piw+J5XIlQ(C@J1qz5Gw6Rpx7Eglpv?OmwPf^1c2PP7NXA!}lD zj?)yqAkQn~*S~{akFr|zztuQ|DvoSB*VW#@_b_sL|9xNd$}fZCp11Nh6u~Mb(%9Qc z)KUkw33k)cptsahOpJM#SbJ!Ro%Syvw5QWcL@Ev}#s*8jw)p$Wclu8#Zg6KX?qXcp(O=1!8)zxp3))MGO!puK2 zXL9ED^Ia%Xu0)lVSTUB<6kX%ZRBF*;S31-|D-D^c3cZo{qz}BBj9h{4$j)IYK@+5g zr~5wxy@$^@Z$S#;X4f!TcBLKvQjO-yKw>JySP^)I{fOOA*Qz^RB4g}~T4QvnHCaI~ zE6}9p+YF!W6pp{`>sNb#KV@R4=goVq8$6q5&AY`1@`x;Sj6Tt+MhfNYOs~4Y_wna+ zevTE9F(T@N#rzSXLm~+}As)kYw3&W?PqyDxJF{(k2BTfesq4)9yOm+vYkB`*oVMI4 wtPS!4_liAsciB}Lve^)^cSz5>d+qP~onE?4PS{?`3An&6B`w31T>!zIT+i6+v^i!#@ zZp*#y8{O2{V5^Jq{9cH|F?-&mJXx#Aap0P#_z%|^GA_C=JaS5LWmIw|ALOK}s>HaL R{`Se=noJmt;S3jX5x@K9Vov}7 diff --git a/MusicNodes/MusicNodes.csproj b/MusicNodes/MusicNodes.csproj index fa492cf396966bb9e206e73775d59449babf29d2..e82b08c8867a8a18fc97c2f72868e58384f1fd39 100644 GIT binary patch delta 20 bcmZosY*F0sh>6i+@?)k*MvKk1%6i?@?)k*Mx)KP%3u4iR>)kZ6<7c8ft5~Wx}zDwOYyM_< zO-0RPT37gH;O!ocol&Wj7qzw%XP1sh!X{r>E+?(lvk9 zmmOyv?efwcI7h{tRB1JIF9sxBVZWOK4! zg~?6mhP?%+pe$-k-8JSO{eyE{vM2Cv*;Clp^gB#=U&k}KKHE-@>ix?)toxl85_&m8 Ud%`U`+|(velEh#x{D3tc@uCqbVaf#YcO8$E%ZlHUpFzD!e z&-qX}2&3wO?~H|=_2(ek6ik2c8p4J#I^&VQe}@Q8JbO2K1dJ`cTJfTy+9LX>qVY)T zN&J`eX4BE2*v5D=U5YtyOr147@2v`fPXhih`~BwGPdoczoYu|snvCWjRF6*_;moi7 zqR`EH=(McMK|)ooo7H{UXpm*yNf=gA>!zuSO>4qH5Qg8g;D1!Ny>W7E1rR?Xw%x5)eU_`PiAA zcix%(IVYOyLu+M9@s@Z-Ls@O{hUlG6gfoDTK@iIFy5 zo7`N_cuvQ9!h6>v$SWcdy2E5G>=LBrW%}!!G99${GjCwtiVG7CG!+F@q9cYu!=ig>tGT2ULP1Q7|J{NPns~_#_wK!y&+tmw zh6@E5YL)4Fu(Z(Xo)XgZrA7flb8Df{{S^&ter%&e^Y@E92)Ox#_B~2Cx!vx-r~$^? z_o7lIVHhVt5+%!ES@Lzj*U>7tETrU2#v+u$o2B1HwrkN`;pi~OE^lP>{y7e4u 2; - public override string Icon => "fas fa-volume-off"; + public override string Icon => "fas fa-sort-alpha-down"; - public override string HelpUrl => "https://docs.fileflows.com/plugins/video-nodes/ffmpeg-builder/audio-track-reorder"; + public override string HelpUrl => "https://docs.fileflows.com/plugins/video-nodes/ffmpeg-builder/track-reorder"; - [StringArray(1)] - public List Languages { get; set; } + + [Select(nameof(StreamTypeOptions), 1)] + public string StreamType { get; set; } [StringArray(2)] - public List OrderedTracks { get; set; } + public List Languages { get; set; } [StringArray(3)] + public List OrderedTracks { get; set; } + + [StringArray(4)] + [ConditionEquals(nameof(StreamType), "Subtitle", inverse: true)] public List Channels { get; set; } + private static List _StreamTypeOptions; + public static List StreamTypeOptions + { + get + { + if (_StreamTypeOptions == null) + { + _StreamTypeOptions = new List + { + new ListOption { Label = "Audio", Value = "Audio" }, + new ListOption { Label = "Subtitle", Value = "Subtitle" } + }; + } + return _StreamTypeOptions; + } + } + public override int Execute(NodeParameters args) { OrderedTracks = OrderedTracks?.Select(x => x.ToLower())?.ToList() ?? new(); - var reordered = Reorder(Model.AudioStreams); - - bool same = AreSame(Model.AudioStreams, reordered); - - if (same) + if (StreamType == "Subtitle") { - args.Logger?.ILog("No audio tracks need reordering"); - return 2; + var reordered = Reorder(Model.SubtitleStreams); + + bool same = AreSame(Model.SubtitleStreams, reordered); + + if (same) + { + args.Logger?.ILog("No subtitle tracks need reordering"); + return 2; + } + + Model.SubtitleStreams = reordered; + + return 1; + } + else + { + var reordered = Reorder(Model.AudioStreams); - Model.AudioStreams = reordered; - // set the first audio track as the default track - Model.MetadataParameters.AddRange(new[] { "-disposition:a:0", "default" }); + bool same = AreSame(Model.AudioStreams, reordered); - return 1; + if (same) + { + args.Logger?.ILog("No audio tracks need reordering"); + return 2; + } + + Model.AudioStreams = reordered; + // set the first audio track as the default track + Model.MetadataParameters.AddRange(new[] { "-disposition:a:0", "default" }); + + return 1; + } } - public List Reorder(List input) + public List Reorder(List input) where T : FfmpegStream { Languages ??= new List(); OrderedTracks ??= new List(); @@ -65,9 +107,21 @@ public class FfmpegBuilderAudioTrackReorder : FfmpegBuilderNode var debug = new StringBuilder(); var data = input.OrderBy(x => { - int langIndex = Languages.IndexOf(x.Stream.Language?.ToLower() ?? String.Empty); - int codecIndex = OrderedTracks.IndexOf(x.Stream.Codec?.ToLower() ?? String.Empty); - int channelIndex = actualChannels.IndexOf(x.Stream.Channels); + int langIndex = 0; + int codecIndex = 0; + int channelIndex = 0; + + if (x is FfmpegAudioStream audioStream) + { + langIndex = Languages.IndexOf(audioStream.Stream.Language?.ToLower() ?? String.Empty); + codecIndex = OrderedTracks.IndexOf(audioStream.Stream.Codec?.ToLower() ?? String.Empty); + channelIndex = actualChannels.IndexOf(audioStream.Stream.Channels); + } + else if (x is FfmpegSubtitleStream subStream) + { + langIndex = Languages.IndexOf(subStream.Stream.Language?.ToLower() ?? String.Empty); + codecIndex = OrderedTracks.IndexOf(subStream.Stream.Codec?.ToLower() ?? String.Empty); + } int result = base_number; if (langIndex >= 0) @@ -89,7 +143,7 @@ public class FfmpegBuilderAudioTrackReorder : FfmpegBuilderNode return data; } - public bool AreSame(List original, List reordered) + public bool AreSame(List original, List reordered) where T: FfmpegStream { for (int i = 0; i < reordered.Count; i++) { diff --git a/VideoNodes/Plugin.cs b/VideoNodes/Plugin.cs index 280b0169a0f487c86172173fae981d6feda6eec5..f8a6d4ba2f49009784b53bd84e85728fd047e404 100644 GIT binary patch literal 756 zcmb7?O-sW-5Qg8g;D13hH<+WV5O_H)k65 z7o6(Oyw=uTYwzAaFlQBd3~mW6K;JO$dc*rV0h>F8j0beR|5^Qgzw<-tSx)Ia<`n~8 PY8zY?! literal 365 zcmZvXL5spL5QXpg6`?0RG^DhYy5fSYC?1rBWxXfqC9WZysOwyp3&_vf$g^3r08nJ}NBDlVh6w< { "1.0", "5.1", "2.0" }; ffAudioReorder.Languages = new List { "fre", "deu" }; + ffAudioReorder.PreExecute(args); ffAudioReorder.Execute(args); FfmpegBuilderExecutor ffExecutor = new(); + ffExecutor.PreExecute(args); int result = ffExecutor.Execute(args); string log = logger.ToString(); @@ -607,6 +611,36 @@ public class FfmpegBuilder_BasicTests } + [TestMethod] + public void FfmpegBuilder_SubtitleTrackReorder() + { + const string file = @"D:\videos\testfiles\movtext.mp4"; + var logger = new TestLogger(); + const string ffmpeg = @"C:\utils\ffmpeg\ffmpeg.exe"; + var vi = new VideoInfoHelper(ffmpeg, logger); + var vii = vi.Read(file); + var args = new NodeParameters(file, logger, false, string.Empty); + args.GetToolPathActual = (string tool) => ffmpeg; + args.TempPath = @"D:\videos\temp"; + args.Parameters.Add("VideoInfo", vii); + + FfmpegBuilderStart ffStart = new(); + ffStart.PreExecute(args); + Assert.AreEqual(1, ffStart.Execute(args)); + var model = (FfmpegModel)args.Variables["FFMPEG_BUILDER_MODEL"]; + + Assert.AreNotEqual("eng", model.SubtitleStreams[0].Language); + + FfmpegBuilderAudioTrackReorder ffAudioReorder = new(); + ffAudioReorder.StreamType = "Subtitle"; + ffAudioReorder.Languages = new List { "eng", "deu" }; + ffAudioReorder.PreExecute(args); + ffAudioReorder.Execute(args); + + Assert.AreEqual("eng", model.SubtitleStreams[0].Language); + + } + [TestMethod] public void FfmpegBuilder_AddAc3AacMp4NoSubs_BlackBars_Normalize_AutoChapters_Upscale4k() { diff --git a/VideoNodes/VideoNodes.csproj b/VideoNodes/VideoNodes.csproj index e7657b20b8abadfcbef2173a04edc8075764540c..8b6bb7ba22dce349838ebc7ca83a38bbad722a07 100644 GIT binary patch delta 20 bcmZotXj0hlh>6i+@?)k*MvKk1%tv_uOj!ot delta 20 bcmZotXj0hlh>6i?@?)k*Mx)KP%tv_uOYH{K diff --git a/VideoNodes/VideoNodes.en.json b/VideoNodes/VideoNodes.en.json index b61e8e0d..35d1f3da 100644 --- a/VideoNodes/VideoNodes.en.json +++ b/VideoNodes/VideoNodes.en.json @@ -70,7 +70,7 @@ "1": "Audio tracks re-ordered in new temporary file", "2": "Audio tracks NOT re-ordered" }, - "Description": "Allows you to reorder audio tracks in the preferred order.\n\nEnter the languages/audio codecs/channels in the order you want. Any not listed will be ordered after the ones entered in their original order.\nIf there are multiple tracks with same language/codec/channels, they will be ordered first by the order you entered, then in their original order.\n\nOutput 1: Audio tracks were reordered\nOutput 2: Audio tracks did not need reordering", + "Description": "Allows you to reorder audio tracks in the preferred order.\n\nEnter the languages/audio codecs/channels in the order you want. Any not listed will be ordered after the ones entered in their original order.\nIf there are multiple tracks with same language/codec/channels, they will be ordered first by the order you entered, then in their original order.\n\nOutput 1: Tracks were reordered\nOutput 2: Tracks did not need reordering", "Fields": { "OrderedTracks": "Ordered Audio Codecs", "OrderedTracks-Help": "The order of audio codecs to the audio tracks by. This is done after the languages (if any)", @@ -274,17 +274,19 @@ } }, "FfmpegBuilderAudioTrackReorder": { - "Label": "FFMPEG Builder: Audio Track Reorder", + "Label": "FFMPEG Builder: Track Reorder", "Outputs": { - "1": "Audio tracks re-ordered in FFMPEG Builder", - "2": "Audio tracks NOT re-ordered" + "1": "Tracks re-ordered in FFMPEG Builder", + "2": "Tracks NOT re-ordered" }, - "Description": "Allows you to reorder audio tracks in the preferred order.\n\nEnter the languages/audio codecs/channels in the order you want. Any not listed will be ordered after the ones entered in their original order.\nIf there are multiple tracks with same language/codec/channels, they will be ordered first by the order you entered, then in their original order.\n\nOutput 1: Audio tracks were reordered\nOutput 2: Audio tracks did not need reordering", + "Description": "Allows you to reorder tracks in the preferred order.\n\nEnter the languages/audio codecs/channels in the order you want. Any not listed will be ordered after the ones entered in their original order.\nIf there are multiple tracks with same language/codec/channels, they will be ordered first by the order you entered, then in their original order.\n\nOutput 1: Tracks were reordered\nOutput 2: Tracks did not need reordering", "Fields": { - "OrderedTracks": "Ordered Audio Codecs", - "OrderedTracks-Help": "The order of audio codecs to the audio tracks by. This is done after the languages (if any)", + "StreamType": "Type", + "StreamType-Help": "The type of tracks to reorder in the FFMPEG Builder", + "OrderedTracks": "Ordered Codecs", + "OrderedTracks-Help": "The order of codecs to the tracks by. This is done after the languages (if any)", "Languages": "Languages", - "Languages-Help": "The order of languages to sort the audio tracks by. This sorting is done before the codec.", + "Languages-Help": "The order of languages to sort the tracks by. This sorting is done before the codec.", "Channels": "Channels", "Channels-Help": "The order of audio channels to sort the audio tracks by. This sorting is done before languages.\nFor example \"5.1\",\"7.1\",\"6.2\",\"2\"" }