Rails:在Heroku上使用FFMPEG转换视频时编码器错误



我试图上传视频并将文件转换为mp4,并使用paperclip-ffmpegpaperclip宝石减少文件大小。运行本地服务器一切都很好,我只在heroku上遇到这个问题。我已经在vendor/ffmpeg/中安装了ffmpeg(我遵循了这些步骤:https://gist.github.com/3963576)。下面是我得到的代码和我得到的错误:

模型/video.rb:

class Video < ActiveRecord::Base
  attr_accessible :content, :user_id, :video
  has_attached_file :video , :styles => { 
    :medium => { :geometry => "500x500", :format => 'mp4',
        :convert_options => { :output => { :vcodec => 'libx264',
        :b => '1000k', :bt => '200k',
        :acodec => 'libfaac', :ab => '56k', :ac => 2 } } }
  }, :processors => [:ffmpeg]
  belongs_to :user
end

当我运行heroku logs:

2013-01-02T00:38:20+00:00 app[web.1]: Started POST "/videos" for 101.170.255.251 at 2013-01-02 00:38:20 +0000
2013-01-02T00:38:20+00:00 app[web.1]: Processing by VideosController#create as HTML
2013-01-02T00:38:20+00:00 app[web.1]:   Parameters: {"utf8"=>"✓", "authenticity_token"=>"X0IKts46TF8aFvEb1I/szFo/28omlVBXIIyJ3APz3YA=", "video"=>{"content"=>"", "video"=>#<ActionDispatch::Http::UploadedFile:0x00000004ac88a8 @original_filename="sample.mov", @content_type="video/quicktime", @headers="Content-Disposition: form-data; name="video[video]"; filename="sample.mov"rnContent-Type: video/quicktimern", @tempfile=#<File:/tmp/RackMultipart20130102-2-1ch9zcp>>}, "commit"=>"Post"}
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] ffmpeg -i "/tmp/sample20130102-2-4j5sgh.mov" 2>&1
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] Resize
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] Command Success
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] Making...
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] Building Destination File: 'sample20130102-2-4j5sgh' + 'mp4'
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] Destination File Built
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] Adding Source
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] Adding Geometry
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] Convert Options: 500x280
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] Adding Format
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] -i :source -y -vcodec libx264 -b 1000k -bt 200k -acodec libfaac -ab 56k -ac 2 -s 500x280 :dest
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] Extracting Target Dimensions
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] Building Parameters
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] Target Size is Available
2013-01-02T00:38:20+00:00 app[web.1]: [paperclip] [ffmpeg] Keeping Aspect Ratio
2013-01-02T00:38:20+00:00 app[web.1]: Command :: ffmpeg -i '/tmp/sample20130102-2-4j5sgh.mov' -y -vcodec libx264 -b 1000k -bt 200k -acodec libfaac -ab 56k -ac 2 -s 500x280 '/tmp/sample20130102-2-4j5sgh20130102-2-1mr35ix.mp4'
2013-01-02T00:38:20+00:00 app[web.1]: ffmpeg version git-2013-01-01-d079d1d Copyright (c) 2000-2012 the FFmpeg developers
2013-01-02T00:38:20+00:00 app[web.1]:   built on Jan  1 2013 12:59:49 with gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5)
2013-01-02T00:38:20+00:00 app[web.1]:   configuration: --enable-shared --disable-asm --prefix=/app/vendor/ffmpeg
2013-01-02T00:38:20+00:00 app[web.1]:   libavfilter     3. 30.102 /  3. 30.102
2013-01-02T00:38:20+00:00 app[web.1]:   libavcodec     54. 85.100 / 54. 85.100
2013-01-02T00:38:20+00:00 app[web.1]:   libavdevice    54.  3.102 / 54.  3.102
2013-01-02T00:38:20+00:00 app[web.1]:   libavutil      52. 13.100 / 52. 13.100
2013-01-02T00:38:20+00:00 app[web.1]:   libswresample   0. 17.102 /  0. 17.102
2013-01-02T00:38:20+00:00 app[web.1]:   libswscale      2.  1.103 /  2.  1.103
2013-01-02T00:38:20+00:00 app[web.1]:   libavformat    54. 58.100 / 54. 58.100
2013-01-02T00:38:21+00:00 app[web.1]:     creation_time   : 2013-01-02 00:36:58
2013-01-02T00:38:21+00:00 app[web.1]:     minor_version   : 0
2013-01-02T00:38:21+00:00 app[web.1]:     major_brand     : qt  
2013-01-02T00:38:21+00:00 app[web.1]: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/sample20130102-2-4j5sgh.mov':
2013-01-02T00:38:21+00:00 app[web.1]:     model           : iPhone 4
2013-01-02T00:38:21+00:00 app[web.1]:     compatible_brands: qt  
2013-01-02T00:38:21+00:00 app[web.1]:     model-eng       : iPhone 4
2013-01-02T00:38:21+00:00 app[web.1]:     make-eng        : Apple
2013-01-02T00:38:21+00:00 app[web.1]:     date-eng        : 2012-12-28T00:39:34+1100
2013-01-02T00:38:21+00:00 app[web.1]:     encoder         : 6.0
2013-01-02T00:38:21+00:00 app[web.1]:     encoder-eng     : 6.0
2013-01-02T00:38:21+00:00 app[web.1]:   Duration: 00:00:00.03, start: 0.000000, bitrate: 9465 kb/s
2013-01-02T00:38:21+00:00 app[web.1]:     Stream #0:0(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 75 kb/s
2013-01-02T00:38:21+00:00 app[web.1]:     date            : 2012-12-28T00:39:34+1100
2013-01-02T00:38:21+00:00 app[web.1]:       creation_time   : 2013-01-02 00:36:58
2013-01-02T00:38:21+00:00 app[web.1]:     make            : Apple
2013-01-02T00:38:21+00:00 app[web.1]:   Metadata:
2013-01-02T00:38:21+00:00 app[web.1]:     Metadata:
2013-01-02T00:38:21+00:00 app[web.1]:       handler_name    : Core Media Data Handler
2013-01-02T00:38:21+00:00 app[web.1]:     Stream #0:1(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 8605 kb/s, 30 fps, 30 tbr, 600 tbn, 1200 tbc
2013-01-02T00:38:21+00:00 app[web.1]:     Metadata:
2013-01-02T00:38:21+00:00 app[web.1]:       handler_name    : Core Media Data Handler
2013-01-02T00:38:21+00:00 app[web.1]: Unknown encoder 'libx264'
2013-01-02T00:38:21+00:00 app[web.1]: Please use -b:a or -b:v, -b is ambiguous
2013-01-02T00:38:21+00:00 app[web.1]:       creation_time   : 2013-01-02 00:36:58
2013-01-02T00:38:21+00:00 app[web.1]: [paperclip] An error was received while processing: #<Paperclip::Error: error while processing video for sample20130102-2-4j5sgh: Command 'ffmpeg -i :source -y -vcodec libx264 -b 1000k -bt 200k -acodec libfaac -ab 56k -ac 2 -s 500x280 :dest' returned 1. Expected 0>
2013-01-02T00:38:21+00:00 app[web.1]:   Rendered videos/new.html.erb within layouts/application (3.2ms)
2013-01-02T00:38:21+00:00 heroku[router]: at=info method=POST path=/videos host=stark-sea-5654.herokuapp.com fwd=101.170.255.251 dyno=web.1 queue=0 wait=0ms connect=3ms service=3685ms status=200 bytes=1878
2013-01-02T00:38:21+00:00 app[web.1]:   Rendered layouts/_footer.html.erb (0.0ms)
2013-01-02T00:38:21+00:00 app[web.1]: Completed 200 OK in 342ms (Views: 124.8ms | ActiveRecord: 10.4ms)
2013-01-02T00:38:21+00:00 app[web.1]:   Rendered layouts/_header.html.erb (1.2ms)

一切工作正常,直到消息Unknown encoder 'libx264'所以我认为这是与ffmpeg也许?

ffmpeg不是libx264安装自带的。Libx264需要单独安装,并且在ffmpeg ./configure中需要包含Libx264。本指南将帮助您使用libx264安装ffmpeg: https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide

相关内容

  • 没有找到相关文章

最新更新