1. Закрыть доступ к статическим файлам (фильмам)
2. Невозможность копирования плеера
3. Возможность сделать рекламу без перемотки
Я предполагаю что для этого погдойдет node.js. Можно написать соккет сервер который будет служить для плеера контроллером (принимать данные от браузера для подтверждения что пользователь именно с страницы сайта смотрит) ну и источником контента также будет соккет сервер на Node.js (рекламы и фильмов)
Почему спрашиваю. Сейчас можете сказать бери и пробуй на ноде. Я кроме php и немного js ничего не знаю.
То что мне посоветуете буду учить для решения данной задачи.
FireGM: сначала на локальной все напишу потом буду решать. Мне 2 - 3 терабайта с головой. покупать оптом SSD и серверное оборудование. Размещу в Офисе на окраине (до 50 долл с отоплением) там же и провайдер имеет хаб на район. можно взять мощный канал и даже два. там еще один провайдер. Для популярных фильмов (например один имеет просмотрі как остальные) будет орендованный VDS туда их буду переселять при перегрузках, а и для самого сайта и плеера тож орендованный отдельный VDS с большим обьемом ОЗУ. как то так вижу покаместь. во всяком случае арендовать для хранения невыгодно. пол года орендовал мог бы купить
возможно будет выгоднее разрешить. но чтоб была рекламма без возможности перемотки и когда идет реклама, должна появлятся ссылочка в плеер "перейти на сайт рекламодателя". также не плохо будет сделать рекламку по середине фильма.
Pantene742: это в браузере происходит, бекенд тут не имеет значения. С беканда защитить фронт никак нельзя. Все что на фронте будет вскрыто, если захочет кто-то. Разрешить доступ к видео = отдать всем бесплатно. Взял другой плеер и вставил ссылку на видео, поэтому нужна защита от хотлинка в любом случае. В качестве защитыв свой плеер можно встроить генератор хеша с помощью которого авторизуеттся ваш плеер на вашем сервере, даже если стоит на другом сайте. Но это надо делать на флеше, и его все равно вскрыть не проблема и достать алгоритм генерации хеша = открытый доступ квидео.
Да и на js можно сделать тоже, но тогда js для плеера надо генерировать на вашем сервере файл с хешем для обхода хотлинка. Т.д. каждый раз при открытии плеера он запрашивает с вашего сайта код, который генерируется динамически.
Александр Аксентьев:
Ссылки на видео не должно быть (названия файлов будут генерироватся из случайных символом да и вообще доступ к папкам где они лежат будет закрыт). это должен знать только соккет сервер. он берет контент рекламы или видео и направляет в прослушиваемый браузером порт. как защитить от кражи. при генерации страницы с плеером будет генерироваться несколько блоков ajax кода (каждый раз по разному от 3 до 6 например) при генерации в сессию будет записыватся эта инфа. потом этот код выполняется на фронте и php скрипт сверяет данные передаваемые js скриптами с теми что записались в сессию при генерации страницы. или же так. сначала пользователь конектися к серверу получает страницу з ajax кодами. (записывается инфа в сессию например ип и название браузера) потом еще на странице выполняется с задержкой в секунду ajax код подтверждающий, что страница запущена в браузере. потом соккет сервер доставляющий видеопоток в плеер идет в сессию (redis) и смотрит можно ему показать или нет.
Александр Аксентьев: тоесть если данные записанные в сессию не совпадают с данными которые должны были бы передать блоки кода ajax. то записать в сессию "неподтвержден" и когда нажмет на плей. соккет сервер пойдет в redis(данные сессии будут в нем, ну или mysql) глянет по данному подключению инфу, а там "нельзя ему показыать"
Я описал самый эффективный и простой способ, в статье полное описание как это сделать.
Все что вы накрутили сверху кроме путаницы ничего не дает. Да еще и серверов не напасешься на столько запросов и такую кашу из запросов.
Александр Аксентьев: хорошо. проблему кражи решать буду так. При помощи чего можно сделать чтоб показывалась реклама и только после нее сам фильм ? в таком случае пускай воруют на здоровье.
Hedy: не снимать же =)) двое или трое людей будут качать с торрентов и размещать на сайте. при помощи библиотеки ffmpeg хочу автоматизироватить кодирование видео. за месяц 500 фильмов зальют.
Александр Аксентьев: ну у меня в голове такой алгоритм нарисовался. конектимся к сокет серверу. он дает ответ в фрон что это рекламму. посылает видео данные рекламмы и ссылку которую вывести. на сервере запускается таймер (длительностью в рекламный ролик) после прохождения времени соккет сервер сообщает в фронт что сейчас будет фильм ну и начинается поток с фильмом.
Александр Аксентьев: есть такая штуковина как ffmpeg server она позволяет через соккет транслировать фильм. можно выбрать субтитры, язык, указать место с какого воспроизводить. Но напрямую конектить к нему нельзя. Надо получается как то подключиться к соккет порту ffmpeg server запросить фильм с нужными параметрами и передать по нужному коннекту. Подводные камни которые будут ТОЧНО Буферы портов, очистка мусора. Походу это не отдебажить идеально. надо поднимать несколько серверов чтоб была безперебойность. Настраивать автоперезапуск.
Александр Аксентьев: Александр Аксентьев: есть такая штуковина как ffmpeg server она позволяет через соккет транслировать фильм. можно выбрать субтитры, язык, указать место с какого воспроизводить. Но напрямую конектить к нему нельзя. Надо получается как то подключиться к соккет порту ffmpeg server запросить фильм с нужными параметрами и передать по нужному коннекту. Подводные камни которые будут ТОЧНО Буферы портов, очистка мусора. Походу это не отдебажить идеально. надо поднимать несколько серверов чтоб была безперебойность. Настраивать автоперезапуск.
Pantene742: да у вас сервер лопнет от стриминга и реалтайм кодирования еще. ЛУчше просто отдавать через nginx файл, иначе опять же сервером не напасешься. Чем сложнее операции тем больше вы будете кушать ресурсов. В итоге получите что один сервер будет еле тянуть десяток фильмов одновременно. Чем больше в цепочке софта, тем хуже серверу.
Александр Аксентьев: слабое звено не ОЗУ и не процессор, а интернет трафик. Админка с кодером на отдельной машине понятное дело. даже MySQL и темплейт на отдельную пойдет. Тот сервер что с фильмами будет только с апачем/Nginx и файлами. по FTP или RestFull(на php написанном) взаимодействовать с сервером где темплейт. три машини. 1. файлы, 2. база и темплейт, 3. Админка.