Это уже интереснее
Суть в следующем: предположим вы отдаете файл в формате .avi, но не все, а только лишь некоторые (с) Кличко, могу воспроизводить этот файл. Для того чтобы его можно было смотреть с разных устройств - нужно выполнять конвертацию между форматами.
Предположим, что мы живем в мире честных людей, тогда я вижу следующий вариант (комбинация 5 и 2 и 3 метода):
1) Вы делаете скрипт, который выдает hash токен на доступ к определенным файлам. Где-то храните связку - hash и доступных файлов.
2) Делаете скрипт, который через X-Accel-Redirect, при совпадении токена отдает файл.
Таким образом, вы выдаете открытый всем (т.е. его можно подсмотреть в GET-параметрах) hash токен, по которому в течении определенного времени есть доступ к файлу. Например:
Вы выдаете компании X доступ. Пишете hash - 123456789
И определенные файл: bitrix_developer.avi [ID: 1], bitrix_content_manager.avi [ID: 2], bitrix_framework.avi [ID: 3]
И говорите: чтобы отдать файл пользователю вы должны отправить его:
noname.com/download.php?file_id=1&hash=123456789
Это отправит пользователя на скачивание bitrix_developer.avi [ID: 1] от компании с хешем: 123456789
Когда истечет токен, он не сможет скачать файл. Полным перебором ID он может скачать все доступные файлы