gpt4 book ai didi

ruby-on-rails - 在 Rails 中保存视频文件

转载 作者:行者123 更新时间:2023-12-02 21:23:32 26 4
gpt4 key购买 nike

好吧,我过去曾使用回形针来上传图像和视频。我想知道。有没有一种简单的方法可以将视频保存在 Rails 中?我已经制定了上传文件的表单,我想知道是否应该将其另存为某种类型。 (显然不是字符串,但沿着这些思路。)我只是想拥有一个包含所有三种文件类型的视频播放器。 (ogg、mp4、wav)。只是每个都保存在数据库中自己的行中。

最佳答案

您可能想看看 paperclip-ffmpeg 。我会将不同的格式保存为回形针样式。这看起来应该与典型的回形针图像上传非常相似,您可以在其中处理图像以生成不同的尺寸,例如缩略图

免责声明:通过这种方式,您需要在服务器上安装 ffmpeg。如果您使用的是 Mac 并使用自制软件,此链接很有帮助。 http://www.renevolution.com/how-to-install-ffmpeg-on-mac-os-x/

在下面的示例中,假设数据库中的文件附件设置为data

运行迁移以将适当的列添加到表中。

> rails g migration add_data_to_videos data:attachment

然后在您的模型中。

# Validations
validates_attachment_presence :data
validates_attachment_size :data, less_than: 100.megabytes # if you want a max file size
validates_attachment_content_type :data, content_type: /\Avideo\/.*\Z/ # or you can specify individual content types you want to allow

has_attached_file :data,
url: '/videos/:id/:style/:basename.:extension', # whatever you want
styles: {
poster: { size: '640x480', format: 'jpg' }, # this takes a snapshot of the video to have as your poster
v_large_webm: { geometry: '640x480', format: 'webm' }, # your webm format
v_large_mp4: { geometry: '640x480', format: 'mp4' } # your mp4 format
},
processors: [:ffmpeg],
auto_rotate: true

通过此设置,您的 View 将与使用带有图像的回形针非常相似。

# To display the video (HTML5 way using HAML)
%video{controls: '', height: 'auto', width: '100%', poster: @video.data.url(:poster)}
%source{src: @video.data.url(:v_large_mp4), type: 'video/mp4'}
%source{src: @video.data.url(:v_large_webm), type: 'video/webm'}
Your browser does not support the video tag.

我还建议考虑使用后台作业来进行处理。也许是DelayedJob。

关于ruby-on-rails - 在 Rails 中保存视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26132806/

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