Ми на роботі користувалися Go To Meeting, Uber Conference та Zoom ще до початку пандемії. Але зазвичай для спілкування з клієнтами а не між собою.
В березні минулого року почали працювати віддалено і Zoom став найпопулярнішим сервісом для внутрішніх конференцій. Одна з його можливостей — виокремлення зображення людини та заміна фону на картинку чи відео. Мені не дуже подобається показувати свою кімнату тому я почав використовувати стандарні фони, але вони швидко приїлися. Потім настала черга фото, зроблених власноруч, але одна і та сама картинка 30-60 хвилин теж набридає (принаймні мені). На жаль, неможливо налаштувати Zoom для зміни картинок автоматично.
Потім у мене з’явилася ідея, що можна згенерувати відео з набору фоток за допомогою ffmpeg.
Спочатку я хотів зробити відео розміром з екран мого ноутбука (2880×1800) але виявилося, що Zoom дозволяє максимум 1080p (1920×1080).
Основна морока виявилася в кадруванні фотографій, які я зазвичай роблю 4:3, до 16:9.
Це можна зробити в два кроки — спочатку експортувати фотографії (для прикладу, з Lightroom) розміром 1920 пікселів по горизонталі а потім налаштуватм ffmpeg таким чином, щоб він розміщував фотографії по центру кадру та обрізав зайве по вертикалі.
Також у мене виявилося кілька панорам, які значно (значно!) ширші за 16:9, для них потрібно робити навпаки — експортувати розміром 1080 по вертикалі.
Природньо, що вертикальні фотографії (в «портретній» орієнтації) для такого відео не підійдуть.
На macOS програму ffmpeg можна поставити з Homebrew, на Linux — з репозиторіїв, здається на Windows це теж якось можна зробити.
Команда для конвертації фотографій в поточній папці в mp4 (H.264) відео виглядає ось так (кожне фото буде показуватися 1 хвилину):
ffmpeg -framerate 1/60 -pattern_type glob -i '*.jpg' -c:v libx264 -r 1 -s 1920x1080 -filter:v "crop=1920:1080" -pix_fmt yuv420p video.mp4
В мене розмір відео виходив приблизно однаковий з розміром оригінальних фоток (~ 80Мб).
Я вже зробив два відео тривалістю 60-70 хвилин, скоро планую зробити і третє.