(gelöst) ffmpeg, Videodimensionen ändern

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
fischig
Beiträge: 3635
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

(gelöst) ffmpeg, Videodimensionen ändern

Beitrag von fischig » 21.12.2021 15:27:14

Ich habe hier eine Videodatei (*.ts) mit h264,1280X720 Pixel Auflösung, mehreren Ton- und Untertitelspuren. Ich möchte mit ffmpeg den 46 Pixel starken oberen schwarzen Rand abschneiden, im Übrigen aber nichts verändern. Geht das/wie geht das?
Zuletzt geändert von fischig am 26.12.2021 13:57:51, insgesamt 1-mal geändert.

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: ffmpeg, Videodimensionen ändern

Beitrag von ottonormal » 21.12.2021 20:31:39

Ist zwar keine Antwort auf Deine Frage und ob das mit ffmpeg geht weiß ich auch nicht, wenn es aber auch grafisch sein darf ist Handbrake das Programm meiner Wahl dafür. Schon mehrfach mit Erfolg praktiziert. :wink:

MaGe
Beiträge: 1714
Registriert: 01.06.2014 17:12:16

Re: ffmpeg, Videodimensionen ändern

Beitrag von MaGe » 21.12.2021 20:34:50

fischig hat geschrieben: Geht das/wie geht das?

46 * 2 = 92

720 - 92 = 628

crop=1280:628:0:92

Testen:

Code: Alles auswählen

 ffplay -vf crop=1280:628:0:92 Frau_Holle.mkv 

Hoffe die rechnung geht auf.



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

Benutzeravatar
Tintom
Moderator
Beiträge: 3033
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: ffmpeg, Videodimensionen ändern

Beitrag von Tintom » 21.12.2021 20:55:49

fischig hat geschrieben: ↑ zum Beitrag ↑
21.12.2021 15:27:14
Ich habe hier eine Videodatei (*.ts) mit h264,1280X720 Pixel Auflösung, mehreren Ton- und Untertitelspuren. Ich möchte mit ffmpeg den 46 Pixel starken oberen schwarzen Rand abschneiden, im Übrigen aber nichts verändern. Geht das/wie geht das?
MaGe hat geschrieben: ↑ zum Beitrag ↑
21.12.2021 20:34:50
Hoffe die rechnung geht auf.
Damit schneidest du aber jeweils oben und unten 46px ab, aber @fischig wollte nur die oberen 46px abgeschnitten haben (so verstehe ich es zumindest).

MaGe
Beiträge: 1714
Registriert: 01.06.2014 17:12:16

Re: ffmpeg, Videodimensionen ändern

Beitrag von MaGe » 21.12.2021 21:37:13

Dann so
Video mit einem Balken!
720 - 46 = 674 - Ein schwarzer Balken

crop=1280:674:0:46

Ich habe keinen Film mit 46 Balken musst du Testen
ffplay -vf crop=1280:674:0:46 Frau_Holle.mkv



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

fischig
Beiträge: 3635
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: ffmpeg, Videodimensionen ändern

Beitrag von fischig » 21.12.2021 22:03:07

Was ist „:0“

Ah, mir dämmert's: die abzuschneidende Breite - richtig?

Aber wenn an der letzten Stelle (abzuschneidende Höhe) nicht unterschieden wird zwischen oben und unten, dann sind 92/46 für die Erkenntnis dessen, was man tut, witzlos: 92 schneidet oben und unten 46px ab, respektive 46 23px oben und unten.

Man kann also gar nicht nur den oberen Rand wegschneiden - richtig?

MaGe
Beiträge: 1714
Registriert: 01.06.2014 17:12:16

Re: ffmpeg, Videodimensionen ändern

Beitrag von MaGe » 21.12.2021 22:36:39

fischig hat geschrieben: Man kann also gar nicht nur den oberen Rand wegschneiden - richtig?
Guckst du hier

https://imgur.com/a/iS6EffU



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

fischig
Beiträge: 3635
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: ffmpeg, Videodimensionen ändern

Beitrag von fischig » 21.12.2021 22:46:48

Ich versteh' dich nicht.

