Upload de Vídeos

Pessoal,

Estou com problema para exibir vídeos por upload.
Ao selecionar o módúlo Aula com conteúdo de Vídeos por Upload (não link do youtube).

  1. Existe alguma restrição no tipo/formato dos vídeos e do tamanho do arquivo?
  2. Existe restrição no nome do arquivo (tamanho do nome, espaço no nome e etc)?
  • Tentei inserir um vídeo de 1mb do tipo MP4 (maior que isso não fez upload).
  • Ao abrir a aula cujo conteúdo era o vídeo inserido é exibido a seguinte mensagem:
    O video esta sendo processado e nada mais é exibido.

Até a versão v1.0.1 do antigo Redu, era utilizado o serviço do zencoder para fazer o transcode dos possíveis formatos de vídeos que eram upados. Com a mudança para o Openredu, estamos removendo as dependências de serviços externos e com isso, a partir da próxima versão (v1.1.0) com lançamento previsto para esse mês, a funcionalidade de upload de video será removida, tornando o embeed de vídeos do youtube a única opção.

Caso haja interesse em implementar uma alternativa ao upload/reprodução de vídeos, um ponto de partida é entender a lógica de gerenciamento de uploads encontrada na entidade Seminar que representa os arquivos do tipo multimídia no Openredu, onde existe a seguinte validação:

validates_attachment_size :original, :less_than => 1.gigabyte

Além do método que verifica se o curso tem espaço disponível de acordo com a quota do plano:

def can_upload_multimedia?(lecture)
...
    if quota.multimedia > plan.video_storage_limit
      return false
    else
      return true
    end
...

Já a quota pode ser encontrada no model do package_plan

  PLANS = {
    :free => {
      :video_storage_limit => 10.megabytes,
      :file_storage_limit => 5.megabytes,
    },
    :professor_lite => {
      :video_storage_limit => 30.megabytes,
      :file_storage_limit => 25.megabytes,
    },
    :professor_standard => {
      :video_storage_limit => 90.megabytes,
      :file_storage_limit => 25.megabytes,
    },
    :professor_plus => {
      :video_storage_limit => 150.megabytes,
      :file_storage_limit => 25.megabytes,
    }

Entendida essa lógica, o próximo passo seria implementar uma solução de transcoding, talvez com a ajuda de alguma gem do tipo streamio, carrierwave, paperclip-av ou talvez alguma solução mais simples utilizando apenas o embeed do HTML5 que aceitaria apenas os formatos MP4, WebM e Ogg.

Ainda que a dependência do youtube não seja o cenário ideal, por enquanto não temos previsão de implementar esse upload, então… Fica a dica! :wink: