, das zu tun, werden wir die gem streamio-ffmpeg
verwenden unsere FFMPEG-Befehle aus einer Schienen-Bibliothek laufen
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
Wie wir sehen können, haben wir eine Funktion, die den Pfad zum Eingangsvideo empfängt, und die zweite, von der wir das Vorschaubild erhalten möchten. Es ist so einfach wie das Ausführen des "screenshot" -Befehls der streamio-Bibliothek, und das war's. Es wird ein FFMPEG-Objekt zurückgegeben, das das Bild und seine Attribute enthält.
Auch wenn Sie carrierwave
Juwel verwenden für Ihre Dateien hochladen können Sie carrierwave Plugin gem 'video_thumbnailer'
Beispiel
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
Referenz und mehr Informationen über sie verwenden Sie es hier finden
http://ron-on-rails.tumblr.com/post/33720054493/getting-thumbnails-of-a-video-using-ffmpeg-and
https://github.com/teenacmathew/Video-Thumbnailer
Dies ist eine Borderline [Nur-Link-Antwort] (// meta.stackexchange.com/q/8231). Sie sollten Ihre Antwort so erweitern, dass sie so viele Informationen enthält, und den Link nur als Referenz verwenden. – FrankerZ