我正在使用Streamio-ffmpeg来处理文件。该宝石显示控制台中转码的进度。我想向用户显示此进度。有没有这样做?如何在用户端的FFMPEG转码在rails中显示进度?
这是我的lib目录下:(凡转码完成)
file = ::FFMPEG::Movie.new(tmpfile)
encoded_file = File.join(directory, new_name)
file.transcode(encoded_file) { |progress| progressing = (progress * 100).round(2); puts "#{progressing} %"; }
的{|进展| progressing =(progress * 100).round(2);放置“#{progressing}%”; }负责将进度打印到控制台。我可以在我的视图中显示这个吗?
输出上的控制台: -
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 ::直播”,但我没有得到任何正确的结果。我不知道在这种情况下如何使用“包含ActionController :: Live”。
在你的lib
可以显示进度通过分配'“#{progressing}%”到一个实例变量,然后显示在视图上' –
@RajarshiDas我如何分配它的实例变量?因为这段代码在库文件中,所以如何将lib文件变量传递给我的控制器作为响应,并在每次进度增加时在视图上显示? – Jiggs
您可以使用autoload_path访问库的类并通过类方法获得'“#{progressing}%”'返回的数组,然后将其存储在一个实例变量中,然后将其显示在数组中。每一个 –