使用PaperClip AV上传后,视频显示黑屏

时间:2015-10-25 02:14:44

标签: ruby-on-rails ruby video paperclip

我正在使用PaperClip AV Transcoder,当我上传视频时,我看到的都是黑色图像。我认为视频没有上传。

我是否还必须安装视频播放器,或者PaperClip AV附带吗?

我的模特有视频:

class Pin < ActiveRecord::Base
 belongs_to :user
 has_attached_file :video, :styles => {
:medium => { :geometry => "640x480", :format => 'mp4' },
:thumb => { :geometry => "100x100#", :format => 'jpg', :time => 10 }
 }, :processors => [:transcoder]

validates_attachment_content_type :video, :content_type => ["video/mp4",     "video.mov", "video/mpeg","video/mpeg4", "image/jpg", "image/jpeg"]

end

我对视频的展示视图:

<%= video_tag @pin.video.url %>

<p>
 <strong>Description:</strong>
 <%= @pin.description %>
</p>

<% if @pin.user == current_user %>
<%= link_to 'Edit', edit_pin_path(@pin) %>
<% end %>
<%= link_to 'Back', pins_path %>

我不知道其他代码会有什么帮助。我很乐意写任何可能有用的代码行。

我正在谈论的图片:

enter image description here

这是我的命令行中的ffmpeg版本的屏幕截图:

enter image description here

2 个答案:

答案 0 :(得分:1)

当您使用transcoder作为处理器时。您也需要安装此paperclip-av-transcoder gem。 (如果已经没有,请添加到您的Gemfile并执行:bundle install)。

此外,您可能需要在计算机中install ffmpeg以使处理器在本地工作。

完成这些步骤后,它应该适合您。

答案 1 :(得分:0)

有几个步骤可以调试它。

首先,您需要检查视频文件是否已保存

如果视频文件存在,则表示您的问题在于播放(不是处理)。因此,您需要浏览public/system/.....

如果您使用的是自己的开机,只需浏览/public/system,即使您正在使用Heroku或其他网络服务器,也可以执行此操作。必须SSH进入目录的bashcd

<强>的Heroku

$ heroku run bash
$ cd public/system
$ ls

<强> SSH

SSH into your system
cd /app_root/public/system
ls

然后,您就可以浏览文件夹,找到包含视频的相应目录...

enter image description here

-

如果您的系统上有视频,则意味着他们已经过处理。

如果他们在您的系统上,您需要咨询logs(在此处发布),并告诉我们错误可能是什么。

播放您的视频,您就可以使用HTML5 <video> tagRails video_tag):

<%= video_tag @attachment.paperclip_object.url %>

这将显示视频(如果它已被转码为MP4或其他兼容的文件格式),允许播放。

<强>盖

您将遇到的另一个问题是封面图片。

看来你已经正确地设置了它;您可以按如下方式使用它:

<%= video_tag @attachment.paperclip_object.url, poster: @attachment.paperclip_object.thumb.url %>