A system for remote video editing, the system comprising: means for allocating a processing resource level to a first user of a plurality of users connected to the remote video editing system over a network, wherein the allocated processing resource level is dynamically dependent on the number of connected users, said processing resource level allocated to a user not being less than a predefined unit of server processing resource; a storage device for storing a source media file; an input for receiving, over a network, video editing commands pertaining to the source media file from the first user; a virtual representation of edited media, the virtual representation associated with a timeline and comprising the editing commands and a link to the source media file; means for determining, when an editing command is received, whether the received editing command has caused a region of the timeline of the virtual representation to change so as to require re-rendering, and, if so, invalidating the changed region of the timeline; a complexity evaluator that determines a complexity for rendering a proxy representation of the invalidated region of the virtual representation, wherein rendering involves applying the received video editing commands for the region to the source media file; a render scheduler that dispatches the invalidated region for rendering to a background rendering engine if the complexity of the region exceeds a predetermined threshold, such that the region cannot be rendered in real-time using only the predefined unit of server processing resource, wherein the background rendering engine is arranged to render the region using the processing resource level allocated to the first user by applying the received editing commands to a portion of the source media file corresponding to the region and to store the rendered region in a render cache; and a media delivery engine that delivers the proxy representation of the edited source media file, wherein for each region of the virtual representation, if a rendering of the region is present in the render cache, the media delivery engine retrieves the region from the render cache and transmits the region over the network, and if a rendering of the region is not present in the render cache, the media delivery engine retrieves a portion of the source media file corresponding to the region, renders the region in real-time using a real-time rendering engine by applying the received video editing commands to the retrieved portion of the source media file, and transmits the region over the network. means for allocating a processing resource level to a first user of a plurality of users connected to the remote video editing system over a network, wherein the allocated processing resource level is dynamically dependent on the number of connected users, said processing resource level allocated to a user not being less than a predefined unit of server processing resource; a storage device for storing a source media file; an input for receiving, over a network, video editing commands pertaining to the source media file from the first user; a virtual representation of edited media, the virtual representation associated with a timeline and comprising the editing commands and a link to the source media file; means for determining, when an editing command is received, whether the received editing command has caused a region of the timeline of the virtual representation to change so as to require re-rendering, and, if so, invalidating the changed region of the timeline; a complexity evaluator that determines a complexity for rendering a proxy representation of the invalidated region of the virtual representation, wherein rendering involves applying the received video editing commands for the region to the source media file; a render scheduler that dispatches the invalidated region for rendering to a background rendering engine if the complexity of the region exceeds a predetermined threshold, such that the region cannot be rendered in real-time using only the predefined unit of server processing resource, wherein the background rendering engine is arranged to render the region using the processing resource level allocated to the first user by applying the received editing commands to a portion of the source media file corresponding to the region and to store the rendered region in a render cache; and a media delivery engine that delivers the proxy representation of the edited source media file, wherein for each region of the virtual representation, if a rendering of the region is present in the render cache, the media delivery engine retrieves the region from the render cache and transmits the region over the network, and if a rendering of the region is not present in the render cache, the media delivery engine retrieves a portion of the source media file corresponding to the region, renders the region in real-time using a real-time rendering engine by applying the received video editing commands to the retrieved portion of the source media file, and transmits the region over the network.