使用carrierwave-video上传视频时出现错误:"视频无法使用FFmpeg进行转码。"

时间:2015-12-15 09:23:34

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2 rubygems

我已经将新列添加到微博中作为视频。现在我想使用carrierwave-video gem(https://github.com/rheaton/carrierwave-video)。现在,当我尝试上传视频时,我遇到了错误。 (我试图以.MOV格式上传视频)

错误

Video Failed to transcode with FFmpeg. Check ffmpeg install and verify video is not corrupt or cut short. Original error: undefined method `set_success' for #<Micropost:0x007fbf0d40dd68>

video_uploader.rb

class VideoUploader < CarrierWave::Uploader::Base
  include CarrierWave::Video

  process encode_video: [:mp4, callbacks: { after_transcode: :set_success } ]
  storage :file

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
end

的Gemfile

 gem 'carrierwave',             '0.10.0'
 gem 'carrierwave-video'

微博模型

 mount_uploader :video, VideoUploader

我还在我的FFmpeg文件中进行了配置,并从FFmpeg下载文件。

 Taner-MacBook-Pro:~ tanerkoroglu$  /Users/tanerkoroglu/Downloads/SnowLeopard_Lion_Mountain_Lion_Mavericks_12.12.2015/ffmpeg ; exit;
 ffmpeg version 2.8.2 Copyright (c) 2000-2015 the FFmpeg developers
  built with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
  configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libgsm --enable-libvidstab --enable-libx265 --disable-doc --arch=x86_64 --enable-runtime-cpudetect
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
 Hyper fast Audio and Video encoder
   usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

  Use -h to get full help or, even better, run 'man ffmpeg'
   logout
   Saving session...
    ...copying shared history...
     ...saving history...truncating history files...
      ...completed.
    Deleting expired sessions...146 completed.

1 个答案:

答案 0 :(得分:0)

gem 'carrierwave-ffmpeg'添加到您的Gemfile中,并确保在计算机上通过homebrew安装ffmpegffmpeg2theora