рдЖрдЬ рдПрдХ рдмрдбрд╝реЗ рд╡реАрдбрд┐рдпреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реЛрдирд╛ рдЕрд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдорддреМрд░ рдкрд░ рд╡реЗ рд╕рдм рдХреБрдЫ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд┐рдХреНрдХреЗ рдХрд╛ рджреВрд╕рд░рд╛ рдкрдХреНрд╖ рдкреБрд░рд╛рдиреЗ рдШрд░реЗрд▓реВ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ, рдкреНрд░рд╛рдЪреАрди рд▓реИрдкрдЯреЙрдк рдФрд░ рдЕрдиреНрдп рдкреЛрд░реНрдЯреЗрдмрд▓ рдЧреИрдЬреЗрдЯ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрддрддрд╛ рд╣реИред
рдШрд░реЗрд▓реВ рд╕рд╣реВрд▓рд┐рдпрдд рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░рдг рд╕реЗ рдореИрдВ рдЗрд╕рдХреЗ рдкрд╛рд░ рдЖрдпрд╛ред
рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдПрдХ рдЕрдЪреНрдЫрд╛ рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреЗрд╢рди рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, 60 "рдкреНрд▓рд╛рдЬреНрдорд╛ рдФрд░ рдЫрд╣-рдЪреИрдирд▓ рдзреНрд╡рдирд┐ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдореЗрд░реА рдЖрддреНрдорд╛ рдХреЗ рд╕рд╛рде рдЯреНрдпреВрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ,
AutoHotkey рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ
WinLIRC USB IR рд░рд┐рд╕реАрд╡рд░ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рд╣рд░ рд░рд╛рдд рдлрд┐рд▓реНрдореЗрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдмреЗрдбрд░реВрдо рдореЗрдВ рдХрд╡рд░реНрд╕ рдХреЗ рдиреАрдЪреЗ рд╕реЗ рд░реЗрдВрдЧрддреЗ рд╣реБрдПред рдЬрд╣рд╛рдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг 40 "рд╣рд╛рд░реНрд╡реЗрд╕реНрдЯрд░ рдЦрд░реАрджрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдЕрд╡рд╕рд░ рдкрд░ рдПрдХ рдкреНрд░рдореБрдЦ рд░рд┐рдЯреЗрд▓ рдЪреЗрди рдХреЗ рд╕реНрдЯреЛрд░ рдореЗрдВ рдмреЗрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрд▓рд╕реАрдбреА рдЯреАрд╡реА рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдПрдХ рдШрд░реЗрд▓реВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдФрд░ рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдХреЗ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд┐рдХрд▓рд╛, рд▓реЗрдХрд┐рди рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдпрд╣ AVI рдФрд░ MPEG-4-ASP рдХреЛрдбреЗрдХреНрд╕ рдФрд░ рдХрдордЬреЛрд░ рд▓реЛрдЧреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдерд╛ред
рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рдерд╛ - AVI рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ рдЕрдирдЪрд╛рд╣реЗ рдлрд┐рд▓реНрдореЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдлрд┐рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд▓рд╛рдЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдПрдВ рдЬрдм рдЯреЛрд░реЗрдВрдЯ рдШрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдорд╛рдзрд╛рди рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдФрд░ рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд╕рд░реНрд╡рд░ рдЬреЗрдВрдЯреВ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдпрд╣ рд╕рдм рдХреБрдЫ рдПрдХ рд╕реНрдиреИрдк рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рдерд╛ред рд▓рд╛рдареА рдФрд░ рдЕрдиреНрдп рдЯрд┐рдирд╕реЗрд▓ рдХреЗ рд╕рд╛рде рдкреЗрдВрдЪ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд┐рдирд╛ рддреБрд░рдВрдд рдмрд╣ рдЧрдП рдереЗ, рдФрд░ рдмрд╛рдХреА рдХреЗрд╡рд▓
рдПрд╡реАрдбреЗрдореБрд╣ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╕реАрдПрд▓рдЖрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджреЛрдиреЛрдВ рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд░рд╣рд╛ рдФрд░ рдЙрдкрдХрд░рдг рдХреЛ рд╡рд╣ рдХрд░рдиреЗ рджреЗрдВ рдЬреЛ рд╡рд╣ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ - рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдПрд╡рд┐рдбреЗрдордХреНрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдЯреЛрдореЗрд╢рди
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрд╡реАрдбреЗрдордХреНрд╕ рдХрд╛ рд╕реАрдПрд▓рдЖрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрд▓реНрдХрд┐ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рдирд┐рдХрд▓рд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд░рди рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ:
avidemux2_cli --run script
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╛рд░реВрдк рдХреЛ рджреЗрдЦрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрд╡реАрдбреЗрдордХреНрд╕ рдЬреАрдпреВрдЖрдИ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдбреЗрдХреНрд╕ рдФрд░ рд░реВрдкрд╛рдВрддрд░рдг рдлрд╝рд┐рд▓реНрдЯрд░ рдХреА рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрд╡реАрдбреЗрдордХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдВрдЯреЗрдирд░ рдХреЛ рдмрджрд▓рдирд╛ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдХреЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рдЗрд╕рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЛ 720 рдкрд┐рдХреНрд╕реЗрд▓ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рдкрд┐рдХреНрд╕реЗрд▓реНрд╕ рдореЗрдВ рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдБрдЪрд╛рдИ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдЙрдЯрдкреБрдЯ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдиреНрдп рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред рдореБрдЭреЗ
MediaInfo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛, рдЬреЛ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рдЖрдпрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЫрд╡рд┐ рдХрд╛ рдкрд╣рд▓реВ, рдФрд░ рд╕реЗрдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдКрдВрдЪрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╡рд┐рдЪрд╛рд░ рдереЛрдбрд╝рд╛ рдКрдВрдЪрд╛рдИ рдкрд░ рд▓рдЯрдХрд╛рдП рдЧрдП рдЯреАрд╡реА рдХреЗ рджреГрд╢реНрдп рд╕рдВрдкреАрдбрд╝рди рдХреА рднрд░рдкрд╛рдИ рдХреЗ рд▓рд┐рдП рдКрдВрдЪрд╛рдИ рдореЗрдВ "рд╡рд╛рдЗрдбрд╕реНрдХреНрд░реАрди" рдлрд┐рд▓реНрдореЛрдВ рдХреЛ рдлреИрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ рдерд╛ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдЕрдЬреАрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджрд┐рдЦрд╛рдИ рджреА (awk рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдХреЙрдореНрдкреИрдХреНрдЯрдиреЗрд╕ рдХреЗ рдХрд╛рд░рдг рд╣реИ, рддреБрд▓рдирд╛ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдореЛрддреА рдХреЗ рд╕рд╛рде)ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдорд╛рд╕реНрдХ рдХрд░рдХреЗ * .mkv рдЦреЛрдЬрддреА рд╣реИ (рдХрд┐рд╕реА рднреА рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдмрджрд▓рдирд╛ рдЖрд╕рд╛рди рд╣реИ), рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдорд┐рд▓реА рдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдпрд╣ MediaInfo рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ AviDemux рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдирд╡рд░реНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рднреА рдЬреЛрдбрд╝рддрд╛ рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдЪрдпрдирд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдкреНрд░рдмрдВрдзрдХ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИред
рд▓рд┐рдкрд┐ рд╕реНрд░реЛрдд
рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ, рдЪрдпрдирд┐рдд рд╡реАрдбрд┐рдпреЛ рдХреЛрдбреЗрдХ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕рдВрдкреВрд░реНрдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрдерд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ AviDemux рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдмреИрдХрд╕реНрд▓реИрд╢ рдЪрд░рд┐рддреНрд░ рдХреЗ рд╕рд╛рде рд╕рднреА рджреЛрд╣рд░реЗ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЗрд╕ awk рдореЗрдВ рд╕реА рдХреЗ рд╕рдорд╛рди рд╣реИ)ред
BEGIN { # # , WIDTH = 720 HEIGHT = 404 # CROP = 1 # . / STRETCH = 0.15 # , BATCH = "run.cmd" # AVIDEMUX = "P:\\myProgs\\AVIDemux.2.5.6\\avidemux2_cli.exe" MEDIAINFO = "P:\\myProgs\\MediaInfo_CLI_0.7.59\\MediaInfo.exe" # , (dir, ls, find) LIST = "dir /b *.mkv" # ASPECT = WIDTH / HEIGHT STRETCH += 1 while((LIST | getline fn) > 0) { printf("FILE: %s\r\n", fn); InfoCommand = MEDIAINFO " --Output=Video;%Width%/%Height%/%AspectRatio%/%DisplayAspectRatio% \""fn"\"" if((InfoCommand | getline tmp) > 0) { if (match(tmp, /([0-9]+)\/([0-9]+)\/([0-9.]+)\/([0-9.]+)/, m)) { w = int(m[1]) h = int(m[2]) a = 0.0 + m[3] d = 0.0 + m[4] if (a != d) { printf("\tAspect/Display are not equal %d %d\r\n", a, d); } # correct dimentions to square pixels cw = w ch = w / d # stretch to fit display if (cw / ch > ASPECT) { sh = cw / d * STRETCH printf("\timage is wider than display, do vertical stretch\r\n") if (sh > cw / ASPECT) { sh = cw / ASPECT } sw = cw # crop to fit display if (CROP && (sw / sh > ASPECT)) { printf("\timage is still wider than display, do horisontal crop\r\n") sw = sh * ASPECT } fw = (sw < WIDTH) ? rint(sw, 8) : rint(WIDTH, 8) fh = rint(sh / sw * fw, 4) } else if (cw / ch < ASPECT) { sw = ch * d * STRETCH printf("\timage is higher than display, do horisontal stretch\r\n") if (sw > ch * ASPECT) { sw = ch * ASPECT } sh = ch # crop if (CROP && (sw / sh > ASPECT)) { printf("\timage is still higher than display, do horisontal crop\r\n") sh = sw / ASPECT } fh = (sh < HEIGHT) ? rint(sh, 4) : rint(HEIGHT, 4) fw = rint(sw / sh * fh, 8) } rw = cw - sw rh = ch - sh printf("\t%dx%d -stretch-crop-> %d(%+d)x%d(%+d) -display-fit-> %dx%d\r\n", w, h, sw, -rw, sh, -rh, fw, fh); # calc 4 crop values if (rw < 0) rw = 0 if (rh < 0) rh = 0 rwl = int(rw / 2) rwr = int(rw - rwl) rht = int(rh / 2) rhb = int(rh - rht) # make new filenames rsfn = fn avifn = fn sub(/\.[A-Za-z0-9_]+$/, ".rs", rsfn) if (rsfn == fn) rsfn = rsfn ".rs" sub(/\.[A-Za-z0-9_]+$/, ".avi", avifn) if (avifn == fn) avifn = avifn ".avi" # avidemux sript does not like "\" in path gsub(/\\/, "/", fn) gsub(/\\/, "/", avifn) # save run script printf("//AD <- Needed to identify//\r\n")>rsfn printf("var app = new Avidemux();\r\napp.load(\"%s\");\r\napp.video.setPostProc(3,3,0);\r\napp.video.addFilter(\"crop\",\"left=%d\",\"right=%d\",\"top=%d\",\"bottom=%d\");\r\napp.video.addFilter(\"resize\",\"w=%d\",\"h=%d\",\"algo=0\");\r\n", fn, rwl, rwr, rht, rhb, fw, fh)>rsfn printf("app.video.codecPlugin(\"****\");\r\n")>rsfn printf("app.audio.reset();\r\napp.audio.codec(\"Lame\",128,20,\"80 00 00 00 00 00 00 00 02 00 00 00 05 00 00 00 00 00 00 00 \");\r\napp.audio.normalizeMode=1;\r\napp.audio.normalizeValue=0;\r\napp.audio.delay=0;\r\napp.audio.mixer=\"STEREO\";\r\napp.audio.drc=true;\r\napp.setContainer(\"AVI\");\r\n")>rsfn printf("app.save(\"%s\");\r\napp.Exit();\r\n", avifn)>rsfn # add to batch printf("%s --nogui --run \"%s\"\r\n", AVIDEMUX, rsfn)>BATCH } } close(InfoCommand) } close(LIST) } function rint(v, b) { # floor value to specified base return int(int(v + 0.5) / b) * b }