gpt4 book ai didi

ruby-on-rails - 如何在rails中的FFMPEG转码中显示用户侧的进度?

转载 作者:行者123 更新时间:2023-12-04 23:16:29 26 4
gpt4 key购买 nike

我正在使用 Streamio-ffmpeg 来处理文件。 gem 在控制台中显示转码的进度。我想向用户显示这个进度。反正有这样做吗?

这是我的库:​​(转码完成的地方)

file = ::FFMPEG::Movie.new(tmpfile)

encoded_file = File.join(directory, new_name)

file.transcode(encoded_file) { |progress| progressing = (progress * 100).round(2); puts "#{progressing} %"; }

{ |进展|进展 = (进展 * 100).round(2);提出“#{progressing} %”; } 负责将进度打印到控制台。我可以在我的 View 中显示这个吗?

控制台上的输出是:-
I, [2015-12-21T12:48:55.322814 #19642]  INFO -- : Running transcoding...
ffmpeg -y -i /home/tps/sites/demo_projects/blog/public/uploads/tmp/1450682335-19642-6992/tmpfile /home/tps/sites/demo_projects/blog/public/uploads/tmp/1450682335-19642-6992/mp4_SampleVideo_1080x720_5mb.mp4

0.0 %

6.63 %

9.57 %

11.4 %

13.46 %

15.86 %

18.3 %

21.64 %

25.03 %

28.61 %

32.09 %

36.62 %

43.29 %

48.6 %

53.23 %

57.69 %

61.68 %

66.49 %

70.1 %

72.91 %

75.75 %

79.07 %

83.73 %

88.81 %

93.07 %

96.72 %

99.05 %

99.97 %

100.0 %

I, [2015-12-21T12:49:10.058592 #19642] INFO -- : Transcoding of /home/tps/sites/demo_projects/blog/public/uploads/tmp/1450682335-19642-6992/tmpfile to /home/tps/sites/demo_projects/blog/public/uploads/tmp/1450682335-19642-6992/mp4_SampleVideo_1080x720_5mb.mp4 succeeded

我尝试了“使用包含 ActionController::Live”,但没有得到任何正确的结果。我不知道在这种情况下如何使用“include ActionController::Live”。

最佳答案

在你的 lib/file_process.rb

module FileProcess

def progress(tmpfile)
arr = []
file = ::FFMPEG::Movie.new(tmpfile)
encoded_file = File.join(directory, new_name)
file.transcode(encoded_file) { |progress| progressing = (progress * 100).round(2); arr << "#{progressing} %"; }
arr
end

def self.included(base)
base.send :helper_method, :progress
end
end

现在在 Controller 中
class FileProcessingsController < ApplicationController
include 'file_process'
end

现在您可以使用 progress显示每个进度的辅助方法

关于ruby-on-rails - 如何在rails中的FFMPEG转码中显示用户侧的进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34390633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com