gpt4 book ai didi

ruby-on-rails - 使用 paperclip-av-transcoder 的回形针视频附件错误

转载 作者:数据小太阳 更新时间:2023-10-29 08:11:26 31 4
gpt4 key购买 nike

我正在制作一个 Ruby on Rails 应用程序,并试图允许通过该应用程序上传视频文件。

我正在使用 paperclip gem 来处理文件附件,paperclip-av-transcoder gem(如建议的那样)来处理转码。我还安装了 aws-sdk gem,但目前这无关紧要,因为我什至无法在我的本地系统上进行上传。

我已按照所有说明准备应用程序来处理视频上传:我已经安装了必要的 gem,为视频模型创建了实际的回形针(我将回形针命名为“film”),运行迁移,并添加与我的视频模型本身的关联。我还在我的视频 Controller 参数中将 :film 属性列入白名单,并且在我的新视频表单中有正确的 :film 字段。

当我运行我的本地服务器时,我转到我的 videos#new 页面并填写表格,附加 :film 的文件,然后提交表格。加载以下错误大约需要 10 秒:

Av::UnableToDetect in VideosController#create
Unable to detect any supported library

Extracted source (around line #10):
@video = Video.new(video_params)

我不知道这里发生了什么。当我看到其他人收到完全相同的错误消息“无法检测到任何支持的库”时,他们总是只是忘记运行回形针迁移或类似的东西。我已执行所有这些必要步骤。

这是我的 Video.rb 模型中与 :film 相关的代码

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

这是我的 videos_controller 中的强参数

def video_params
params.require(:video).permit(:title, :description, :film, :preview_image,
award_attributes: [:id, :title, :body, :award_image])
end

这是与我的视频模型相关的数据库架构。预览图像是一个单独的回形针(它是一个图像),我已经使用了几个星期并且它工作得很好。

create_table "videos", force: :cascade do |t|
t.string "title"
t.string "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "preview_image_file_name"
t.string "preview_image_content_type"
t.integer "preview_image_file_size"
t.datetime "preview_image_updated_at"
t.string "film_file_name"
t.string "film_content_type"
t.integer "film_file_size"
t.datetime "film_updated_at"
end

我也觉得这可能与我的 gem 有关,这是我的 gem 文件:

gem 'paperclip', :git=> 'https://github.com/thoughtbot/paperclip', :ref => '523bd46c768226893f23889079a7aa9c73b57d68'
gem 'aws-sdk'
gem 'paperclip-av-transcoder'

我已经尝试过只使用普通的“回形针”gem,没有引用 git。还是不行

在此先感谢你们能给我的任何帮助!

最佳答案

Av::UnableToDetect in VideosController#create
Unable to detect any supported library

表示您没有安装 ffmpeg。 paperclip-av 使用此库对您的视频进行转码。如果您使用的是 ma​​cOS,请转到您的终端并安装它(我使用的是 homebrew ):

brew install ffmpeg

--

在部署到远程服务器(例如 Heroku)时,您可能会遇到同样的问题……如果是这种情况,那么您必须使用 buildpacks 添加 ffmepg。请务必阅读操作方法 in the Heroku Devcenter

关于ruby-on-rails - 使用 paperclip-av-transcoder 的回形针视频附件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36916238/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com