Скрепка позволяет вам указать несколько стилей.Как правило, это используется для указания нескольких размеров для загружаемых изображений;Скрепка обрабатывает изображение один раз для каждого стиля и соответственно помещает их в файловую систему.Указав различные форматы видео для ваших стилей и подклассы Paperclip::Processor
, вы можете создавать свои собственные форматы видео.В вашей модели вы должны сделать что-то вроде этого:
has_attached_file :video, :styles => { :mpeg, :ogg, :wmv }, :processors => [:my_custom_processor]
, а затем создать собственный процессор, который будет запускать правильную команду FFmpeg на основе каждого стиля.См. документацию для получения дополнительной информации, но здесь есть фрагмент:
Процессоры Paperclip позволяют вам изменять прикрепленные файлы, когда они прикрепляются любым удобным для вас способом.Сам Paperclip использует программы командной строки для своего включенного процессора миниатюр, но пользовательские процессоры не обязаны следовать его примеру.
Процессоры должны быть определены внутри модуля Paperclip и также должны быть подклассом Paperclip:: Процессор.Существует только один метод, который вы должны реализовать, чтобы должным образом быть подклассом: #make, но также может быть полезен #initialize.Оба метода принимают 3 аргумента: файл, с которым будет работать (который является экземпляром File), хэш опций, определенных в хэше стиля has_attached_file, и сам Paperclip :: Attachment.
All #make необходимо вернуть - это экземпляр File (допустим Tempfile), который содержит результаты обработки.
См. Paperclip.run для получения дополнительной информации об использовании утилит командной строки из процессора.
Когда вы создаете ссылку на вложение Paperclip, вы передаете стиль, чтобы определить, на какой ссылаться:
<%= link_to "mpeg video", @model.video.url(:mpeg) %>
<%= link_to "ogg video", @model.video.url(:ogg) %>