Huo
Beiträge: 614
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: ffmpeg, Videodimensionen ändern

Beitrag von Huo » 21.12.2021 23:13:53

Code: Alles auswählen

ffmpeg -i in.ts -vf crop=in_w:in_h-46:0:out_h -c:a copy out.ts

MaGe
Beiträge: 1714
Registriert: 01.06.2014 17:12:16

Re: ffmpeg, Videodimensionen ändern

Beitrag von MaGe » 21.12.2021 23:15:54

.
fischig @
Den Film musst du schon neu Konvertieren!
du veränderst ja das Video,



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

fischig
Beiträge: 3635
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: ffmpeg, Videodimensionen ändern

Beitrag von fischig » 22.12.2021 00:05:04

Ich hatte gesagt, dass ich oben 46px abschneiden will.

MaGe hat das sofort dupliziert und Tintom (und ich auch) das so interpretiert, dass MaGe oben und unten 46px abschneiden will. auf diesen Einwand hat MaGe reagiert und die 92 wieder durch 46 ersetzt und dazu geschrieben
Ein schwarzer Balken
Frage: Wo. Bleibt der unten übrig oder wird der oben abgeschnitten?

Woher weiß ffmpeg, dass es bei der Zahl 92 an letzter Stelle in diesem Beispiel

Code: Alles auswählen

ffplay -vf crop=1280:628:0:92 Frau_Holle.mkv
jeweils unten und oben 46px abschneiden soll? Aber bei

Code: Alles auswählen

ffplay -vf crop=1280:674:0:46 Frau_Holle.mkv
46px nur oben? Weiß ffmpeg das? Ich weiß es nicht. Ohne erheblich detailliertere Erläuterungen verstehe ich MaGes Rechnungen nicht.

handbrake will bei diesem Video übrigens automatisch oben 46 und unten 94px abschneiden. Diese Werte in die Rechnung gesetzt brächten vielleicht(!) mehr Durchblick. Aber macht, was ihr wollt. Ich bin hier nur der Bittsteller.

Benutzeravatar
hikaru
Moderator
Beiträge: 13585
Registriert: 09.04.2008 12:48:59

Re: ffmpeg, Videodimensionen ändern

Beitrag von hikaru » 22.12.2021 00:30:50

Aus der Dokumentation des crop-Filters [1]:

Code: Alles auswählen

Crop the input video to given dimensions.

It accepts the following parameters:

w, out_w

    The width of the output video. It defaults to iw. This expression is evaluated only once during the filter configuration, or when the ‘w’ or ‘out_w’ command is sent.
h, out_h

    The height of the output video. It defaults to ih. This expression is evaluated only once during the filter configuration, or when the ‘h’ or ‘out_h’ command is sent.
x

    The horizontal position, in the input video, of the left edge of the output video. It defaults to (in_w-out_w)/2. This expression is evaluated per-frame.
y

    The vertical position, in the input video, of the top edge of the output video. It defaults to (in_h-out_h)/2. This expression is evaluated per-frame.
fischig hat geschrieben: ↑ zum Beitrag ↑
22.12.2021 00:05:04
Woher weiß ffmpeg, dass es bei der Zahl 92 an letzter Stelle in diesem Beispiel

Code: Alles auswählen

ffplay -vf crop=1280:628:0:92 Frau_Holle.mkv
jeweils unten und oben 46px abschneiden soll?
Sollte es nicht. Hier sollten nur oben 92px abgeschnitten werden.
Würdest du hier oben und unten 92px abschneiden wollen, dann müsste der Filter so aussehen:

Code: Alles auswählen

crop=1280:536:0:92

[1] https://ffmpeg.org/ffmpeg-filters.html#crop

fischig
Beiträge: 3635
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: ffmpeg, Videodimensionen ändern

Beitrag von fischig » 22.12.2021 10:07:07

Also gut, ich versuche, mir den kompletten Abschnitt einschließlich Beispielen zu übersetzen und diese Übersetzung hier zur Diskussion zu stellen. Mal eben drüber lesen hat Sinn nur für den, der's eigentlich nicht nötig hat.

