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