Transformação de Arquivos
Com necessidade de se atender a múltiplos dispositivos, principalmente telefones celulares, é preciso adaptar imagens e vídeos para que sejam melhor visualizados em cada situação. Para atender a isso, o Lumis disponibiliza a Transformação de Arquivos, em que torna possível exercer alterações de tamanho e formato(apenas vídeo) para cada arquivo adicionado ao portal.
Habilitando as transformações
As transformações serão habilitadas por instância de serviço, sendo possível habilitar no serviço de Imagens ou Documentos. Para habilitar em uma determinada instância de serviço, como por exemplo, serviço de imagens, é preciso navegar até uma de suas interfaces e clicar com o botão direito sobre a mesma, selecionando a opção "Propriedades de Arquivos".
A janela abaixo será exibida.
Para habilitar a transformação para a instância de serviço, basta habilitar o checkbox "Transformação de Arquivos".
Ao habilitar, a administração de transformações de arquivos irá carregar, e o usuário será perguntado se deseja carregar as sugestões proposta pelo Lumis para as transformações:
Customização de extratores de metadados
O Lumis já possui por default seus próprios extratores de metadados, porém, é possível customizar a extração destes metadados, cadastrando novos extratores, que substituirão o padrão do Lumis. Para tal, é necessário inserir nome qualificado do extrator de áudio ou vídeo nos campos demonstrados acima e posteriormente clicar Ok.
Adição de Transformações
Para adicionar uma nova transformação é necessário clicar em "Adicionar", na área "Transformação" do pop up de "Propriedades de Arquivos".
O pop up a seguir será exibido:
- Chave:A chave da transformação. É única por instância de serviço, e será exibida no XML da interface.
- Descrição: A descrição da transformação. JPEG Pequena, por exemplo.
- Prefixo*: O prefixo que receberá o nome arquivo transformado.
- Sufixo*: O sufixo que receberá o nome do arquivo transformado.
- Content-Type: Expressão regular indicando quais content types cujo arquivos sofrerão a transformação cadastrada. Exemplo: a expressão ^video/(flv|mpe?g)$, fará com que arquivos com o content type video/flv ou video/mpeg sofram a transformação.
- Extensão: Qual extensão receberá o arquivo transformado. Se nenhuma extensão for inserida, o arquivo transformado receberá a mesma extensão do arquivo original.
- Parâmetros da Transformação: Os parâmetros da transformação são os atributos da transformação.
- Nome: O nome do parâmetro.
- Construtor: O construtor é a classe responsável por iniciar a transformação em si. Um builder válido deve implementar a ITransformationBuilder e ter um ITransformation associado para realizar a transformação.
- Valor: O valor esperado da transformação. Por exemplo, se a transformação deve ser efetuada de um arquivo flv para avi, seu valor deve ser avi. Ou então, para transformações de escalonamento, o valor deve ser um inteiro.
* É obrigatório inserir ao menos o sufixo ou prefix para uma transformação.
Para adicionar um novo parâmetro, é necessário apenas clicar em "Adicionar" e um novo conjunto de parâmetros aparecerá.
Para excluir o parâmetro, é preciso apenas clicar no "X" ao lado do conjunto de parâmetros.
O número de parâmetros para uma transformação é ilimitado, tendo-se em conta de que deve haver ao menos um parâmetro cadastrado, ao tentar excluir o último parâmetro, o portal deve rejeitar a ação.
Ao preencher os dados, e clicar Ok, a transformação será exibida na administração:
Edição de Transformações
Para editar uma transformação adicionada, basta selecionar o item desejado e clicar "Editar".
O seguinte pop up de edição será exibido:
Para editar, basta alterar o pop up desejado e clicar Ok.
Exclusão de transformações
Para excluir uma transformação, basta selecionar o arquivo desejado e clicar em "Excluir".
Regerando todas as transformações
Após adicionar novas transformações à instância de servico, ou editar as persistidas anteriormente. É possível realizar a retransformação dos arquivos já adicionados, aplicando também as novas transformações ou alterações das transformações anteriormente realizadas a todos arquivos da instância. Para isso, ao realizar uma alteração nas transformações, basta marcar o checkbox "Regerar todas as transformações".
Ao clicar "Ok" no pop up, o seguinte alerta será exibido:
Ao clicar "Ok", todos os arquivos serão retransformados.
Desabilitando as transformações
Para desabilitar as transformações é necessário apenas clicar no checkbox marcado anteriormente.
Ao desabilitá-la, e consequentemente clicar em "Ok", todas as transformações serão perdidas.
Arquivos Transformados
Os arquivos adicionados pela instância de serviço, serão automaticamente transformados (caso haja alguma transformação cadastrada) e serão persistidos no sistema de arquivos na mesma pasta em que o arquivo original será persistido, caminho relativo à pasta lumisdata\data\files.
XML de LumFile
As informações das transformações executadas pela instância de serviço serão disponibilizadas no XML de LumFile, como o id do arquivo gerado(fileId), seu caminho (fullPath), content type (contentType), tamanho(fileSize), arquivo original, (originalFileId), seus metadados, e o formato(format).
Filas de Execução
Todas operações sobre a funcionalidade de transformações de arquivos, com exceção da adição de transformações, fazem uso de Filas de Execução. Ou seja, essas ações são enfileiradas para execução junto à outras ações inerentes à transformação ou não. Sendo assim, por exemplo, ao excluir/editar uma determinada transformação, dependendo do número de filas a serem executadas e do número de arquivos em que essa alteração deve ser refletida, as alterações sobre os arquivos transformados podem demandar algum tempo até serem efetivadas. Para maiores informações sobre Filas de Execução, consultar Filas de Execução.
Problemas Conhecidos
A biblioteca padrão utilizada pelo Lumis para realizar as transformações de vídeo, JAVE, inclui e usa um executável do FFMPEG. Há um problema conhecido com esse executável, em que o mesmo não é capaz de realizar o escalonamento para frames que não são múltiplos de 2. Logo, no caso de vídeos, não é recomendado utilizar valores ímpares para os parâmetros WIDTH e HEIGHT, já que a citada transformação não ocorrerá e será logado um erro sobre este evento.