Vorab: Wie das Programm bei 1280:536:0:92 darauf kommt, dass es 2*92 rechnen muss, um auf 536 zu kommen, leuchtet mir noch nicht ein. Was wäre, wenn ich verlangt hätte: 1280:536:0:74?
Und was macht man, wenn man à la handbrake oben und unten unterschiedlich viel wegschneiden will.

@MaGe
Den Film musst du schon neu Konvertieren!
Ist mir mittlerweile schon klar, aber ich will ja eigentlich nur die Auflösung ändern - falls möglich.

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: ffmpeg, Videodimensionen ändern

Beitrag von ottonormal » 22.12.2021 10:37:22

In Handbrake im Reiter "Dimensionen" bei "Cropping" von automatisch auf Benutzerdefiniert stellen. Dann kannst Du es Deinen Wünschen entsprechend einstellen.
Natürlich wird das Video auch da neu berechnet, die Einstellungen dafür müssen dann auch gemacht werden.

Benutzeravatar
hikaru
Moderator
Beiträge: 13585
Registriert: 09.04.2008 12:48:59

Re: ffmpeg, Videodimensionen ändern

Beitrag von hikaru » 22.12.2021 10:50:20

fischig hat geschrieben: ↑ zum Beitrag ↑
22.12.2021 10:07:07
Vorab: Wie das Programm bei 1280:536:0:92 darauf kommt, dass es 2*92 rechnen muss, um auf 536 zu kommen, leuchtet mir noch nicht ein.
Es rechnet gar nicht. Ein Bild (egal ob bewegt oder nicht) hat eine Breite (width=w) und eine Höhe (height=h). Koordinatenursprung ist per Konvention die linke obere Ecke mit den Koordinaten x=1; y=1.

Die dem crop-Filter übergebenen Werte sind Folgende:
w,h,x,y, wobei w und h wie eben dargestellt die Dimensionen des Ziel-Bildes repräsentieren, während x und y Koordinaten innerhalb des Quell-Bildes darstellen. Der Filter macht also Folgendes:
Gehe im Quell-Bild an die Position x,y und schneide dort ein Bild mit den Dimensionen w*h aus.

Im konkreten Beispiel (1280:536:0:92):
Gehe zu x=0; y=92 und schneide dort ein Bild mit 1280*536px aus. Da x=0 ist, wird links nichts abeschnitten, während dank y=92 oben 92px abgeschnitten werden. Ab dieser Position wird ein Ausschnitt mit w=1280 (was "zufällig" der Quellbreite entspricht und daher keine Änderung bewirkt) mal h=536px ausgeschnitten. Da oben schon y=92px abgeschnitten wurden und unten nun 720 - (y=92) - (h=536) = 92px im Quellbild übrig sind, werden auch diese abgeschnitten.

Stell dir das Ganze bildlich wie eine Schablone mit den Maßen w*h vor, die du ausgehend von der linken oberen Ecke auf dein Quellbild an den Koordinaten x,y legst!
fischig hat geschrieben: ↑ zum Beitrag ↑
22.12.2021 10:07:07
Was wäre, wenn ich verlangt hätte: 1280:536:0:74?
Dann würden oben nur 74px abgeschnitten, unten dafür 110px. Du hättest die Schablone einfach 18px nach oben geschoben.
fischig hat geschrieben: ↑ zum Beitrag ↑
22.12.2021 10:07:07
Und was macht man, wenn man à la handbrake oben und unten unterschiedlich viel wegschneiden will.
Dann musst du rechnen! Vom Quellbild wird unten immer so viel abgeschnitten, wie nach Abzug von h+y noch übrig ist. Analoges gilt für die Breite mit w und x.
Ein Sonderfall ist, wenn du x und y gar nicht angibst. Dann wird die Schablone nicht etwa automatisch in der linken oberen Ecke angesetzt, sondern auf dem Quellbild zentriert.

MaGe
Beiträge: 1714
Registriert: 01.06.2014 17:12:16

Re: ffmpeg, Videodimensionen ändern

Beitrag von MaGe » 22.12.2021 14:28:21

