5 votes

Sauter le répertoire temporaire ou le changer à l'exécution avec FFMPEG

Voir la modification en bas de page. Certaines informations ci-dessous sont erronées.

Y a-t-il un moyen de faire en sorte que FFMPEG écrive directement sur la destination et saute le répertoire tmp ?

Sinon, existe-t-il un moyen de choisir le répertoire temporaire au moment de l'exécution ? Imaginons que je veuille utiliser /mnt/hgfs/videos/tmp au lieu de la /tmp répertoire.

Je sais que dans ma situation, je peux faire un certain nombre d'autres choses pour résoudre le problème, mais je veux d'abord voir si je peux faire l'une ou l'autre des choses ci-dessus.

J'ai une machine virtuelle qui utilise ffmpeg pour transcoder les fichiers. J'ai besoin de combiner un groupe de gros fichiers et de les transcoder. Le fichier combiné peut avoir une taille supérieure à 60 Go. L'espace disque de la machine virtuelle est de 46 Go, ce qui est suffisant car toutes les vidéos (entrée et sortie) se trouvent sur un drobo monté à l'adresse suivante /mnt/hgfs/videos . Quand j'exécute mon ffmpeg concat sur 15 fichiers de 4 Go, j'ai un fichier de 60 Go. FFMPEG écrit d'abord dans le fichier /tmp dir puis le déplace dans le répertoire de destination. Comme le /tmp Le problème est que sur le système de 46 Go, il est plein et FFMPEG se plante.

Quelques solutions de contournement qui pourraient aider d'autres personnes ayant des problèmes similaires : (je ne veux pas les utiliser pour mon problème).

1) Suivez les étapes aquí pour recompiler FFMPEG avec un répertoire temporaire différent.

2) Suivre este à mv /tmp sur un disque plus grand et faites un lien symbolique vers /tmp .

et dans mon cas, j'aurais pu juste : 3) transcoder les vidéos puis les concaténer avec MP4Box ou FFMPEG pour ne jamais avoir à travailler avec un fichier aussi volumineux.

EDIT : J'avais tort depuis le début.

FFMPEG n'écrit pas le fichier à /tmp puis le déplacer vers la destination. J'utilise un projet de nœud qui appelle FFMPEG, mais qui définit la destination comme suit /tmp ensuite, lorsque FFMPEG a fini de transcoder la vidéo, le projet de nœud la déplace vers la destination que je souhaite. Donc, pendant tout ce temps, ce n'était pas FFMPEG qui utilisait la fonction /tmp répertoire.

1voto

Nattgew Points 1089

Dans le premier lien que vous avez donné, il y a un problème avec la compilation de l'information suivante ffmpeg et non pas de l'exécuter. Le compilateur et le ffmpeg doit utiliser le répertoire temporaire du système. Ainsi, tout comme le fait de changer le TMPDIR a permis de le compiler correctement, il devrait permettre de l'exécuter correctement pour vous. L'emplacement du répertoire temporaire est stocké dans la variable TMPDIR o TMP variable d'environnement.

0 votes

Je le sais. Mais cela ne se compile-t-il pas dans la compilation de ffmpeg ? Est-ce que je n'aurais pas à modifier puis recompiler pour que cela m'aide ?

0 votes

J'ai regardé de plus près ce lien et j'ai modifié la réponse pour la rendre plus claire.

0 votes

Les liens indiquaient simplement des solutions alternatives susceptibles d'aider d'autres personnes. Je sais que je peux changer la valeur de TMPDIR et recompiler pour que FFMPEG utilise un répertoire temporaire différent, mais cela ne semble pas correct. Il semblerait que FFMPEG ait un moyen intégré de spécifier le répertoire TMPDIR au moment de l'exécution. Est-ce que vous voulez dire que je peux changer TMPDIR et lancer ffmpeg et qu'il utilisera ce répertoire temporaire ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X