0

Voyeur gem を使用してビデオを .mp4 から .webm に変換し、アップロードしようとしています。ここに私のコードがあります: app/uploads/video_uploader.rb

class VideoUploader < CarrierWave::Uploader::Base include CarrierWave::VideoConverter def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end version :mp4 do process :encode_video => [:mp4] def full_filename(for_file) "#{File.basename(for_file, File.extname(for_file))}.mp4" end end version :webm do process :encode_video => [:webm] def full_filename(for_file) "#{File.basename(for_file, File.extname(for_file))}.webm" end end end

video_converter.rb モジュールは /lib/carrierwave/processing/ に配置されています

autoload :VideoConverter, 'carrierwave/processing/video_converter'/lib/carrierwave.rb に追加されました

私のモデル:

class Uploader < ActiveRecord::Base require 'Voyeur' attr_accessible :user_id,:attach_file belongs_to :user mount_uploader :attach_file, VideoUploader end

しかし、ビデオをアップロードできません。コンソールでエラーが発生します。 Errno::ENOENT: No such file or directory - ffmpeg -i /home/------/______/public/uploads/tmp/20121211-0943-7368-8271/tmpfile

何か提案はありますか?

コンソールで使用する最も単純なコマンド:Voyeur::Media.new( filename: path_to_file ).convert( to: :mp4 )それでも同様のエラーで失敗します。

4

1 に答える 1

0

これら 2 つの宝石を連携させるための私のプロセスは少し異なり、同じ状況にある他の人を助けるかもしれません.

ステップ 1.) Carrierwave と voyeur github の両方の指示に従います。

ステップ 2.) ffmpeg とその依存関係をインストールします。私はこれをubuntuで行っていましたが、このインストールに従うまで、no such file or directoryというエラーが発生していました

ステップ 3.) このWeb サイトは古く、変更が必要な点がいくつかあります。

  • video_converter.rb ファイルを、carrierwave-0.8.0/lib/carrierwave/processing ディレクトリに配置します。
  • このファイルの 22 行目を

    Voyeur::Video.new( filename: tmp_path ).convert( to: format.to_sym, output_filename: current_path )
    

    Voyeur::Media.new( filename: tmp_path ).convert( to: format.to_sym, output_filename: current_path )
    

    次の行をcarrierwave-0.8.0/lib/carrierwave/processing.rbに追加します

    require "carrierwave/processing/video_converter"
    
  • Carrierwave 用に作成したアップローダー ディレクトリで、app/uploaders/avatar_uploader.rb ファイルを編集して、video_uploader.rb と一致させます。

お役に立てれば

于 2013-02-06T22:29:07.350 に答える