Ich habe eine heterogene Gruppe von Videos (Codecs, Abmessungen, Größe), die ich mit ffmpeg oben abschneiden möchte. Ich habe diesen Code ein Jahr lang ohne Probleme erfolgreich verwendet (das Beispiel hier schneidet 64 Pixel ab):
ffmpeg -i in.avi -y -pix_fmt yuv420p -an -qscale 1 -vcodec libx264 -vf crop=in_w:in_h-64:0:64 out.mp4
Allerdings bin ich jetzt auf einen Fall gestoßen, in dem es nicht richtig funktioniert, und ich vermute, dass es etwas mit SAR und DAR zu tun hat. Ich habe einen Clip, der Pixelabmessungen von 960 x 720 [SAR 960:720 DAR 16:9] zeigt, das Original sieht ungefähr so aus:
Wenn ich den obigen Befehl verwende, erhalte ich am Ende ein Video, das laut ffprobe/ffmpeg 960 x 656 [SAR 4:3 DAR 80:41] ist, aber wenn ich es in einem Webbrowser oder Quicktime ansehe, wird es als 1280 x 656 angezeigt:
Wie kann ich den Befehl ändern, um diesen Anwendungsfall zu berücksichtigen, ohne das Zuschneiden aller anderen Clips zu unterbrechen? Hier ist, was ich erfolglos versucht habe:
ffmpeg -i in.avi -y -pix_fmt yuv420p -an -qscale 1 -vcodec libx264 -vf scale=960:656,setsar=1 -vf crop=in_w:in_h-64:0:64 out.mp4
ffmpeg -i in.avi -y -pix_fmt yuv420p -an -qscale 1 -vcodec libx264 -vf setsar=sar=0 -vf setdar=dar=0 -vf crop=in_w:in_h-64:0:64 out.mp4
Das sollte universell funktionieren.
ffmpeg -i in.avi -y -pix_fmt yuv420p -an -qscale 1 -vcodec libx264 -vf setsar=1,crop=in_w:in_h-64:0:64 out.mp4
-qscale
. Verwenden Sie -crf
stattdessen .setsar=
oder sogar nur verwenden könnensetsar
ffmpeg akzeptiert nur einen Videofilter (markiert als -vf). Sie sollten alle gewünschten Videofilter in einer durch Kommas getrennten Zeichenfolge zusammenführen:
ffmpeg ... -vf setsar=1,crop=in_w:in_h-64:0:64 out.mp4
Benutzer255406
16851556