Короче, встречайте Клипы ФКФВ.
Клипы живут во вкладке к иконкой Плей в форме нового поста.
Вот форма клипа.
Нажали черный кружок — включилась камера (Или не включилась! Если на девайсе ее нет. Я хз, у меня просто нет устройств, где нету камеры, я не знаю как это затестить). Точнее будет сказать не то что “включилась камера”, а браузер попросил разрешение использовать камеру — в диалоге это разрешите.
Появится превью и кнопка записи станет активной, мол, нажимай и записывай.
Как только готовы завершить запись и запостить, прожимайте кнопку “Запостить”. Либо можно нажать кнопку Ресета, и тогда текущий прогресс будет потерян и вы вернетесь в исходное положение, и ничего запощщено не будет.
Предел по длине — 1 минута. Если за минуту записи вы сами не нажмете “Запостить” или Ресет, то видос с этой минутой запостится сам.
Когда вы прожимаете “Запостить”, обратите внимание: внизу фиолетовой формы вам будут показаны подсказки: видос заливается, видос прожимается, пост постится. Это не просто так, а чтобы вы не паниковали, что “нажал, а ниче не происходит”.
Под капотом: WebRTC, ffmpeg, StimulusJs, Redis, Sidekiq, S3, Shrine, Plyr, Rails. Заливка в облако идет прямо с фронта — иррационально это ппц, но иначе нормальный UX не сделать.
Не тестил под экзотические браузеры, старинные операционки, мобилы на Симбиане и прочем шлаке. Тестил на маке и винде, в хроме и фаерфоксе, на айфоне и андроиде. Хотел затестить на LambdaTest, но там по 35 бачей в месяц, передумал. Будем тестить на вас, дорогие юзеры.
На мобилах пока работает только с фронталкой. Как будто бы надо уметь юзать еще и бек-камеру, но тут пока не уверен, пишите что думаете.
Что-то не работает — пишите и бейте во все колокола, все починим. Сетап, должен признаться, хоть и казалось бы довольно тривиальный, а все же я никогда не работал с WebRTC и уж тем более не отправлял бинарники по 10 метров из стимулуса.
Хотел вначале сделать заливку чанками, как в случае с видосами игр, — но потом оказалось, что главный боттлнек это ваще не заливка, а процессинг. А процессинг никак не сделать никакими чанками. Я бы отдал ffmpeg-операции куда-нибудь на отдельный инстанс чего-нибудь, но не уверен, что меня за это не разденут+разуют, поэтому процессить будем прямо на машине. Хотя, из хороших новостей, процессинг клипов занимает по времени очень мало, вы сами увидите.
Не знаю что еще сказать, короче пользуйтесь, а я понаблюдаю. Баг-репорты очень велком.