मैंने उसकेोकू कंसोल में रिमोट वीडियो यूआरएल से एक वीडियो स्क्रीनशॉट ffmpeg का उपयोग करके बनाने की कोशिश की। नीचे बताया गया है कि मैंने एक मूवी इंस्टेंस कैसे बनाया और S3 पर एक खाली रेडी टू बी राइट फाइल भी देख सकता है। लेकिन अंतिम पंक्ति मूवी.स्क्रीनशॉट काम नहीं कर रहा है और यह त्रुटि उत्पन्न करता है:

FFMPEG::Error: Failed encoding.Errors: no output file created

यहाँ कोड है

s3 = Aws::S3::Resource.new(region: 'us-west-1')
bucket = s3.bucket("ruby-sample-kb-#{SecureRandom.uuid}")
bucket.create
object = bucket.object('ex-vid-test-kb.jpg')
object.put(acl: "public-read-write")
path = object.public_url
movie = FFMPEG::Movie.new("https://www.googleapis.com/download/storage/v1/b/seppoav/o/3606137_51447286560__56BAF29C-05CB-4223-BAE6-655DF2236321.MOV?generation=1492780072394755&alt=media")
movie.screenshot(path, :seek_time => 2)

मैंने निम्नलिखित पंक्ति की भी कोशिश की, अगर इसे पुट के माध्यम से लिखा जाना चाहिए। मुझे यहां क्या समझ नहीं आ रहा है?

object.put(acl: "public-read", body: movie.screenshot(path, :seek_time => 2))
0
user2004082 4 पद 2019, 18:33

1 उत्तर

मैंने खुद को आश्वस्त किया कि ffmpeg movie.screenshot दूरस्थ url पथ के लिए काम नहीं करेगा। इसलिए मुझे एक समाधान का पता लगाना था, जहां मैं उसकेोकू सिस्टम में टेम्पफाइल बना सकता हूं, हालांकि टेम्पफाइल्स प्रति डायनो में रहते हैं।

file = Tempfile.new [prefix, suffix], "#{Rails.root}/app/assets/images/video_screenshots"
movie.screenshot(file.path)

यह ठीक काम किया।

0
user2004082 5 पद 2019, 15:07