Paperclip AV 转码器无法在远程服务器上运行

Paperclip AV Transcoder not working on remote server

我可以在本地上传视频。视频使用回形针处理,所有元数据也正确保存。当我尝试使用我们的远程服务器上传视频时,我收到错误消息:

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

我已经使用 LinuxBrew 安装了 ffmpeg。它说一切都已正确安装(检查哪个 brew 和哪个 ffmpeg,以及检查 gem 是否正确安装)。

当我在我的视频模型中设置样式时(它可以存储元信息并控制视频的上传方式),它无法远程工作。

has_attached_file :video, path: "/posts/:id/:style.:extension",
  :styles => {
    :medium => { :geometry => "493x877", :format => 'flv' },
    :thumb => { :geometry => "100x100#", :format => 'jpg', :time => 10 },
    # :mobile => {:geometry => "640X480", :format => 'mp4', :streaming => true}
  }, :processors => [:transcoder]

但是,当我从我的模型中删除它时:

has_attached_file :video, path: "/posts/:id/:style.:extension"

视频已上传到 S3(没有我需要的数据或样式)。

如有任何帮助,我们将不胜感激。我认为 AV 在查找 ffmpeg 时遇到了麻烦,但我不确定为什么或如何修复它。在此先感谢您的任何建议。

我上周遇到了同样的问题 - 试试这个!

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.rb中加上:

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):

对于Mac

转到您的终端并输入:

brew options ffmpeg

然后运行安装ffmpeg:

旧版本的酿造配方:

brew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype --with-frei0r --with-libas

对于较新版本的酿造配方:

brew install ffmpeg --with-fdk-aac --with-sdl2 --with-freetype --with-frei0r --with-libass

对于 Linux Mint / Ubuntu / Debian 基于 Linux

打开一个终端(Ctrl + Alt + T)并执行以下命令来安装ffmpeg。

sudo add-apt-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install ffmpeg

此时视频上传将在本地工作

现在对于远程上传,您需要设置 https://devcenter.heroku.com/articles/buildpacks

现在应该会出现错误

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

您需要在应用程序目录的根目录中创建一个 Procfile 有关 Procfile 的更多信息,请点击此处:https://devcenter.heroku.com/articles/procfile

touch Procfile

希望对您有所帮助!