J'enregistre chaque jour quelques heures de séquences vidéo, que je mets en file d'attente pour l'encodage ffmpeg
. J'utilise le veryslow
préréglage avec x265
, donc une seule heure de vidéo peut prendre jusqu'à 20 heures ou plus pour encoder.
Étant donné que mon ordinateur fonctionne jour et nuit, je me demande s'il ffmpeg
existe un moyen de mettre en pause et de reprendre l' encodage? J'utilise Terminal
pour OS X.
Si tel est le cas, puis-je également continuer d'encoder même après avoir arrêté Terminal et redémarré l'ordinateur? Je pense que la session Terminal est restaurée lorsque vous vous connectez à nouveau sous OS X, au moins l'historique du terminal l'est.
ffmpeg
s'arrête avec une erreur (decode_band_types: Input buffer exhausted before END element found
ouInvalid NAL unit size
etError writing trailer
/Protocol error
). C'est peut-être lié au saut dans le temps, je ne sais pas.Sous Windows, appuyer sur la touche "Pause / Break" (la touche la plus en haut à droite) la mettra en pause. Enter reprendra.
Si cela ne fonctionne pas, cliquez sur la fenêtre d'invite de commande pour lui donner le focus.
la source
Cela ne semblait pas possible au 30 septembre 2015 . Je suggérerais de segmenter le fichier source, d'encoder les segments, puis d'assembler les fichiers résultants.
Ce n'est pas une véritable fonction de pause / reprise, mais la division fragmentaire vous permettra d'avoir une pause de l'encodage.
Un aperçu approximatif des commandes à émettre:
Divisez le fichier complet en plusieurs parties
Cela devrait créer file000.mp4, file001.mp4 et ainsi de suite. En raison de la façon dont le segmenteur fonctionne - il ne coupe que les images I - ces fichiers ne dureront pas exactement
n
quelques secondes et la partie vidéo peut ne pas être lue correctement, mais les données sont toutes là et vous pouvez convertir chacune des parties, par exempleRejoindre les parties encodées
Créez un fichier texte et entrez le nom de chaque fichier rendu comme ceci
Et courir
la source
Je suggère qu'au lieu de faire une pause, vous donnez au processus d'encodage la moindre priorité système (alias " renice "), afin que vous puissiez travailler quotidiennement confortablement et l'encodage aura lieu en arrière-plan avec les ressources système inutilisées. Ainsi, votre encodage se fera de manière transparente 24h / 24 et 7j / 7 sans interruption, sans conflit avec le travail de jour
comme AFAIK OSX n'a pas la commande pidof, vous devez connaître le numéro de processus ffmpeg (PID)
vous pouvez alors recommencer le processus en arrière-plan avec
si nécessaire, vous pouvez également modifier le processus pour une priorité de premier plan plus agressive
la source
La suspension du thread fonctionne également sous Windows, pas avec ctrl+ Z, mais dans le gestionnaire de ressources, vous pouvez également le reprendre là-bas.
la source
(Ceci pour Linux)
Comme vous le savez probablement tous, appuyer sur «q» met fin au fichier d'enregistrement.
ffplay a la possibilité 'p'. Pourquoi ffmpeg n'a-t-il pas la même chose? Peut-être parce que cela peut conduire à une désynchronisation entre la vidéo et l'audio? ...
Je viens de ffmpeg-encoder en x264-aac-mkv avec crf (23) et toujours avec les mêmes conditions vidéo, 'quitter' (q) les enregistrements et joindre tous les segments dans un répertoire spécifique, où réside ce script, dans 1 fichier en mode streamcopy avec ce script bash:
Après cela, je vérifie la vidéo fusionnée résultante et la colle dans un autre répertoire. Les segments sont supprimés du répertoire de fusion.
Mais, un bouton `` Pause et reprise '' sans tracas serait le bienvenu;)
la source
Ce n'est qu'une idée, mais si vous avez un budget, ce serait une bonne idée de mettre à niveau le processeur (vers Intel de 8e génération) ou encore mieux, la carte vidéo (vers NVIDIA GTX 1050 ou au-dessus) afin que vous puissiez encoder h.265 / HEVC avec accélération matérielle au lieu de CPU-intensive
x265
. Votre encodage vidéo sera terminé en moins de 20 heures, ce qui vous fera également économiser de l'électricité.la source