2016-04-07 14 views
0

Ich möchte ffmpeg verwenden, um einen Screenshot eines hochgeladenen Videos zu machen.Schienen mit ffmpeg, um einen Screenshot eines Videos zu machen

Was ich tue ist: ein Video mit carrierwave zu amazonS3 hochladen wenn oder während es hochladen Ich möchte einen Screenshot als Thumbnail für dieses Video machen.

Wie kann ich das machen? Wie kann ich ffmpeg mit Rails aufrufen?

Danke für Ihre Hilfe

Antwort

2

, 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

+0

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

Verwandte Themen