Cela ne fonctionne pas sur ubuntu 16.04 avec ffmpeg version 2.8.11-0ubuntu0.16.04.1
Il fonctionne sur Ubuntu 18.04 avec ffmpeg 3.4.2-2
Il y a une erreur pour une vidéo: Invalid trop grandes ou de la non-positif de la taille de la largeur '312' ou la hauteur '176' @Adrian j'ai vraiment besoin de ce script ou une commande, Veuillez les corriger.
salut, pouvez-vous expliquer comment fonctionne?
Vous devez disposer de la licence GPL activé pour pouvoir utiliser le boxblur filtre. This la solution est de 60% plus vite et n'est pas inclus dans la licence GPL.
comment puis-je redimensionner pour 1280x720 avec qui args ?
La accepté de répondre ici prend une éternité à s'exécuter parce que c'est faire beaucoup de calculs inutiles. Nous n'avons pas besoin de brouiller les pixels dont nous savons avec certitude que sera hors de la fenêtre d'affichage de la vidéo de sortie.
Donc, une meilleure solution serait d'abord couper la partie de la vidéo qui sera visible dans la sortie. Nous avons ensuite mis à l'échelle de la présente partie, "remplissage" de la fenêtre d'affichage. Enfin, nous en surimpression de la vidéo d'origine sur le dessus de cela.
Below example assumes that input video has greater
aspect ratio than output video.
┌─────────────┐
┌─────────────┐ │ │
│ Input video │ │ Output │
│ │ │ video │
└─────────────┘ │ │
│ │
└─────────────┘
Nous allons utiliser filtre graphique pour atteindre cet objectif. Notre filtre comme ci-dessous dans la notation point:
Salut! Dans mon cas, votre solution est de 80% plus rapide... mais la sortie n'ont pas de 16:9 résolution. J'ai réussi à changer la culture & propriétés de l'échelle pour satisfaire la résolution a demandé ffmpeg -i input.mp4 -vf 'split[original][copy];[copy]scale=ih*16/9:-1,crop=h=iw*9/16,gblur=sigma=20[blurred];[blurred][original]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2' output.mp4 avec cette modification, il est 60% plus rapide que la accepté de répondre.
A vous d'entrée résolution de 1280 x 720?
Non, mon entrée est une verticale de la vidéo et je veux un 1280x720 ou 16:9 sortie vidéo. Je pense que c'est ce qui était demandé.
C'est la raison pour laquelle vous n'obtenez pas le résultat escompté. La réponse suppose l'entrée de la résolution à 1280 x 720
Oui, vous avez raison, votre solution a 1280x720 d'entrée, mais renvoie une 1280x2282... la personne qui l'a posée dans ce post et moi étions à la recherche d'un ratio d'aspect de 16:9 que votre solution n'a pas
Image d'entrée sera lu en boucle pendant toute la durée de la sortie vidéo en -loop 1. Et -t 10 limite la vidéo de sortie durée de 10 secondes. Dans cet exemple j'ai utilisé 1280:720 que la résolution de sortie vidéo et mise à l'échelle des entrées pour le match de ce ratio. 0:v reportez-vous à l'entrée de la vidéo et il sera réduit à hauteur de 720 où la largeur sera ajusté en conséquence.
Ici, j'ai utilisé boxblur filtre où il y a plusieurs autres comme sab, smartblur et unsharp. map aurez spécifié traitées les flux d'entrée et la carte pour le flux de sortie en conséquence.
J'ai résolu!
D'entrée: https://www.youtube.com/watch?v=17uHCHfgs60
Sortie: http://www.youtube.com/watch?v=CgZsDLfzrTs
boxblur
filtre. This la solution est de 60% plus vite et n'est pas inclus dans la licence GPL.La accepté de répondre ici prend une éternité à s'exécuter parce que c'est faire beaucoup de calculs inutiles. Nous n'avons pas besoin de brouiller les pixels dont nous savons avec certitude que sera hors de la fenêtre d'affichage de la vidéo de sortie.
Donc, une meilleure solution serait d'abord couper la partie de la vidéo qui sera visible dans la sortie. Nous avons ensuite mis à l'échelle de la présente partie, "remplissage" de la fenêtre d'affichage. Enfin, nous en surimpression de la vidéo d'origine sur le dessus de cela.
Nous allons utiliser filtre graphique pour atteindre cet objectif. Notre filtre comme ci-dessous dans la notation point:
En supposant que la résolution pour la vidéo d'entrée est de 1280 x 720, la commande se présente comme ci-dessous:
ffmpeg -i input.mp4 -vf 'split[original][copy];[copy]scale=ih*16/9:-1,crop=h=iw*9/16,gblur=sigma=20[blurred];[blurred][original]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2' output.mp4
avec cette modification, il est 60% plus rapide que la accepté de répondre.Vous pouvez essayer de superposition de la vidéo sur un flou de l'image comme ceci.
Image d'entrée sera lu en boucle pendant toute la durée de la sortie vidéo en
-loop 1
. Et-t 10
limite la vidéo de sortie durée de 10 secondes. Dans cet exemple j'ai utilisé 1280:720 que la résolution de sortie vidéo et mise à l'échelle des entrées pour le match de ce ratio.0:v
reportez-vous à l'entrée de la vidéo et il sera réduit à hauteur de 720 où la largeur sera ajusté en conséquence.Ici, j'ai utilisé
boxblur
filtre où il y a plusieurs autres commesab
,smartblur
etunsharp
.map
aurez spécifié traitées les flux d'entrée et la carte pour le flux de sortie en conséquence.Espérons que cela vous aidera!
-f lavfi -i color=black
au lieu de la seconde image.Je ne pouvais pas obtenir des solutions de travail à l'aide de ffmpeg 3.4.2 sur Windows.
Mais, il n'travail:
N'oubliez pas de remplacer
<input_file>
et<output_file>
avec les noms de fichier.