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
希望对您有所帮助!
我可以在本地上传视频。视频使用回形针处理,所有元数据也正确保存。当我尝试使用我们的远程服务器上传视频时,我收到错误消息:
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
希望对您有所帮助!