Я успешно реализовал обмен видео в своем приложении с использованием собственных и firebase, но хочу, чтобы размер сохраняемого видео не превышал 1080x1080 (возможно, 720 в зависимости от его внешнего вида).
Максимальное количество видеороликов: 8 секунды, я стараюсь изо всех сил держать их под 5 МБ каждый, если это возможно. Мне удалось выполнить некоторое сжатие на стороне клиента (кадрирование в квадрат / кадрирование), но я надеюсь, что смогу сжать видео еще больше, не теряя этого качества с помощью облачных функций (триггер хранилища).
После некоторого осмотра, похоже, что Moviepy - хороший вариант, но он использует python, и я не уверен, как я могу использовать этот сценарий внутри триггера хранения облачной функции.
Вот как это выглядит:
//Not sure how this will import
import moviepy.editor as mp
//Can I get the video here from the bucket path in a cloud function?
clip = mp.VideoFileClip("video-stored.mp4")
clip_resized = clip.resize(height=1080) # make the height 1080px ( According to moviePy documenation The width is then computed so that the width/height ratio is conserved.)
//resize video, then we need to store it in the same location (same file path)
clip_resized.write_videofile("video-stored-resized.mp4")
Мне бы хотелось услышать некоторые предложения относительно сжатия видео через облачную функцию и мысли об использовании вышеуказанного скрипта / модуля с облачными функциями.