fischig hat geschrieben: Und was macht man, wenn man à la handbrake oben und unten unterschiedlich viel wegschneiden will.
Die Frage ist doch wie kommt handbrake auf diese oben 46 und unten 94px werte
Überzeuge dich erst mal selbst,
du kannśt doch mit ffmeg die werte abfragen

Ab der 4 Minute, 4 Sekunden lang

Code: Alles auswählen

 ffmpeg -ss 240 -i Frau_Holle.mkv -to 04 -vf cropdetect -f null - 
Zeigt sowas: Gekürzte Ausgabe.
x1:0 x2:1279 y1:87 y2:631 w:1280 h:544 x:0 y:88 pts:2980 t:2.980000 crop=1280:544:0:88
x1:0 x2:1279 y1:87 y2:631 w:1280 h:544 x:0 y:88 pts:3000 t:3.000000 crop=1280:544:0:88
x1:0 x2:1279 y1:87 y2:631 w:1280 h:544 x:0 y:88 pts:3020 t:3.020000 crop=1280:544:0:88

Das schneidet mir oben und unten die Balken weg.
crop=1280:544:0:88



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

fischig
Beiträge: 3635
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: ffmpeg, Videodimensionen ändern

Beitrag von fischig » 22.12.2021 14:49:45

hikaru hat geschrieben: Es rechnet gar nicht. Ein Bild (egal ob bewegt oder nicht) hat eine Breite (width=w) und eine Höhe (height=h). Koordinatenursprung ist per Konvention die linke obere Ecke mit den Koordinaten x=1; y=1.

Die dem crop-Filter übergebenen Werte sind Folgende:
w,h,x,y, wobei w und h wie eben dargestellt die Dimensionen des Ziel-Bildes repräsentieren, während x und y Koordinaten innerhalb des Quell-Bildes darstellen. Der Filter macht also Folgendes:
Gehe im Quell-Bild an die Position x,y und schneide dort ein Bild mit den Dimensionen w*h aus.

Im konkreten Beispiel (1280:536:0:92):
Gehe zu x=0; y=92 und schneide dort ein Bild mit 1280*536px aus. Da x=0 ist, wird links nichts abeschnitten, während dank y=92 oben 92px abgeschnitten werden. Ab dieser Position wird ein Ausschnitt mit w=1280 (was "zufällig" der Quellbreite entspricht und daher keine Änderung bewirkt) mal h=536px ausgeschnitten. Da oben schon y=92px abgeschnitten wurden und unten nun 720 - (y=92) - (h=536) = 92px im Quellbild übrig sind, werden auch diese abgeschnitten.
:THX:
Schön, schön, schön, ich glaube, ich beginne zu verstehen! :wink:
MaGe hat geschrieben:Die Frage ist doch wie kommt handbrake auf diese oben 46 und unten 94px werte
Mit der beschäftige ich mich dann, wenn ich verstanden habe, was crop mit seinen vier Zahlen mit einem Bild veranstaltet. :wink:

Ich find's übrigens eine tolle Idee, erst mal mit ffplay zu testen, was dann die „Mutter“ ffmpeg tatsächlich mit dem Video anstellt! :THX:

fischig
Beiträge: 3635
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: ffmpeg, Videodimensionen ändern

Beitrag von fischig » 22.12.2021 20:17:02

hikaru hat geschrieben:
fischig hat geschrieben:Und was macht man, wenn man à la handbrake oben und unten unterschiedlich viel wegschneiden will.
Dann musst du rechnen!
Hab' ich gemacht. Ich denke, ich komme jetzt ohne Übersetzung zurecht. :THX: :THX: :THX: und habe nach ein wenig hin- und her Rechnen und dementsprechenden Tests mit ffplay eine ganz ordentliche Lösung für mein Video gefunden. Mit „Ben Hur“ werde ich noch kämpfen müsssen, weil die französischen Subtitel teilweise im unteren Balken plaziert sind und ich sie noch nicht recht „hochgeschoben“ gekriegt habe. :wink:
Weiterhin denke ich, hikaru sollte Doku für ffmpeg schreiben. :wink:

fischig
Beiträge: 3635
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: ffmpeg, Videodimensionen ändern

Beitrag von fischig » 23.12.2021 09:09:29

