(gelöst) ffmpeg, Videodimensionen ändern
(gelöst) ffmpeg, Videodimensionen ändern
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.
- ottonormal
- Beiträge: 3404
- Registriert: 20.01.2014 22:25:29
Re: ffmpeg, Videodimensionen ändern
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.
Re: ffmpeg, Videodimensionen ändern
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.
Uns rottet die soziale Kälte viel früher aus.
Re: ffmpeg, Videodimensionen ändern
fischig hat geschrieben:21.12.2021 15:27:14Ich 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?
Damit schneidest du aber jeweils oben und unten 46px ab, aber @fischig wollte nur die oberen 46px abgeschnitten haben (so verstehe ich es zumindest).
Re: ffmpeg, Videodimensionen ändern
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
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.
Uns rottet die soziale Kälte viel früher aus.
Re: ffmpeg, Videodimensionen ändern
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?
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?
Re: ffmpeg, Videodimensionen ändern
Guckst du hierfischig hat geschrieben: Man kann also gar nicht nur den oberen Rand wegschneiden - richtig?
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.
Uns rottet die soziale Kälte viel früher aus.
Re: ffmpeg, Videodimensionen ändern
Ich versteh' dich nicht.
Re: ffmpeg, Videodimensionen ändern
Code: Alles auswählen
ffmpeg -i in.ts -vf crop=in_w:in_h-46:0:out_h -c:a copy out.ts
Re: ffmpeg, Videodimensionen ändern
.
fischig @
Den Film musst du schon neu Konvertieren!
du veränderst ja das Video,
gruss MaGe
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.
Uns rottet die soziale Kälte viel früher aus.
Re: ffmpeg, Videodimensionen ändern
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
Woher weiß ffmpeg, dass es bei der Zahl 92 an letzter Stelle in diesem Beispiel jeweils unten und oben 46px abschneiden soll? Aber bei 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.
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
Frage: Wo. Bleibt der unten übrig oder wird der oben abgeschnitten?Ein schwarzer Balken
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
Code: Alles auswählen
ffplay -vf crop=1280:674:0:46 Frau_Holle.mkv
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.
Re: ffmpeg, Videodimensionen ändern
Aus der Dokumentation des crop-Filters [1]:
Würdest du hier oben und unten 92px abschneiden wollen, dann müsste der Filter so aussehen:
[1] https://ffmpeg.org/ffmpeg-filters.html#crop
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.
Sollte es nicht. Hier sollten nur oben 92px abgeschnitten werden.fischig hat geschrieben:22.12.2021 00:05:04Woher weiß ffmpeg, dass es bei der Zahl 92 an letzter Stelle in diesem Beispieljeweils unten und oben 46px abschneiden soll?Code: Alles auswählen
ffplay -vf crop=1280:628:0:92 Frau_Holle.mkv
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
Re: ffmpeg, Videodimensionen ändern
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
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
Ist mir mittlerweile schon klar, aber ich will ja eigentlich nur die Auflösung ändern - falls möglich.Den Film musst du schon neu Konvertieren!
- ottonormal
- Beiträge: 3404
- Registriert: 20.01.2014 22:25:29
Re: ffmpeg, Videodimensionen ändern
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.
Natürlich wird das Video auch da neu berechnet, die Einstellungen dafür müssen dann auch gemacht werden.
Re: ffmpeg, Videodimensionen ändern
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.fischig hat geschrieben:22.12.2021 10:07:07Vorab: 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.
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!
Dann würden oben nur 74px abgeschnitten, unten dafür 110px. Du hättest die Schablone einfach 18px nach oben geschoben.
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.fischig hat geschrieben:22.12.2021 10:07:07Und was macht man, wenn man à la handbrake oben und unten unterschiedlich viel wegschneiden will.
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.
Re: ffmpeg, Videodimensionen ändern
Die Frage ist doch wie kommt handbrake auf diese oben 46 und unten 94px wertefischig hat geschrieben: Und was macht man, wenn man à la handbrake oben und unten unterschiedlich viel wegschneiden will.
Ü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 -
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.
Uns rottet die soziale Kälte viel früher aus.
Re: ffmpeg, Videodimensionen ändern
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.
Schön, schön, schön, ich glaube, ich beginne zu verstehen!
Mit der beschäftige ich mich dann, wenn ich verstanden habe, was crop mit seinen vier Zahlen mit einem Bild veranstaltet.MaGe hat geschrieben:Die Frage ist doch wie kommt handbrake auf diese oben 46 und unten 94px werte
Ich find's übrigens eine tolle Idee, erst mal mit ffplay zu testen, was dann die „Mutter“ ffmpeg tatsächlich mit dem Video anstellt!
Re: ffmpeg, Videodimensionen ändern
Hab' ich gemacht. Ich denke, ich komme jetzt ohne Übersetzung zurecht. 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.hikaru hat geschrieben:Dann musst du rechnen!fischig hat geschrieben:Und was macht man, wenn man à la handbrake oben und unten unterschiedlich viel wegschneiden will.
Weiterhin denke ich, hikaru sollte Doku für ffmpeg schreiben.
Re: ffmpeg, Videodimensionen ändern
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.
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.
Re: ffmpeg, Videodimensionen ändern
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.
Uns rottet die soziale Kälte viel früher aus.
Re: ffmpeg, Videodimensionen ändern
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. Das versuche ich zu verbessern.MaGe hat geschrieben:Ich frage mich auch schon warum macht man das, Balken entfernen?
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.
Re: ffmpeg, Videodimensionen ändern
Ich sammle diese alten Schinken vor allem Westernfischig hat geschrieben: [...] Aber bei so'nem ollen CinemaScope-Schinken aus den 50ern des letzten Jahrhunderts[...]
Freue mich aber auch über jeden neuen der zu kaufen / TV bekommen ist
Es kommt vor allem darauf an was für Untertitel vorhanden sindfischig hat geschrieben: Lasse mich aber gern eines Besseren belehren.
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.
Uns rottet die soziale Kälte viel früher aus.
Re: ffmpeg, Videodimensionen ändern
Ist schon in der Kiste.MaGe hat geschrieben:Der ist von Gestern Abend ARTE_HD / Hell_or_High_Water.m2t
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.