2011-01-13 1 views
2

J'ai une taille de vidéo source de 720x576 avec des rectangles noirs en haut et en bas.Le rognage des barres noires en vidéo avec ffmpeg sur ubuntu change la taille de la vidéo

Je souhaite supprimer les rectangles noirs et définir la taille de la vidéo de sortie sur 640 x 352. J'ai essayé -vf cropdetect et la valeur donnée était 640: 192: 0: 80. Toutefois, en attribuant la même valeur à crop=<parameter>, vous modifiez la taille de la vidéo de sortie.

Comment puis-je résoudre ce problème?

.: par exemple

ffmpeg -i all_the_best_test.mpg -s 640x352 -deinterlace -b 500k -minrate 500k \ 
-maxrate 500k -aspect 1.82 -force_fps -vcodec libx264 -me_method 10 \ 
-vf crop=640:192:0:80 -r 25 -acodec libfaac -ac 2 -ar 44100 -ab 96k -subq 6 \ 
-vpre medium /vod/Movies/final/allthebest-crop-2.mp4 
+0

En supposant que ce soit toujours un problème, que voulez-vous dire par "change la taille de la vidéo"? Le rapport d'aspect est faux? Ce n'est pas exactement clair ce que votre sortie désirée est comme cropdetect dit que le contenu du film est 640x192, mais vous dites que vous voulez 640x352. Voulez-vous juste de plus petites barres noires? Un ratio d'aspect différent? – blahdiblah

Répondre

0

Lorsque vous spécifiez -s 640x352 comme la première commande appliquant à la sortie, attendez-vous ffmpeg traitera durer? A en juger par vos résultats, je pense qu'il a dû l'appliquer en premier (au film avec le cadre noir encore intact). Donc le cadre noir aurait été redimensionné avec le film. Ensuite, vous avez appliqué la culture qui a été détectée pour le film de taille originale à ce nouveau film plus petit. Il est difficile d'expliquer sans dessiner quelque chose, mais cela aurait déformé votre rapport d'aspect et, si la culture est définie comme la géométrie à conserver, découpez un peu de votre marge (rappelez-vous: vous avez réduit la vidéo avant d'appliquer la culture originale). En d'autres termes, ce n'est pas seulement déformé, mais les gens devraient avoir des cheveux et des appendices et des objets manquants? Pourquoi ne pas faire un simple test élémentaire? Si je fais l'approche de base que vous avez ici sur un film encadré noir, ça marche très bien.

L'étape 1 reste la même. Ne ffmpeg -i movie.mp4 -vf cropdetect temp.mp4 et lisez ce qu'il dit pour crop, comme votre crop = 640: 192: 0: 80. Étape 2: simplifiez votre ligne de commande pour tester: ffmpeg -i movie.mp4 -vf crop = 640: 192: 0: 80 movie_without_borders.mp4. Assurez-vous de lire le résultat dans un lecteur qui définira ses propres limites à la taille du fichier (ou peut être configuré pour le faire - appuyez sur 2 si vous êtes dans le lecteur de pot). Le nouveau film n'est pas déformé et les bordures noires ont disparu.

Pour mon fichier de test, deux changements de taille se sont produits. Tout d'abord, évidemment, la nouvelle taille géométrique est ce que nous avons spécifié pour la culture. Deuxièmement, la taille du fichier a légèrement diminué, vraisemblablement parce qu'une petite quantité d'espace a été utilisée pour préserver la boîte noire. Avec libx264 et un fichier de faible qualité relativement compressé sans beaucoup de mouvement, la découpe d'une boîte noire de même surface à l'image a réduit la taille du fichier de 3,99 à 3,76 (pour n = 1 ..). Mais très probablement, vous vouliez dire que l'image semblait «déformée».

Questions connexes