bunu yapmak için, bizim FFMPEG bir raylar kütüphanesinden komutları çalıştırmak için gem streamio-ffmpeg
kullanacağız
require 'streamio-ffmpeg'
module ControllerVideoProcessor
def thumbnail path, second
movie = FFMPEG::Movie.new(path)
return movie.screenshot("some/temporal/path/screenshot.jpg", :seek_time => second)
end
end
Gördüğümüz gibi, giriş videosunun yolunu ve ikincisini almak istediğimiz ikinciyi alan bir fonksiyonumuz var. Streamio kütüphanesinin “ekran görüntüsü” komutunu çalıştırmak kadar basit ve işte bu kadar. Resmi ve resmin özelliklerini içeren bir FFMPEG nesnesi döndürür. Dosyalarınızı yükleme için carrierwave
mücevher kullanırsanız
Ayrıca gem 'video_thumbnailer'
örnek
class VideoUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
include VideoThumbnailer
storage :file
version :thumb do
process generate_thumb:[{quality:5, time_frame: '00:0:01', file_extension: 'jpeg'}]
def full_filename for_file
png_name for_file, version_name, "jpeg"
end
end
def png_name for_file, version_name, format
%Q{#{version_name}_#{for_file.chomp(File.extname(for_file))}.#{format}}
end
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def extension_white_list
%w(mp4 jpg jpeg gif png)
end
end
Referans ve bu konuda daha fazla bilgi,
http://ron-on-rails.tumblr.com/post/33720054493/getting-thumbnails-of-a-video-using-ffmpeg-and
burada bulabilirsiniz carrierwave eklentiyi kullanabilirsiniz
https://github.com/teenacmathew/Video-Thumbnailer
Bu bir sınır çizgisidir [yalnızca bağlantı yanıtı] (// meta.stackexchange.com/q/8231). Cevabınızı buraya fazla bilgi eklemek için genişletmeli ve bağlantıyı sadece referans olarak kullanmalısınız. – FrankerZ