Veja a edição na parte inferior. Algumas informações abaixo estão erradas.
Existe uma maneira de fazer o FFMPEG gravar diretamente no destino e pular o diretório tmp?
Se não existe uma maneira de escolher o dir temp em tempo de execução? Digamos que eu queira usar /mnt/hgfs/videos/tmp
em vez do diretório /tmp
.
Sei que com a minha situação posso fazer várias outras coisas para corrigir o problema, mas quero ver se posso fazer uma das opções acima primeiro.
Eu tenho uma máquina virtual que usa o ffmpeg para transcodificar arquivos. Eu preciso combinar um monte de arquivos grandes e transcodificá-los. O arquivo combinado pode ser maior que 60 GB. O espaço em disco da máquina virtual é de 46 GB, o que é suficiente porque tenho todos os vídeos (entrada e saída) em um drobo montado em /mnt/hgfs/videos
. Quando executo meu ffmpeg concat
em 15 arquivos de 4GB, tenho um arquivo de 60GB. O FFMPEG primeiro grava no /tmp
dir e o move para o diretório de destino. Como o /tmp
dir está no sistema de 46 GB, ele fica cheio e o FFMPEG trava.
Alguns trabalhos que podem ajudar outras pessoas com problemas semelhantes: (Eu não quero usá-los para o meu problema)
1) Siga os passos here para recompilar o FFMPEG com um diretório temporário diferente.
2) Siga this para mv /tmp
para uma unidade maior e symlink para /tmp
.
e no meu caso eu poderia ter apenas:
3) transcodificação dos vídeos, em seguida, concatená-los com MP4Box ou FFMPEG para que você nunca tenha que trabalhar com esse tamanho de arquivo.
EDIT: Eu estava errado o tempo todo.
O FFMPEG não grava o arquivo em /tmp
, depois o move para o destino. Estou usando um projeto de nó que chama o FFMPEG, mas ele define o destino como /tmp
, e quando o FFMPEG é feito transcodificando o vídeo, o projeto do nó o move para o destino desejado. Então, o tempo todo não foi o FFMPEG usando o diretório /tmp
.