使用Paperclip和FFmpeg以及多种输出格式:如何在数据库中存储并在视图中显示特定的输出格式?

因为我想使用HTML5视频,我需要将用户上传的视频转换为多个编解码器。我正在关注本教程:http://jimneath.org/2008/06/03/converting-videos-with-rails-converting-the-video/但它只输出FLV,这是我根本不想要的格式。 我知道我可以添加更多FFmpeg命令并进行多次转换,但问题出在数据库和视图中。如何在DB中定义多个
source_file_name
s,如何在ѭ1中指定我想要的格式?我是否应该对
Video
模型进行子类化,为每种类型或其他类型添加更多表格列?     
已邀请:
Paperclip允许您指定多种样式。通常,这用于为上传的图像指定多个尺寸; Paperclip为每种样式处理一次图像,并相应地将它们放入文件系统中。通过为样式和子类化
Paperclip::Processor
指定不同的视频格式,您可以创建自己的视频格式。在你的模型中,你会做这样的事情:
has_attached_file :video, :styles => { :mpeg, :ogg, :wmv }, :processors => [:my_custom_processor]
然后创建一个自定义处理器,根据每种样式运行正确的FFmpeg命令。有关详细信息,请参阅文档,但这是一个片段:   回形针处理器允许您   修改附加文件   以任何方式附加你能够。   Paperclip本身使用命令行   包含缩略图的程序   处理器,但自定义处理器   不需要效仿。      需要定义处理器   在Paperclip模块内部并且是   也需要成为的子类   回形针::处理器。只有   你必须实现的一种方法   正确地是一个子类:#make,但#initialize   也可能有用。两种方法都接受3个参数:文件   将被操作(这是一个   文件的实例),选项的哈希   在...定义   has_attached_file的样式哈希,和   Paperclip :: Attachment本身。      所有#make需要返回的是   文件的实例(Tempfile是   可接受的)包含结果   处理。      有关更多信息,请参阅Paperclip.run   有关使用命令行的信息   处理器内的实用程序。 创建指向Paperclip附件的链接时,您将传递样式以确定要链接到的样式:
<%= link_to "mpeg video", @model.video.url(:mpeg) %>
<%= link_to "ogg video", @model.video.url(:ogg) %>
    
我建议你试试paperclip-ffmpeg gem。     

要回复问题请先登录注册