2

誰かがこの問題で私を助けることができるかどうか疑問に思っていました.

エラスティック トランスコーダーでペーパークリップを機能させる方法を見つけるために助けが必要です。

ペーパークリップを使用してアップロードされたビデオを S3 Amazon バケットに保存し、アップロードされたビデオを 3 つの異なる形式にトランスコードして、同じバケットに保存できるようにする必要があります。

問題は、すべてを一緒に完了できるかどうかです。

4

1 に答える 1

1

この問題は、「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最初にアカウントにパイプラインを設定する必要があることに注意してください。さらに、presetmp4コンバージョンを設定する必要がありますAWS account

  • から取得したpipline objectyour を渡して、 yourを初期化しますpipeline_idAWS

    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}"

これで問題なく、ビデオをトランスコードできます。

于 2014-02-22T23:25:44.127 に答える