What exactly is the error message you’re getting when it fails? I may
be wrong, but I think it’s trying to call ffmpeg without a file path.
I say that because, based on my rudimentary understanding of Ruby, the
mp3 object doesn’t exist inside the scope of convert_mp3.
(I recommend putting that inside private for security reasons.)
If that doesn’t work, try to copy-paste the command itself into a
shell, substitute the filename for something you know is there and
should work, and try that. In other words, try to isolate where the
problem is - in the code, or in the execution of ffmpeg.
if logged_in_user.tracks << @track
flash[:notice] = "Successfully uploaded."
redirect_to :action => :index
else
flash[:error] = "Whoops! File was NOT uploaded. Please try it
again."
render :action => :new
end
end
Could it be the command itself and its syntax?
“ffmpeg -i #{self.mp3.to_file.path} -vn -ar 44100 -ac 2 -ab 16 -f mp3
#{mp3.to_file.path}”
Pete
Phoenix R. wrote:
Hi Pete,
What exactly is the error message you’re getting when it fails? I may
be wrong, but I think it’s trying to call ffmpeg without a file path.
I say that because, based on my rudimentary understanding of Ruby, the
mp3 object doesn’t exist inside the scope of convert_mp3.
(I recommend putting that inside private for security reasons.)
If that doesn’t work, try to copy-paste the command itself into a
shell, substitute the filename for something you know is there and
should work, and try that. In other words, try to isolate where the
problem is - in the code, or in the execution of ffmpeg.
Well, that’s what I was thinking: isolate your ffmpeg command and see
if it’s working correctly. Get a file that you know ffmpeg can work
with, then execute that exact same command on your system, but
substitute the filename for (self.mp3.to_file.path. So, for example:
original_file.wav - test original file for ffmpeg to convert
new_mp3.mp3 - what ffmpeg should create as a result of said
conversion
Also, check permissions on your various directories. Make sure that
whatever user is running Ruby (i.e. is this running behind Apache with
Phusion?) has write and execute permissions on whatever directory
you’re writing the files to.