@nuttyaboutnatty Les messages "obsolètes" ne s'appliquaient qu'aux anciens "faux, morts," ffmpeg"de la branche Libav, pas à ceux ffmpegde FFmpeg qui sont revenus dans 15.04.
Il -1indiquera à ffmpeg de choisir automatiquement la hauteur correcte par rapport à la largeur fournie pour préserver le rapport de format. -1peut également être utilisé pour la largeur si vous fournissez une hauteur donnée.
Un inconvénient d'échelle lors de l' utilisation libx264est que ce codeur nécessite même des valeurs et de l' échelle peut choisir automatiquement une valeur impaire qui entraîne une erreur: width or height not divisible by 2. Vous pouvez indiquer à scale de choisir une valeur paire pour une hauteur donnée (720 dans cet exemple):
scale="trunc(oh*a/2)*2:720"
... ou une largeur donnée (1280 dans cet exemple):
scale="1280:trunc(ow/a/2)*2"
Notez que votre version de ffmpeg pourrait se plaindre de ne pas reconnaître -cou d’ -filteroptions. Il peut également ne pas supporter scale. Dans ce cas, vous devez utiliser un fichier ffmpeg plus récent, que vous pouvez télécharger en tant que build statique ou le compiler vous-même .
J'ai essayé ffmpeg -i output.mkv -filter:v scale=720:-1 -acodec copy -threads 12 output_shrink.mkv(dans la version 0.8.6-6 de ffmpeg: 0.8.6-0ubuntu0.12.10.1) mais j'ai eu l'erreurUnrecognized option 'filter:v'
doug65536
6
Après avoir parcouru la page de manuel de ffmpeg plusieurs fois, j’ai trouvé qu’au lieu de -filter:v, l’option semble avoir été remplacée par -vf.
Doug65536
2
@ doug65536 -filter:vet -vfsont tous deux bien. La version Ubuntu que vous utilisiez est cassée et obsolète - ce n'est pas vraiment FFmpeg ffmpeg, mais le binaire fourni par Libav (le fork de FFmpeg) sous le même nom.
Slhck
1
@MightyPork probablement votre version de ffmpeg est obsolète - quels problèmes se produisent ?. Quoi qu'il en soit, cela m'a vraiment aidé (avec ffmpeg version 2.4.10) à réduire la taille de certaines vidéos massives pour libérer de l'espace - merci!
Wilf
4
'-c' est l'abréviation de -codec, ': a' spécifie le ou les flux audio, 'copy' spécifie le codec de copie, qui copie le (s) flux (audio dans ce cas) sans réencodage. Fondamentalement, les flux audio passeront. Ceci est courant lorsque vous manipulez uniquement le flux vidéo.
Jimhark
14
J'utilise les commandes suivantes pour redimensionner des vidéos et des images. Pour largeur et hauteur fixe -
et si vous souhaitez conserver les proportions, donnez simplement height -1 et le redimensionnement se fera automatiquement en fonction de la largeur -
ffmpeg -i input.avi -vf scale="720:-1" output.avi
Si vous souhaitez mettre à l'échelle en fonction de la taille d'entrée, par exemple. Disons réduire la largeur / hauteur de la moitié que vous pouvez faire -
ffmpeg
peut être déconseillé, voir ici et iciffmpeg
"de la branche Libav, pas à ceuxffmpeg
de FFmpeg qui sont revenus dans 15.04.Réponses:
L'exemple le plus fondamental est le suivant:
L'utilisation du
scale
filtre apportera plus de flexibilité:Il
-1
indiquera à ffmpeg de choisir automatiquement la hauteur correcte par rapport à la largeur fournie pour préserver le rapport de format.-1
peut également être utilisé pour la largeur si vous fournissez une hauteur donnée.Un inconvénient d'échelle lors de l' utilisation
libx264
est que ce codeur nécessite même des valeurs et de l' échelle peut choisir automatiquement une valeur impaire qui entraîne une erreur:width or height not divisible by 2
. Vous pouvez indiquer à scale de choisir une valeur paire pour une hauteur donnée (720 dans cet exemple):... ou une largeur donnée (1280 dans cet exemple):
Notez que votre version de ffmpeg pourrait se plaindre de ne pas reconnaître
-c
ou d’-filter
options. Il peut également ne pas supporterscale
. Dans ce cas, vous devez utiliser un fichier ffmpeg plus récent, que vous pouvez télécharger en tant que build statique ou le compiler vous-même .la source
ffmpeg -i output.mkv -filter:v scale=720:-1 -acodec copy -threads 12 output_shrink.mkv
(dans la version 0.8.6-6 de ffmpeg: 0.8.6-0ubuntu0.12.10.1) mais j'ai eu l'erreurUnrecognized option 'filter:v'
-filter:v
, l’option semble avoir été remplacée par-vf
.-filter:v
et-vf
sont tous deux bien. La version Ubuntu que vous utilisiez est cassée et obsolète - ce n'est pas vraiment FFmpegffmpeg
, mais le binaire fourni par Libav (le fork de FFmpeg) sous le même nom.ffmpeg version 2.4.10
) à réduire la taille de certaines vidéos massives pour libérer de l'espace - merci!J'utilise les commandes suivantes pour redimensionner des vidéos et des images. Pour largeur et hauteur fixe -
et si vous souhaitez conserver les proportions, donnez simplement height -1 et le redimensionnement se fera automatiquement en fonction de la largeur -
Si vous souhaitez mettre à l'échelle en fonction de la taille d'entrée, par exemple. Disons réduire la largeur / hauteur de la moitié que vous pouvez faire -
REMARQUE :
La construction statique peut être téléchargée depuis - https://johnvansickle.com/ffmpeg/
Documentation: https://ffmpeg.org/ffmpeg.html#filter_005foption
la source