Kommando zurück!
Auch in diesem Video sind nach der Auflösungsänderung die Untertitel (dvbsub) mitsamt den schwarzen Balken teilweise verschwunden. Allerdings nicht bei der Wiedergabe mit vlc, da sind sie vollständig zu sehen. Alle anderen hier genutzten Abspielprogramme: ffplay, mpv, smplayer kommen mit den Untertiteln nicht mehr zurecht.

MaGe
Beiträge: 1714
Registriert: 01.06.2014 17:12:16

Re: ffmpeg, Videodimensionen ändern

Beitrag von MaGe » 23.12.2021 11:02:10

fischig hat geschrieben:
Kommando zurück!

Nach der Auflösungsänderung Balken schneiden
stimmen die X und Y Koordinaten nicht mehr

Ich frage mich auch schon warum macht man das, Balken entfernen?
Ich schaue Video über TV und dem ist es schnuppe, womit die Balken
dann (natürlich) bei der Wiedergabe wieder vorhanden sind

Ich bevorzuge die schwarzen Balken!
Um den Untertitel aus dem Bild in den unteren schwarzen Rand
bereich zu verschieben wegen der besseren Lesbarkeit.



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

fischig
Beiträge: 3635
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: ffmpeg, Videodimensionen ändern

Beitrag von fischig » 23.12.2021 11:33:09

MaGe hat geschrieben:Ich frage mich auch schon warum macht man das, Balken entfernen?
In der Regel mache ich das auch nicht. Ich bin da schon über einige Webseiten gestolpert, die den Sinn anzweifeln. Aber bei so'nem ollen CinemaScope-Schinken aus den 50ern des letzten Jahrhunderts sieht das dann auf einem Klapprechnerbildschirm doch arg nach Mini-Guckkastenbühne mit breitem rundumlaufemdem Trauerrand aus. :wink: Das versuche ich zu verbessern.

Und was die Untertitel angeht: Wir hatten das schon mal. Nachdem in meinen aktuellen Tests der vlc damit aber offenbar umgehen kann, glaube ich nicht mehr so recht an die Notwendigkeit, die im Bild verschieben zu sollen. Lasse mich aber gern eines Besseren belehren.

MaGe
Beiträge: 1714
Registriert: 01.06.2014 17:12:16

Re: ffmpeg, Videodimensionen ändern

Beitrag von MaGe » 23.12.2021 19:40:39

fischig hat geschrieben: [...] Aber bei so'nem ollen CinemaScope-Schinken aus den 50ern des letzten Jahrhunderts[...]
Ich sammle diese alten Schinken vor allem Western
Freue mich aber auch über jeden neuen der zu kaufen / TV bekommen ist
fischig hat geschrieben: Lasse mich aber gern eines Besseren belehren.
Es kommt vor allem darauf an was für Untertitel vorhanden sind

Bildbasierte = VobSub
Textbasierten = ass / srt

Mir persönlich liegen die ass / srt Textbasierten Untertitel, spielen kannst du
aber mehr mit SubStationAlpha > ass
Schrift, Größe, Farbe, Höhe,Breite / Strecken, Stauchen
das heist aus VobSub mach ass / srt,

Der ist von Gestern Abend ARTE_HD / Hell_or_High_Water.m2t

Einmal Französich (VobSub) und (SubStationAlpha) > ass
Enmal Deutsch (hearing impaired) (VobSub) und (SubStationAlpha) > ass

https://imgur.com/a/bBNaNSK



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

fischig
Beiträge: 3635
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: ffmpeg, Videodimensionen ändern

Beitrag von fischig » 23.12.2021 20:29:02

MaGe hat geschrieben:Der ist von Gestern Abend ARTE_HD / Hell_or_High_Water.m2t
Ist schon in der Kiste. :wink:
die Extension m2t ist mir unbekannt. Mein vdr macht ts. Aus dvbsub mach' ich via ffmpeg: -scodec dvdsub. Was anderes kann ich nicht. Und nach allem, was ich mir angelesen habe, ist die Umwandlung der Bilder-Untertitel in Text-Untertitel recht kompliziert.

Antworten