2015-10-11 6 views
3

Я хочу настроить загрузку видео, чтобы пользователи могли просматривать и воспроизводить их. Я новичок в rails, догадываюсь, кто-нибудь знает, как это можно сделать?Воспроизведение видео с помощью paperclip rails

+1

Настройка, как другие файлы (следовать Paperclip документации), а также использовать [video_tag] (http://api.rubyonrails.org/classes/ActionView/ хелперы/AssetTagHelper.html # метод-я-video_tag). –

ответ

3

Вы посмотрите на Paperclip

В модели, которая будет содержать видео, которое потребуется правильный формат (ffmpeg) и проверку на видео можно:

has_attached_file :attachment, 
      styles: lambda { |a| a.instance.is_image? ? {:small => "x200>", :medium => "x300>", :large => "x400>"} : {:thumb => { :geometry => "100x100#", :format => 'jpg', :time => 10}, :medium => { :geometry => "300x300#", :format => 'jpg', :time => 10}}}, 
      :processors => lambda { |a| a.is_video? ? [ :ffmpeg ] : [ :thumbnail ] } 
    validates_attachment_content_type :video, content_type: /\Avideo\/.*\Z/ 

Обновление от комментариев:

has_attached_file :video, styles: { 
    :medium => { 
     :geometry => "640x480", 
     :format => 'mp4' 
    }, 
    :thumb => { :geometry => "160x120", :format => 'jpeg', :time => 10} 
    }, :processors => [:transcoder] 
+0

Итак, создавая рельсы, создайте прикрепление к папке скрепки, затем добавив выше в файле model/post.rb /, затем добавив: вложение в post_params/then для представлений <% = video_tag post.attachment.url (: medium), controls: true , тип: «video/mp4», размер: «612x612»%> –

+0

ffmpeg обесценился, поэтому я использую paperclip-av-transcoder –

+0

проверить обновленный пост – Cyzanfar

1

Там некоторый живой код для достижения этой here:

#Gemfile 
gem "paperclip-ffmpeg", "~> 1.2.0" 

#app/models/attachment.rb 
class Attachment < ActiveRecord::Base 

    has_attached_file :attachment, 
     styles: {:thumb => { geometry: "100x100#", format: 'jpg', time: 10}, medium: { gemometry: "300x300#", format: 'jpg', time: 10}}, 
     processors: [ :ffmpeg ] 

end 

Основная проблема у вас с этим что-то вызов preprocessing.

Когда вы загружаете любое приложение с помощью Paperclip, оно должно обработать его перед его хранением. Обработка преобразуется в правильный формат и изменяет его размеры (вы также можете делать с ней другие интересные вещи).

Обработка видео немного отличается от обработки изображений, поскольку сначала вам нужно обработать видео, чтобы ваш сервер мог воспроизвести его, а затем вам также нужно снять с него несколько скриншотов.

Таким образом, вам нужен собственный процессор, который @Czanfar разместил в своем ответе либо будет выбор между ffmpeg или transcoder


Я также написал ответ на это здесь: Rails video uploading


Кстати, вот когда я пошел к ребятам, которые сделали Скрепка:

enter image description here

+0

приятный помощник! – Cyzanfar

+2

Спасибо, бутон, это было в Стокгольме –

1

спасибо Cyzanfars ответ Я получил его работу!

Убедитесь, что вы установили FFmpeg

brew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype --with-frei0r --with-libass --with-libvo-aacenc --with-libvorbis --with-libvpx --with-opencore-amr --with-openjpeg --with-opus --with-rtmpdump --with-schroedinger --with-speex --with-theora --with-tools 
Смежные вопросы