誰かがこの問題で私を助けることができるかどうか疑問に思っていました.
エラスティック トランスコーダーでペーパークリップを機能させる方法を見つけるために助けが必要です。
ペーパークリップを使用してアップロードされたビデオを S3 Amazon バケットに保存し、アップロードされたビデオを 3 つの異なる形式にトランスコードして、同じバケットに保存できるようにする必要があります。
問題は、すべてを一緒に完了できるかどうかです。
誰かがこの問題で私を助けることができるかどうか疑問に思っていました.
エラスティック トランスコーダーでペーパークリップを機能させる方法を見つけるために助けが必要です。
ペーパークリップを使用してアップロードされたビデオを S3 Amazon バケットに保存し、アップロードされたビデオを 3 つの異なる形式にトランスコードして、同じバケットに保存できるようにする必要があります。
問題は、すべてを一緒に完了できるかどうかです。
この問題は、「elastic_transcoder」という gem を使用することで解決されました。
ここに私が使ったもののサンプルがありますelastic_transcoder
AWS domain name
最初に、とを除いて、トランスコードするビデオの URL を取得しますbucket name
。
url = self.paperclip_video.url.split('/').pop
url = url.drop(3).join('/')
上記のコードは取得する URL によって異なることがわかりました。必要なのはパスだけAWS domain name
ですbucket name
。
次に、元のビデオへのパスを取得します
input_url = url + '/' + self.paperclip_video_file_name
次にfilename
、拡張子を除外してユーザーに生成output url
し、transcoded video
file_name = File.basename(self.paperclip_video_file_name, File.extname(self.paperclip_video_file_name))
次に、出力パスを作成します
output_url = url + '/mp4_' + file_name + '.mp4'
簡単にするために、1 つのタイプにトランスコードしています。mp4
新しいを作成しますelastic transcoding pipline
pipeline = ElasticTranscoder::Pipeline.new
AWS
最初にアカウントにパイプラインを設定する必要があることに注意してください。さらに、preset
にmp4
コンバージョンを設定する必要がありますAWS account
。
から取得したpipline object
your を渡して、 yourを初期化しますpipeline_id
AWS
pipeline_front.pipeline '***************'
Jobs
トランスコードジョブを渡す新しいオブジェクトを作成します
jobs = ElasticTranscoder::Jobs.new
新しく作るJob
jobs.create_job input_url, output_url, "**your pipeline_id**", "your preset_id", "#{url}/web_thumbnail-{count}"
これで問題なく、ビデオをトランスコードできます。