2017-03-13 2 views
0

Ich folge diesem Tutorial https://www.pubnub.com/blog/2015-12-08-building-video-sharing-app-server-messaging-ruby/ auf Erstellen einer Video Sharing App. Es ist ein wenig veraltet und Ive hatte bereits ein Problem zu beheben, um so weit zu kommen, aber ich bin jetzt ziemlich verloren mit dieser neuesten Ausgabe. Ich glaube, dass es etwas mit Sidekiq zu tun hat. Wenn ich versuche, ein Video hochzuladen, scheint es zu funktionieren und erscheint in der Datenbank, aber ich bekomme ein "Video wird noch verschlüsselt". Botschaft.Kodierungsfehler mit Sidekiq

Dies ist das Protokoll:

2017-03-13T22:00:14.729Z 11109 TID-ova30dq94 WebmVideoEncoder JID-540aa74110e63e334a712719 INFO: fail: 0.122 sec 
2017-03-13T22:00:14.730Z 11109 TID-ova30dq94 WARN: {"context":"Job raised exception","job":{"class":"WebmVideoEncoder","args":[3],"retry":true,"queue":"default","jid":"540aa74110e63e334a712719","created_at":1489441065.533313,"enqueued_at":1489442414.60714,"error_message":"exception class/object expected","error_class":"TypeError","failed_at":1489441065.541595,"retry_count":6,"retried_at":1489442414.7293491},"jobstr":"{\"class\":\"WebmVideoEncoder\",\"args\":[3],\"retry\":true,\"queue\":\"default\",\"jid\":\"540aa74110e63e334a712719\",\"created_at\":1489441065.533313,\"enqueued_at\":1489442414.60714,\"error_message\":\"exception class/object expected\",\"error_class\":\"TypeError\",\"failed_at\":1489441065.541595,\"retry_count\":5,\"retried_at\":1489441667.7081149}"} 
2017-03-13T22:00:14.730Z 11109 TID-ova30dq94 WARN: TypeError: exception class/object expected 
2017-03-13T22:00:14.730Z 11109 TID-ova30dq94 WARN: /Users/David/rubyProjects/videouploader/videouploader/app/workers/webm_video_encoder.rb:14:in `raise' 
/Users/David/rubyProjects/videouploader/videouploader/app/workers/webm_video_encoder.rb:14:in `perform' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:158:in `execute_job' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:138:in `block (4 levels) in process' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq.rb:36:in `block in <module:Sidekiq>' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:133:in `block (3 levels) in process' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/chain.rb:128:in `block in invoke' 
/Users/David/.rvm/gems/ruby-2.3.0/bundler/gems/sidetiq-7bec4084165f/lib/sidetiq/middleware/history.rb:8:in `call' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/server/retry_jobs.rb:74:in `call' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/server/logging.rb:11:in `block in call' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/logging.rb:32:in `with_context' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/server/logging.rb:7:in `call' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/chain.rb:133:in `invoke' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:132:in `block (2 levels) in process' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:174:in `stats' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:131:in `block in process' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/rails.rb:106:in `block in call' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.2/lib/active_support/execution_wrapper.rb:85:in `wrap' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.2/lib/active_support/reloader.rb:68:in `block in wrap' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.2/lib/active_support/execution_wrapper.rb:85:in `wrap' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.2/lib/active_support/reloader.rb:67:in `wrap' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/rails.rb:105:in `call' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:126:in `process' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:82:in `process_one' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:70:in `run' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/util.rb:17:in `watchdog' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/util.rb:26:in `block in safe_thread' 
2017-03-13T22:00:50.877Z 11109 TID-ova3gyd4k ThumbnailCutter JID-d0c693e39e06c2cccdec7d33 INFO: start 
sh: -c: line 0: syntax error near unexpected token `(' 
sh: -c: line 0: `ffmpeg -i /Users/David/rubyProjects/videouploader/videouploader/public/system/videos/video_files/000/000/002/original/Heart_of_Gold_-_Neil_Young_cover_with_harmonica.1_(1).mp4 -ss 00:00:01.000 -vframes 1 /tmp/1489442450881632.png' 
2017-03-13T22:00:50.902Z 11109 TID-ova3gyd4k ThumbnailCutter JID-d0c693e39e06c2cccdec7d33 INFO: fail: 0.025 sec 
2017-03-13T22:00:50.903Z 11109 TID-ova3gyd4k WARN: {"context":"Job raised exception","job":{"class":"ThumbnailCutter","args":[2],"retry":true,"queue":"default","jid":"d0c693e39e06c2cccdec7d33","created_at":1489437193.246615,"enqueued_at":1489442450.8759801,"error_message":"exception class/object expected","error_class":"TypeError","failed_at":1489437193.254677,"retry_count":7,"retried_at":1489442450.901133},"jobstr":"{\"class\":\"ThumbnailCutter\",\"args\":[2],\"retry\":true,\"queue\":\"default\",\"jid\":\"d0c693e39e06c2cccdec7d33\",\"created_at\":1489437193.246615,\"enqueued_at\":1489442450.8759801,\"error_message\":\"exception class/object expected\",\"error_class\":\"TypeError\",\"failed_at\":1489437193.254677,\"retry_count\":6,\"retried_at\":1489441044.6660218}"} 
2017-03-13T22:00:50.903Z 11109 TID-ova3gyd4k WARN: TypeError: exception class/object expected 
2017-03-13T22:00:50.903Z 11109 TID-ova3gyd4k WARN: /Users/David/rubyProjects/videouploader/videouploader/app/workers/thumbnail_cutter.rb:13:in `raise' 
/Users/David/rubyProjects/videouploader/videouploader/app/workers/thumbnail_cutter.rb:13:in `perform' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:158:in `execute_job' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:138:in `block (4 levels) in process' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq.rb:36:in `block in <module:Sidekiq>' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:133:in `block (3 levels) in process' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/chain.rb:128:in `block in invoke' 
/Users/David/.rvm/gems/ruby-2.3.0/bundler/gems/sidetiq-7bec4084165f/lib/sidetiq/middleware/history.rb:8:in `call' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/server/retry_jobs.rb:74:in `call' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/server/logging.rb:11:in `block in call' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/logging.rb:32:in `with_context' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/server/logging.rb:7:in `call' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/middleware/chain.rb:133:in `invoke' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:132:in `block (2 levels) in process' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:174:in `stats' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:131:in `block in process' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/rails.rb:106:in `block in call' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.2/lib/active_support/execution_wrapper.rb:85:in `wrap' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.2/lib/active_support/reloader.rb:68:in `block in wrap' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.2/lib/active_support/execution_wrapper.rb:85:in `wrap' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.2/lib/active_support/reloader.rb:67:in `wrap' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/rails.rb:105:in `call' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:126:in `process' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:82:in `process_one' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/processor.rb:70:in `run' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/util.rb:17:in `watchdog' 
/Users/David/.rvm/gems/ruby-2.3.0/gems/sidekiq-4.2.9/lib/sidekiq/util.rb:26:in `block in safe_thread' 

thumbnail_cutter.rb

class ThumbnailCutter 
    include Sidekiq::Worker 

    def perform(video_id) 
    video = Video.find(video_id) 
    output = "/tmp/#{Time.now.getutc.to_f.to_s.delete('.')}.png" 
    _command = `ffmpeg -i #{video.video_file.path} -ss 00:00:01.000 -vframes 1 #{output}` 
    if $?.to_i == 0 
     video.thumbnail = File.open(output, 'r') 
     video.save 
     FileUtils.rm(output) 
    else 
     raise $? 
    end 
    end 
end 

Antwort

0

sieht aus wie Sie einen Syntaxfehler in thumbnail_cutter.rb

2017-03-13T22:00:50.877Z 11109 TID-ova3gyd4k ThumbnailCutter JID-d0c693e39e06c2cccdec7d33 INFO: start 
sh: -c: line 0: syntax error near unexpected token `(' 

    # need to add double quotes for interpolation its failing on video.video_file.path 
    # I believe its because of the name of your file '.1_(1).mp4' 
    # if this doesn't work I would try and change the file name so it doesnt include '.1_(1) and just .1.mp4 or .1_1.mp4 
    _command = `"ffmpeg -i #{video.video_file.path} -ss 00:00:01.000 -vframes 1 #{output}"` 
+0

Ich kann nicht scheinen, den Syntaxfehler zu finden. Ich habe thunbnail_cutter.rb zu meinem Post hinzugefügt. Würde es dir etwas ausmachen, einen Blick darauf zu werfen? – DavidK

0
raise $? 

haben, ist nicht legal Ruby-Code.