Ruby on rails 4 FFMPEG如何仅选择一个文件并将其压缩为另一种格式
在ruby中,我现在可以将文件夹的所有.mp4压缩到.webm中Ruby on rails 4 FFMPEG如何仅选择一个文件并将其压缩为另一种格式,ruby-on-rails-4,command-line,ffmpeg,Ruby On Rails 4,Command Line,Ffmpeg,在ruby中,我现在可以将文件夹的所有.mp4压缩到.webm中 Dir.glob("*.mp4") do |my_text_file| puts ' --> converting: ' + my_text_file puts "ffmpeg -i #{my_text_file.gsub(/ /, '\ ')} -b:v 640k #{my_text_file.gsub(/.mp4/, '')}.webm" `ffmpeg -i #
Dir.glob("*.mp4") do |my_text_file|
puts ' --> converting: ' + my_text_file
puts "ffmpeg -i #{my_text_file.gsub(/ /, '\ ')} -b:v 640k #{my_text_file.gsub(/.mp4/, '')}.webm"
`ffmpeg -i #{my_text_file.gsub(/ /, '\ ')} -b:v 640k #{my_text_file.gsub(/.mp4/, '')}.webm`
end
现在我如何选择一个特定的文件?我试过这个:
aa = params[:file].to_s
Dir.glob("#{aa}") do |my_text_file|
puts ' --> converting: ' + my_text_file
puts "ffmpeg -i #{my_text_file.gsub(/ /, '\ ')} -b:v 640k #{my_text_file.gsub(/.mp4/, '')}.webm"
`ffmpeg -i #{my_text_file.gsub(/ /, '\ ')} -b:v 640k #{my_text_file.gsub(/.mp4/, '')}.webm`
end
很抱歉,我使用的是原始文件名,而不是磁盘上的物理名称,因为该文件已被程序重命名。所以你只需要把
`Dir.glob("#{params[:file]}")`
第二个脚本的结果为null,ffmpeg没有找到我要压缩的文件。在执行ffmpeg脚本之前,我必须更改目录,如下所示:Dir.chdir“/var/rails_app/xxx/public/uploads/#{current_user.email}/”如果我手动重命名一个文件名为current_user.email.mp4的mp4,并编写Dir.glob(“#{current_user.email}”)而不是var aa,ffmpeg会找到该文件并像一个符咒一样压缩它。这意味着可以在这里插入一个变量。但是我应该使用什么样的变量呢?我尝试了session和url中的@myfile和params[:file]。您可以将“my_text_file”分配给您的特定文件名…并删除
Dir..do
和end
行。。。