2016-04-07 21 views
0

ffmpegを使用して、アップロードされたビデオのスクリーンショットを作成します。ffmpegを使用してビデオのスクリーンショットを作成するレール

私がしていることは、アップロード時またはアップロード中にcarrierwaveでビデオをamazonS3 にアップロードすることです。このビデオのサムネイルとしてスクリーンショットを作成したいと思います。

どうすればいいですか?レールでffmpegを呼び出すにはどうすればいいですか?あなたはこの宝石のようにffmpegのために話すことができるいくつかの宝石を使用することができ、あなたの助け

答えて

2

それを行うには、我々は我々のFFMPEGがレールライブラリからコマンドを実行するためにgem streamio-ffmpegを使用しようとしている

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 

見ることができるように、入力ビデオのパスとサムネイルを取得したいパスを受け取る関数があります。これは、streamioライブラリの "screenshot"コマンドを実行するのと同じくらい簡単です。それだけです。イメージとその属性を含むFFMPEGオブジェクトを返します。また

あなたがあなたのファイルをアップロードするためcarrierwave宝石を使用する場合はcarrierwaveプラグインを使用することができますgem 'video_thumbnailer'

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 

あなたがここに

http://ron-on-rails.tumblr.com/post/33720054493/getting-thumbnails-of-a-video-using-ffmpeg-and

それを見つけることができます参照し、それについての詳細情報

https://github.com/teenacmathew/Video-Thumbnailer

+0

これは境界線[リンクのみの回答](// meta.stackexchange.com/q/8231)です。ここに多くの情報を含めるように答えを広げ、参照用にのみリンクを使用してください。 – FrankerZ

関連する問題