bash codificação e upload paralelos

1

Estou trabalhando em um script bash para codificar vídeos com o ffmpeg em um formato especial. Para salvar os vídeos resultantes, quero fazer o upload do vídeo assim que a codificação for concluída. Portanto, quero usar o processamento paralelo no meu script.

Um pequeno exemplo:

 #!/bin/bash

 uploading() {
 upload $1
 }

 encoding() {
 ffmpeg video video_encoded

 uploading $video_encoded
 }

Se minha codificação for mais rápida do que a função de upload, ela criaria um novo processo em segundo plano. Isso não é o que eu quero. O comportamento desejado é que, se o processo de upload ainda estiver ativo, minha função de codificação deve salvar os parâmetros necessários (por exemplo, caminho de vídeo) em algum tipo de fila para que a função de upload chegue ao final se a fila está vazia ou não conforme necessário.

É algo assim possível no bash?

Obrigado em avançado!

    
por linuxguy 06.08.2017 / 19:09

1 resposta

1

Tenha dois scripts. Um que gerencia a codificação dos seus vídeos e um para o upload. Use um diretório de spool onde você coloca um arquivo (symlink se apenas o próprio vídeo for necessário ou use um arquivo de texto se precisar armazenar mais informações) quando a codificação estiver completa.

O script de upload deve verificar a cada n segundos se houver novos arquivos para carregar no diretório de spool. Após o upload bem-sucedido, o script de upload remove o arquivo do diretório de spool.

Gere o script de upload do seu script principal / de codificação. Você pode matar o script de descarga com segurança depois que todos os arquivos foram enviados com sucesso (o diretório de spool está vazio; o diretório não vazio significa que o upload ainda não foi concluído / teve êxito).

    
por 06.08.2017 / 19:19