Use QuickTime Player to create a video wall

22.05.2009

Without further ado, here's the code, with thanks to reader yossie for creating and sharing it. Copy and paste the following into a new Script Editor (in Applications -> AppleScript) document.

on open filelist tell application "QuickTime Player" to open filelist run end open on run tell application "QuickTime Player" set ratio to 4 / 3 tell application "Finder" to set display_bounds to bounds of window of desktop set display_width to (item 3 of display_bounds) set display_height to (item 4 of display_bounds) - 42 -- menu height + title bar set window_count to count of windows set max_pixels to 0 repeat with potential_cols from 1 to window_count -- try all possibilities - hardly optimal but who cares. set potential_rows to round (window_count - 1) / potential_cols + 1 rounding toward zero set {potential_window_width, potential_window_height} to {round display_width / potential_cols rounding toward zero, round display_height / potential_rows rounding toward zero} if potential_window_width / potential_window_height < ratio then set {potential_window_width, potential_window_height} to {potential_window_width, round potential_window_width / ratio rounding toward zero} else set {potential_window_width, potential_window_height} to {potential_window_height * ratio, potential_window_height} end if set used_pixels to potential_window_width * potential_window_height * window_count if used_pixels > max_pixels then set {window_width, window_height, cols, rows} to {potential_window_width, potential_window_height, potential_cols, potential_rows} set max_pixels to used_pixels end if end repeat set {x, y} to {0, 0} set wins to (get every window) repeat with win in wins set doc to document of win set controller type of doc to none set looping of doc to true set {wi, hi} to natural dimensions of doc if wi / window_width > hi / window_height then set dimensions of doc to {window_width, hi / (wi / window_width)} else set dimensions of doc to {wi / (hi / window_height), window_height} end if set x to x + 1 if x = cols then set {x, y} to {0, y + 1} end repeat set {x, y} to {0, 0} set wins to (get every window) repeat with win in wins set {wi, hi} to natural dimensions of doc if wi / window_width > hi / window_height then set bounds of win to {window_width * x, 22 + window_height * y, window_width * x + window_width, 22 + window_height * y + hi / (wi / window_width)} else set bounds of win to {window_width * x, 22 + window_height * y, window_width * x + wi / (hi / window_height), 22 + window_height * y + window_height} end if set x to x + 1 if x = cols then set {x, y} to {0, y + 1} end repeat set wins to (get every window) repeat with win in wins play document of win end repeat activate end tell end run