i'd probably do something like this:
upload the low quality items into albums where you want users to browse and find them. upload the high quality into a separate hidden album (the album has restricted permissions but the movies inside it have 'view original' permission). use a naming convention like you suggested; maybe a.mov -> a.big.mov or something like that.
finally, modify modules/core/classes/GalleryMovieItem.class function render(). Make it add the "download full size" link in the html output. To make the link first do $item->getPathComponent() and apply the naming convension for the full quality movie. Then call:
list($ret, $id) = GalleryCoreApi::fetchItemIdByPath('/bigmovies/' . $bigMovieName);
if ($ret->isError()) {
return array($ret->wrap(__FILE__, __LINE__), null);
}
list ($ret, $bigMovie) = GalleryCoreApi::loadEntitiesById($id);
if ($ret->isError()) {
return array($ret->wrap(__FILE__, __LINE__), null);
}
$bigMovieUrl = $urlGenerator->generateUrl(array('view' => 'core:DownloadItem', 'itemId' => $id, 'serialNumber' => $bigMovie->getSerialNumber()));