Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 FFMPEG如何仅选择一个文件并将其压缩为另一种格式_Ruby On Rails 4_Command Line_Ffmpeg - Fatal编程技术网

Ruby on rails 4 FFMPEG如何仅选择一个文件并将其压缩为另一种格式

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 #

在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 #{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
行。。。