Серверное приложение на C# (или NodeJS)
14 000 руб. за проект
•
наличный расчёт, безналичный расчёт, электронные деньги
Требуется написать программу на C# (или на JavaScript для NodeJS), которая будет размещена в облаке Amazon (AWS) и будет выступать в роли видео-сервера.
При обращении на сервер, например, по запросу http://example.com/video/company_id/video_id/clien... программа читает входящие параметры и в соответствии с ними:
1. Проверяет, имеет ли client_id доступ к запрашиваемому файлу (выполняет API-запрос на один сервер)
2. Читает видеофайл video_id, который лежит в каталоге компании company_id на Amazon S3
3. Производит наложение водяного знака на видеопоток, который транслирует клиенту в ответ на его запрос
Важно:
— Стриминг производится с content-type: video/mp4 и с учетом partial content
— Водяной знак специфичен для каждого клиента. Т.е. он будет генерится программой на ходу
— Наложение должно происходить в real time
Насколько я изучил этот вопрос, реалтайм наложение позволяет сделать библиотека ffmpeg. Но я не выяснил, возможно ли вывод результата этой библиотеки направить в поток и можно ли читать файл кусочками (в случае, если клиент в плеере сразу перемотал ролик на середину).
Самый хардкорный вариант, как это можно сделать — читать "вручную" файл покадрово и с помощью графической библиотеки осуществлять наложение. Но здесь очень критичен вопрос нагрузки на процессор и использования ОЗУ.
Само собой разумеется, что программа должна работать асинхронно и обрабатывать не одного клиента за раз. В случае с NodeJS это делается на раз, но более требовательно к ресурсам.
P.S. Насчет API-запроса, насчет файлов на S3 — все это решаемые и обсуждаемые вопросы. От вас прежде всего ожидается компетентность в основном вопросе — реалтайм наложение графического водяного знака и стриминг результирующего потока.
UPD Будем считать, что требуется транскодирование файлов 460p/720p mpg/mp4 формата не больше 30fps в 460p 25fps с наложением вышеописанного оверлея
При обращении на сервер, например, по запросу http://example.com/video/company_id/video_id/clien... программа читает входящие параметры и в соответствии с ними:
1. Проверяет, имеет ли client_id доступ к запрашиваемому файлу (выполняет API-запрос на один сервер)
2. Читает видеофайл video_id, который лежит в каталоге компании company_id на Amazon S3
3. Производит наложение водяного знака на видеопоток, который транслирует клиенту в ответ на его запрос
Важно:
— Стриминг производится с content-type: video/mp4 и с учетом partial content
— Водяной знак специфичен для каждого клиента. Т.е. он будет генерится программой на ходу
— Наложение должно происходить в real time
Насколько я изучил этот вопрос, реалтайм наложение позволяет сделать библиотека ffmpeg. Но я не выяснил, возможно ли вывод результата этой библиотеки направить в поток и можно ли читать файл кусочками (в случае, если клиент в плеере сразу перемотал ролик на середину).
Самый хардкорный вариант, как это можно сделать — читать "вручную" файл покадрово и с помощью графической библиотеки осуществлять наложение. Но здесь очень критичен вопрос нагрузки на процессор и использования ОЗУ.
Само собой разумеется, что программа должна работать асинхронно и обрабатывать не одного клиента за раз. В случае с NodeJS это делается на раз, но более требовательно к ресурсам.
P.S. Насчет API-запроса, насчет файлов на S3 — все это решаемые и обсуждаемые вопросы. От вас прежде всего ожидается компетентность в основном вопросе — реалтайм наложение графического водяного знака и стриминг результирующего потока.
UPD Будем считать, что требуется транскодирование файлов 460p/720p mpg/mp4 формата не больше 30fps в 460p 25fps с наложением вышеописанного оверлея
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.