2014-01-07 3 views
0

나는 ffmpeg를 사용하여 레일 3 윈도우 플랫폼에서 사용자가 업로드 한 비디오를 변환하고 있습니다. 지금은 ffmpeg -i C:\three.wmv -vcodec h264 C:\threeeeee.mp4을 사용할 때 변환 된 비디오를 재생할 준비가되어 있습니다. 내가 No such file or directory으로 오류 등레일에서 ffmpeg로 변환 할 비디오의 공간에서 공간을 제거하십시오. 3

has_attached_file :source, 
    :max_size => 300.megabytes, 
    :url => "/assets/uploads/:id/:style/:basename.:extension", 
    :path => ":rails_root/public/assets/uploads/:id/:style/:basename.:extension", 
    :processors => [:ffmpeg] 

으로 내가 클립에서 기본 경로를 사용할 때 프로젝트 때문에 폴더 이름 사이의 공간의

c:new projects/new/app..and so on 

.its 같은 폴더에 있기 때문에 새로운 ... 그래서 그것을 피하는 방법. 그 일종의 이상한 행동을 알고 있지만 폴더 이름을 변경하면 나에게 어떤 의미가 있기 때문에 이유가 필요합니다.

내 video.rb

has_attached_file :source, 
    :max_size => 300.megabytes, 
     :url => "/assets/uploads/:id/:style/:basename.:extension", 
     :path => ":rails_root/public/assets/uploads/:id/:style/:basename.:extension", 
    :processors => [:ffmpeg] 

after_create :convert_in_flv, :set_new_filename 


def convert_in_flv 

    system("ffmpeg -i #{Rails.root}/public/assets/uploads/#{self.id}/original/#{self.source_file_name} -vcodec h264 #{Rails.root}/public/assets/uploads/#{self.id}/original/#{self.id}.mp4") 
    ###system("ffmpeg -i #{source.path} -vcodec libx264 -vpre ipod640 -b 250k -bt 50k -acodec libfaac -ab 56k -ac 2 -s 480x320 #{flv}") 

end 


    ##ffmpeg -i C:\three.wmv -vcodec h264 C:\threeeeee.mp4....this works 


def set_new_filename 

    update_attribute(:source_file_name, "#{id}.flv") 
end 

답변

1

** 단일 또는 이중 인용에 경로를 wraping 시도 **

def convert_in_flv 
    system("ffmpeg -i '{self.source.path}'") 
end 

self.source.path 당신이 그것을

을 다시 할 필요가 없습니다 파일 경로를 반환합니다