0

Я полностью застрял. Мне нужно пройти через процесс использования AWS-SDK для Ruby для транскодирования видео. Я не знаю, с чего начать. Я загружаю файлы с помощью CarrierWave-Direct в ведро s3. Записи загружаются и напоминаются штрафом. Загрузка выполняется в фоновом режиме с помощью Sidekiq. Куда я иду отсюда? Как начать работу по перекодировке? Как сохранить запись файлов для последующей потоковой передачи в моей базе данных? Могу ли я перекодировать вместе с моей загрузкой процесса Sidekiq? Я разорвал свои волосы, пытаясь найти решение для этого.Как использовать эластичный транскодер с AWS-SDK для Ruby

ответ

3

Действия транскодирования определены внутри класса AWS :: ElasticTranscoder.

Процесс транскодирования может быть инициирован после завершения загрузки в s3. Для простого транскодер на работу, вы должны иметь

  1. трубопровод, на котором перекодирование будет осуществляться.
  2. Presets который определяет вывода видео свойств (Вы можете создать пресет или использовать системные пресеты, предоставляемые AWS)

Сейчас инициируют AWS :: ElasticTranscoder :: класс Client

transcoder = AWS::ElasticTranscoder::Client.new(:access_key_id => AwsKeyId,:secret_access_key => AwsAccessKey,:region=>TranscoderRegion) 

Создание трубопровода:

transcoder.create_pipeline(options = { 
     :name => “test_pipeline”, 
     :input_bucket => “bucket_name” , 
     :output_bucket => “bucket_name”, 
     :role => Elastic-Transcoder-Default-Role, 
     :content_config => { 
      :bucket => “bucket_name”, 
      :storage_class => Standard 
     } 
     :thumbnail_config => { 
      :bucket => “bucket_name”, 
      :storage_class => Standard 
     } 
}) 

Это вернет pipId, который может использоваться для создания рабочих мест.

Теперь вы можете создать работу следующим образом:

transcoder_obj.create_job({ 
    :pipeline_id=>PipelineId, 
    :input=> { 
     :key=>"video_path", 
     :frame_rate=> "auto", 
     :resolution => "auto", 
     :aspect_ratio => "auto", 
     :container => 'auto' 
    }, 
    :outputs=>[{ 
     :key=>"output_file_location", 
     :preset_id=>1351620000001-000010, 
     :thumbnail_pattern=>"thumbnails/thumb_{count}" 
    }] 
}) 

Это запустит процесс перекодирования. Вы можете проверить статус задания, используя метод read_job. Как только статус станет «Завершено 'от' Прогресс ', выходные файлы будут находиться в указанном выходном ковше.

Перейди через эти ссылки:

http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/ElasticTranscoder/Client.html http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/system-presets.html

AWS :: SNS обеспечивает лучший способ получать уведомления о состоянии транскодирования работы. Вы можете подписаться на тему sns для получения статуса заданий. Ответ на завершенное задание будет содержать необходимую информацию о выходных файлах, чтобы вы могли сохранить его в базе данных для будущей потоковой передачи.

Для получения дополнительной информации см this ссылки

+0

Кода предоставляются образцы не может быть следующим точным синтаксисом. Пожалуйста, обратитесь к документации :) –

+0

Что касается CarrierWave, как мне это сделать? Я бы поместил этот код в мою папку «Загрузить модель» после кода «загрузить в s3», нет? Как установить ссылку на новый URL-адрес, который потребуется для извлечения видео из s3? –

+0

Я сейчас не на своей машине, но позже я уточню свой вопрос с некоторым кодом. –

 Смежные вопросы

  • Нет связанных вопросов^_^