2016-04-07 13 views
0

Yüklenen bir videonun ekran görüntüsünü oluşturmak için ffmpeg kullanmak istiyorum.Bir videonun ekran görüntüsünü oluşturmak için ffmpeg kullanarak raylar

Yaptığım şey: Yüklemeyi yaparken veya yüklerken amazonS3 için carrierwave ile video yükleme Bu videonun küçük resmi olarak ekran görüntüsü yapmak istiyorum.

Bunu nasıl yapabilirim? Ffmpeg'i raylarla nasıl arayabilirim? Yardımlarınız için

Teşekkür

Bu taş gibi ffmpeg konuşabilirsiniz bazı mücevher kullanabilirsiniz

cevap

2

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

+0

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