Из того, что я понял из вопроса, есть две подзадачи для вас:
- Разрешение видео не равно 1080x1920.
- Нет временных шагов, т.е. нет видеокадров должно быть равно определенному числу (12600 в приведенном примере).
Обе проблемы можно решить с помощью numpy .pad .
Пусть videodata
будет массивом размером 1065x1900 с 1200 кадрами.
a = np.random.random((1065, 1900, 3, 1200))
Итак, чтобы сделать разрешение видео 1080x1920, мы можем сделать следующее:
b = np.pad(a, ((7,8),(10,10),(0,0),(0,0)), mode='constant', constant_values=0)
b.shape
Вы получите (1080, 1920, 3, 1200)
. Итак, теперь ваше видео 1080x1920. Значение (7,8)
указывает numpy заполнять (до, после) эту ось, поэтому мы добавляем 7 значений впереди и 8 значений в конце первой оси.
Теперь для добавления дополнительных кадров мы Будем прокладывать вдоль последней оси.
b = np.pad(a, ((7,8),(10,10),(0,0),(0,10)), mode='constant', constant_values=0)
b.shape
Получим (1080, 1920, 3, 1200)
. Таким образом, мы добавили еще 10 кадров к видео.
Надеюсь, что это ответ на ваш вопрос.