我可以上传本地视频。视频使用回形针处理,所有元数据也被正确保存。当我试图使用远程服务器上传视频时,我收到了以下错误:
Av::UnableToDetect (Unable to detect any supported library)
我已经使用ffmpeg
LinuxBrew安装了它。它说一切都安装正确(检查哪个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,但我不知道为什么或如何着手修复它。事先谢谢您的建议。
发布于 2015-10-16 23:26:51
就在上周,我也遇到了同样的问题--试试这个!
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 (无法检测到任何支持的库):
For Mac
到您的终端输入:
brew options ffmpeg
然后运行以下命令来安装ffmpeg:
对于较早版本的brew配方:
brew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype --with-frei0r --with-libas
对于较新版本的brew配方:
brew install ffmpeg --with-fdk-aac --with-sdl2 --with-freetype --with-frei0r --with-libass
基于Linux / Ubuntu / Debian的
打开一个终端(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 (无法检测到任何支持的库)
您需要在应用程序目录的根目录中创建一个Procfile,有关Procfile的更多信息如下:https://devcenter.heroku.com/articles/procfile
touch Procfile
希望这能有所帮助!
https://stackoverflow.com/questions/31613800
复制相似问题