класс ActiveStorage::Analyzer::VideoAnalyzer
Извлекает следующие данные из видео-фрагмента:
-
Ширина (пиксели)
-
Высота (пиксели)
-
Продолжительность (секунды)
-
Угол (градусы)
-
Соотношение сторон экрана
-
Аудио (true, если файл содержит аудиоканалы, false — если нет)
-
Видео (true, если файл содержит видеоканалы, false — если нет)
Пример:
ActiveStorage::Analyzer::VideoAnalyzer.new(blob).metadata
# => { width: 640.0, height: 480.0, duration: 5.0, angle: 0, display_aspect_ratio: [4, 3], audio: true, video: true }
Когда угол видео составляет 90 или 270 градусов, ширина и высота автоматически меняются местами для удобства.
Для работы этого анализатора требуется системная библиотека FFmpeg, которая не предоставляется Rails.
Общедоступные методы класса
# File activestorage/lib/active_storage/analyzer/video_analyzer.rb, line 23 def self.accept?(blob) blob.video? end
Общедоступные методы экземпляра
# File activestorage/lib/active_storage/analyzer/video_analyzer.rb, line 27
def metadata
{ width: width, height: height, duration: duration, angle: angle, display_aspect_ratio: display_aspect_ratio, audio: audio?, video: video? }.compact
end
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.