2013-10-07 5 views
3

Я пытаюсь включить загрузку видео в свой пост. Невозможно получить его, чтобы отобразить видео. Видео загружается, я могу подтвердить, что пока мне удается щелкнуть правой кнопкой мыши по области видео и загрузить его. Проблема заключается в том, как правильно ее просматривать.Загрузить видеоролик при загрузке

миграции:

class AddAttachmentVideoToPosts < ActiveRecord::Migration 
    def self.up 
    change_table :posts do |t| 
     t.attachment :video 
    end 
    end 

    def self.down 
    drop_attached_file :posts, :video 
    end 
end 
def change 
    create_table :videos do |t| 
     t.string :video_file_name 
     t.string :video_content_type 
     t.integer :video_file_size 
     t.datetime :video_updated_at 

     t.timestamps 
    end 
end 

Сообщение Модель

class Post < ActiveRecord::Base 
    default_scope :order => 'created_at desc' 
    attr_accessible :content, :title, :photo, :photo_delete, :video, :video_delete, :dependent => :destroy 
    has_attached_file :photo, :styles => { :thumb => "600x600#", :medium => "300x300#", :small => "160x160#"} 
    has_attached_file :video 
    validates_uniqueness_of :title 
    validates_presence_of :title, :content 
    has_destroyable_file :photo, :video 
end 

Видео часть в моем почтовом _form

<div class="visible-md visible-lg"> 
    <%= f.file_field :video, :style => "float: left;" %> 
    <%= f.check_box :video_delete, :style => "float: left;" %> &nbsp;Delete video 
    </div><br /> 
<div class="visible-xs"> 
    <%= f.file_field :video, :style => "center" %> 
    <%= f.check_box :video_delete, :style => "center" %> &nbsp;Delete video 
</div><br /> 

Видео р искусство в сообщение Показать

<% if @post.video? %> 
<h1 class="center"> 
<%= @post.title %> 
</h1><br /> 
<%= video_path @post.video.url %>  
<% end %> 

Я также попытался с video_tag, которые не работают, и когда я пытаюсь с:

<iframe width="490" height="275" src="<%= video_path @post.video.url %>" frameborder="0" allowfullscreen autoplay="true"> 
      </iframe> 

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

+0

Зависит от того, что вы хотите. Имейте в виду, что размещение ваших собственных загруженных пользователями видео имеет некоторые проблемы. Как и вы, чтобы получить правильные кодировки для кросс-браузерной совместимости. http://jplayer.org/ - отличный игрок с открытым исходным кодом, который позаботится о вашем слое просмотра. Если вам нужна высокая совместимость с кросс-браузером, вам нужно будет предоставить jplayer пути к нескольким кодировкам. Вы можете использовать сервис, например, zen coder. Это действительно дорого, но у всех есть определенный уровень бесплатной учетной записи разработки, чтобы учиться и экспериментировать с их системой. –

+0

Спасибо, собираюсь попробовать jplayer out :) – fynn

+0

@TyrelRichey Я установил jplayer, загрузил скин и теперь имею оболочку видеопроигрывателя. Но теперь я не могу назвать видео, чтобы он работал. У меня есть этот JQuery: – fynn

ответ

1

Вы должны использовать тег video, а не iframe (только тег video имеет опции автовоспроизведения). Проверьте здесь, какие форматы поддерживаются какой браузер: http://caniuse.com/#search=video

Если вы хотите Crossbrowser решение, попробуйте VideoJS - http://www.videojs.com/ Здесь вы можете получить Rails плагин - https://github.com/seanbehan/videojs_rails

+1

Спасибо, да, использовал видеоjs. Не тот же камень: P ffmpeg, paperclip и flashplayer были лучшим решением, чтобы заставить его работать гладко в каждом веб-браузере! – fynn

+1

Я использую https://github.com/devthenet/voyeur с Sidekiq для преобразования видео в фоновом режиме. –

2

Paperclip видео Загрузить:

I была такая же проблема только на прошлой неделе - попробуйте это!

Video model: 
    has_attached_file :video, styles: { 
     :medium => { 
      :geometry => "640x480", 
      :format => 'mp4' 
     }, 
     :thumb => { :geometry => "160x120", :format => 'jpeg', :time => 10} 
    }, :processors => [:transcoder] 
    validates_attachment_content_type :video, content_type: /\Avideo\/.*\Z/ 

Убедитесь, что вы уже в комплекте:

gem 'paperclip', '~> 4.3.1' 
gem 'aws-sdk', '< 2.0' 
gem 'paperclip-av-transcoder' 
gem "paperclip-ffmpeg", "~> 1.2.0" 

Выполнить миграцию канцелярской скрепки:

rails g paperclip model video 

Обязательно добавьте в post_controller.гь:

private 

    def bscenes_params 
     params.require(:post).permit(:video) 
    end 

Загрузить Форма:

<%= f.file_field :video %> 

Показать страницу:

<%= video_tag bscene.video.url(:medium), controls: true, style: "max-width: 100%;" %> 

На этом этапе вы должны получить эту ошибку:

Av::UnableToDetect (Unable to detect any supported library): 

Перейти к терминалу и введите:

brew options ffmpeg 

Затем запустите следующую команду, чтобы установить 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 

Перезапустите сервер и попробуйте загрузить видео прямо сейчас! Надеюсь, это поможет - Счастливое кодирование :)

Смежные вопросы