Desde a versão 4.1.0, nosso Middleware permite processar cada mídia baixada por meio de um comando definido pelo usuário. Isso permite que você transforme os arquivos baixados para torná-los compatíveis com o seu sistema.
Por exemplo, usando este recurso, você pode usar uma ferramenta como ffmpeg ou ImageMagick para transcodificar imagens, áudios e vídeos.
Como configurar
Você precisa editar o arquivo env.xml de seu Middleware. Para fazer isso, encontre a seção de transcodificadores que se parece com isto:
<New class = "org.eclipse.jetty.plus.jndi.Resource"> <Arg> </Arg> <Arg> transcodificadores </Arg> <Arg> <! [CDATA [ ]]> </Arg> </Novo>
<source_extension>, <target_extension>, <command>
- source_extension define a extensão do arquivo baixado que deve ser processado usando o comando . Este parâmetro não faz distinção entre maiúsculas e minúsculas.
- target_extension define a extensão do arquivo gerado.
-
command é o caminho completo do comando que é chamado para cada arquivo baixado que tem source_extensioncomo uma extensão de arquivo.
- Este comando
- você receberá dois argumentos: o arquivo de entrada e o arquivo onde você deve escrever a saída ( comando input_file destination_file) .
- deve retornar um código de status 0 em caso de sucesso ou um código diferente de 0, caso contrário
- Este comando
<New class = "org.eclipse.jetty.plus.jndi.Resource"> <Arg> </Arg> <Arg> transcodificadores </Arg> <Arg> <! [CDATA [ png, jpg, / usr / bin / convert gif, jpg, / usr / bin / convert ]]> </Arg> </Novo>
Como você pode ver no exemplo, você deve declarar cada formato de entrada em uma linha separada.
Seguindo o exemplo de um determinado arquivo de mídia baixado, o middleware chamará algo como
/ usr / bin / convert /tmp/media/https/foo/4645d1dc5f523182d5d1a6812071f3c17f974953.png /tmp/media/https/foo/4645d1dc5f523182d5d1a6812071f3c17g_9743.png
Como funciona
A conversão ocorre durante o processo de sincronização da Middleware Source. Quando os dados são baixados de uma Middleware Source específica, o middleware procura a mídia baixada que possui uma das extensões declaradas e chama o comando configurado (se não tiver sido processado anteriormente).
Se o comando for bem sucedido, o arquivo de destino que é passado como o segundo argumento do comando será usado como o caminho do arquivo multimídia que será escrito no campo correspondente (localMainMediaPath ou similar) do arquivo ou tabela (dependendo de seu modo de integração).
Solução de conflitos
Caso a conversão não seja bem-sucedida (por exemplo: falha na execução), o middleware tratará o conteúdo como se não tivesse sido baixado (o campo estará vazio).
Você pode verificar a mensagem de erro para entender melhor o que está acontecendo:
- O software configurado não foi encontrado:
código 072: Não foi possível baixar https://s3-assets0.flowics.com/web/uploads/production/generic-resources/asset/53115/versioned_efb3e1d0211f8dff706ba53ca066e383.png Devido a: Incapaz de executar o programa "usr / bin / onvert" (no diretório "/run/user/1000/middleware/media/https/s3-assets0.flowics.com"): erro = 2, nenhum arquivo ou diretório
- A conversão falhou:
código 072: Não foi possível baixar https://s3-assets0.flowics.com/web/uploads/production/generic-resources/asset/53115/versioned_efb3e1d0211f8dff706ba53ca066e383.png devido a: erro de transcodificação
- Problema de formato em env.xml:
Erro ao carregar a configuração do transcodificador: - na linha 1: o campo está incompleto: 'x' Morrendo. Verifique seu 'env.xml' .