Disons que j'ai une vidéo, qui peut avoir n'importe quelle dimension ou codec (par exemple mp4), et je veux ajouter 3 secondes d'images noires à sa tête.
J'ai vu d'autres variantes à cette question qui se rapportent à l'ajout d'une seule image, et aussi des réponses qui spécifient la largeur et la hauteur de la vidéo. Cependant, la vidéo peut avoir n'importe quelle largeur et hauteur et je ne veux pas modifier ces valeurs. Ajoutez simplement le noir. Dans une commande distincte, j'aimerais également ajouter les secondes de noir à la queue.
Il ne doit pas y avoir d'audio dans la section noire - le noir doit simplement être concaténé à l'avant et à l'extrémité. Aussi, j'aimerais éviter de ré-encoder la vidéo si possible, et copier le résultat dans un nouveau fichier.
Toute aide serait appréciée.
Réponses:
La méthode de base pour joindre des vidéos sans ré-encodage est d'utiliser le démultiplexeur concat. Cet appareil nécessite que les fichiers joints partagent certaines propriétés, comme le codec, la fréquence d'images, les dimensions vidéo, la base de temps .. etc.
La première étape consiste à créer le segment vierge, qui peut être utilisé à la fois à la tête et à la queue.
Vous devez effectuer une étape de comptabilité pour la vidéo complète. Sinon, la vidéo combinée s'exécutera probablement à la mauvaise vitesse.
Ensuite, créez un fichier texte.
Ensuite, exécutez
Ma première étape suppose que le flux vidéo a le format de pixel le plus courant
yuv420p
. Ce qui devrait être bien car c'est le seul format de pixel pris en charge par les lecteurs Web et les caméras de smartphones, les caméscopes grand public, etc. Si ce n'est pas le cas, legeq
filtre peut échouer.Je suppose également, tacitement, que la vidéo complète n'utilise pas plus d'images de référence que celles produites par le préréglage
medium
de x264. C'est une hypothèse sûre pour 95% des vidéos.Enfin, je suppose que la vidéo complète a AAC-LC comme codec audio. Devrait être vrai pour la plupart des vidéos sur téléphone / cam / web.
la source