schwarzen Videorand „abschneiden“, aber dvdsub

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

schwarzen Videorand „abschneiden“, aber dvdsub

Beitrag von fischig » 23.12.2020 16:10:33

Ich würde das gerne auf einem alten Video (in Cinemascope?, so hieß das wohl dazumalen) machen. handbrake und avidemux sagen mir nicht so zu. Bei keinem der beiden Programme kriege ich raus, was die mit den eingebetteten Untertiteln machen, auf die ich nicht verzichten will. Die ragen, wenn ich ffplay benutze, in den unteren schwarzen Rand hinein, so dass der - zumindest nicht komplett - abgeschnitten werden darf. Ich muss also, was oben und was unten wegfallen soll, separat festlegen. Ich machte es ja gern mit ffmpeg, aber die von mir gefundene englischspachige info verstehe ich nicht und was gescheites Deutschsprachiges habe ich nicht gefunden.
(ich weiß z.B. nicht, was ich mir unter der „Breite“ eines Videos vorstellen soll. Unter der Breite eines Bildschrms vermag ich mir schon was vorzustellen, auch wenn in Pixel angegeben; aber ich will ja ein Video, keinen Bildschirm beschneiden. Für letzteres wäre Malerband wahrscheinlich geeigneter. :wink: )
Ich habe hier (1) etwas Interessantes gefunden, dem gemäß man das Schneiden mit ffplay simulieren und damit kontrollieren könnte, aber das Kommando läuft, wenn ich recht sehe, auf gleiches Schneiden oben und unten hinaus, ist für mich also unbrauchbar. Wie ich's abwandeln sollte und demgemäß mit welchem ffmpeg-Kommando ich tatsächlich schneiden könnte, verstehe ich wie gesagt nicht. Ich nutze verschiedene Video-Container, meistens mkv, mp4 aber nie.

Code: Alles auswählen

ffplay -i input -vf "crop=in_w:in_h-40"
(1) https://video.stackexchange.com/questio ... ith-ffmpeg

(edit:)
Offenbar ist das so: Sowohl avidemux (2.7.6) als auch handbrake beschneiden zwar die Ränder, verlieren dabei aber die eingebetteten Untertitel, sind also hier unbrauchbar.
Zuletzt geändert von fischig am 25.12.2020 09:28:29, insgesamt 1-mal geändert.

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

Re: schwarzen Videorand „abschneiden“

Beitrag von MaGe » 23.12.2020 19:20:07

fischic hat geschrieben:
[...] verlieren dabei aber die eingebetteten Untertitel [...]

möchtes du bestehende bildbasierte Untertitel in einen Film brennen
wenn ja
-filter_complex "[0:v][0:s:0]overlay=x=15:y=-45[v]" -map "[v]"

Dies würde die erste Untertitelspur benutzen.
0:s:0 den ersten, 0:s:1 die zweite, 0:s:2 die dritte usw.

Schalter y = Hoch



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: 3639
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: schwarzen Videorand „abschneiden“

Beitrag von fischig » 24.12.2020 13:38:10

Danke für den Hinweis!
Ich gehe davon aus, das ist ffmpeg-Sprech. Mal schauen, ob ich das in mir akzeptabler Zeit „verdaut“ bekomme!
möchtest du bestehende bildbasierte Untertitel in einen Film brennen
Ich will da nichts rein brennen, ich will darin seiende (Untertitel) nicht verlieren. Und ja, es ist eigentlich immer nur eine (dvdsub-)Untertitelspur, die ich nutze. Trotzdem schön zu wissen, wie's auch mit mehreren funktionieren könnte.
Zur Not wäre vielleicht auch machbar, die existierende Untertitelspur(en) erstmal zu extrahieren, dann den untertitellosen Film zu beschneiden und anschließend die Untertitelspur wieder „einzubrennen“?

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

Re: schwarzen Videorand „abschneiden“

Beitrag von MaGe » 24.12.2020 14:12:42

fischic hat geschrieben: Ich gehe davon aus, das ist ffmpeg-Sprech.[...]

Damit wird der untertitel dauerhaft aktivieren "[0:v][0:s:0]overlay
Untertitel Mitten im Film ( y=-185 )

Code: Alles auswählen

 ffmpeg -i Video-rein -filter_complex "[0:v][0:s:0]overlay=x=15:y=-185[v]" -map "[v]"  Video-raus 
Untertitel im balken ( y=-15 )

Code: Alles auswählen

 ffmpeg -i Video-rein -filter_complex "[0:v][0:s:0]overlay=x=15:y=-15[v]" -map "[v]"  Video-raus  


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: 3639
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: schwarzen Videorand „abschneiden“

Beitrag von fischig » 24.12.2020 15:47:29

Hmmm,

Also damit kriege ich zwar die Untertitel vertikal verschoben, aber das allein ist ja nicht das, was ich erzielen will. Die Bitrate verschlechtert sich und der Ton (zweisprachig, also zwei Tonspuren) ist auch weg.

Zunächst mal: höhere y-Werte lassen die Untertitel nach oben wandern - richtig? Mit y=-45 sieht das schon ganz gut/eher: gar nicht so ganz schlecht aus. (dvdsub ist hässlich, aber was anderes habe ich nicht für den Film.)
Aber wie gesagt: Stummfilm sollte es eigentlich nicht werden.

Das hier ist der Film, so wie ffmpeg ihn angibt:

Code: Alles auswählen

Input #0, matroska,webm, from '[quell].mkv':
  Metadata:
    ENCODER         : Lavf58.20.100
  Duration: 00:05:00.92, start: 0.000000, bitrate: 2450 kb/s
    Stream #0:0: Video: h264 (High), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 1k tbn, 100 tbc (default)
    Metadata:
      ENCODER         : Lavc58.35.100 libx264
      DURATION        : 00:05:00.101000000
    Stream #0:1(deu): Audio: aac (LC), 48000 Hz, stereo, fltp (default)
    Metadata:
      ENCODER         : Lavc58.35.100 aac
      DURATION        : 00:05:00.010000000
    Stream #0:2(fra): Audio: aac (LC), 48000 Hz, stereo, fltp (default)
    Metadata:
      ENCODER         : Lavc58.35.100 aac
      DURATION        : 00:05:00.010000000
    Stream #0:3(fra): Subtitle: dvd_subtitle (default)
    Metadata:
      ENCODER         : Lavc58.35.100 dvdsub
      DURATION        : 00:05:00.919000000
Außer dem Hochschieben der Untertitelspur und dem Beschneiden des oberen und unteren schwarzen Randes (avidemux-Werte von 120 (Pixel, nehme ich an)), soll alles andere so erhalten bleiben, wie's ist.

Und wie sähe das jetzt in einem ffmpeg-Kommando/einigen ffmpeg-Kommandos aus?

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

Re: schwarzen Videorand „abschneiden“

Beitrag von MaGe » 24.12.2020 19:59:45

fischic hat geschrieben:
Und wie sähe das jetzt in einem ffmpeg-Kommando/einigen ffmpeg-Kommandos aus?

Was sagt ein:

Code: Alles auswählen

 ffmpeg -ss 00:10:00 -i Video-rein -t 06 -vf cropdetect=24:16:0 dummy.mp4 
Zeigt dir sowas, das grop brauch ich:
x1:0 x2:1279 y1:40 y2:680 w:1280 h:640 x:0 y:40 pts:6020 t:6.020000 crop=1280:640:0:40



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: 3639
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: schwarzen Videorand „abschneiden“

Beitrag von fischig » 25.12.2020 09:09:27

So, ich habe das jetzt mal mit meinem Schnipsel ausprobiert. Aber was tue ich da eigentlich?

Mein Schnipsel ist 5m lang. Mit -ss lege ich eigentlich immer den Anfangszeitpunkt einer ffmpeg-Aktion fest.
An einem 5minütigen Video bei der 6. Minute anzufangen, erschien mir sinnlos, ergo habe ich mal -ss 00:03:00 gewählt. -t gibt soweit ich weiß, die Dauer einer ffmpeg-Aktion an, verwende ich eigentlich nie (stattdessen -to). Einen Sinn in -t 06 vermochte ich nicht zu erkennen, hab' ich deswegen einfach mal übernommen.
Auf cropdetect=24:16:0 bin ich bei meinen Recherchen öfter mal gestoßen, aber eine Erklärung, was 24:16:0 bedeuten könnte, ist mir nirgends begegnet. OK, Google-Übersetzer habe ich noch nicht bemüht.
cropdetect an sich habe ich mir mal so übersetzt: „es wird was zum Schneiden entdeckt“

Ich habe das Kommando in dieser Form ausgeführt:

Code: Alles auswählen

ffmpeg -ss 00:03:00 -i [quelle].mkv -t 06 -vf cropdetect=24:16:0 dummy.mp4
Es laufen ziemlich lange Zeilen über den Schirm, die alle ziemlich gleich aussehen. Da ich nicht recht weiß, was ich getan habe, poste ich einfach mal die letzten Zeilen:

Code: Alles auswählen

[Parsed_cropdetect_0 @ 0x558d6637eec0] x1:1 x2:1227 y1:129 y2:589 w:1216 h:448 x:8 y:136 pts:6021 t:6.021000 crop=1216:448:8:136
frame=  300 fps= 53 q=-1.0 Lsize=     955kB time=00:00:06.01 bitrate=1300.6kbits/s speed=1.06x    
video:852kB audio:94kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.911765%
[libx264 @ 0x558d65f41e40] frame I:2     Avg QP:17.80  size: 43167
[libx264 @ 0x558d65f41e40] frame P:93    Avg QP:19.89  size:  6820
[libx264 @ 0x558d65f41e40] frame B:205   Avg QP:22.65  size:   740
[libx264 @ 0x558d65f41e40] consecutive B-frames:  1.0% 23.3%  1.0% 74.7%
[libx264 @ 0x558d65f41e40] mb I  I16..4: 34.6% 53.1% 12.3%
[libx264 @ 0x558d65f41e40] mb P  I16..4:  0.6%  1.5%  0.1%  P16..4: 26.8%  7.8%  5.4%  0.0%  0.0%    skip:57.9%
[libx264 @ 0x558d65f41e40] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8: 18.5%  0.3%  0.0%  direct: 0.2%  skip:80.9%  L0:40.1% L1:58.6% BI: 1.3%
[libx264 @ 0x558d65f41e40] 8x8 transform intra:60.5% inter:78.6%
[libx264 @ 0x558d65f41e40] coded y,uvDC,uvAC intra: 37.0% 44.0% 13.1% inter: 4.4% 6.6% 0.1%
[libx264 @ 0x558d65f41e40] i16 v,h,dc,p: 67% 16% 12%  5%
[libx264 @ 0x558d65f41e40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 12% 34%  3%  4%  6%  3%  4%  3%
[libx264 @ 0x558d65f41e40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 33% 13% 11%  5%  9% 12%  7%  6%  5%
[libx264 @ 0x558d65f41e40] i8c dc,h,v,p: 57% 18% 23%  2%
[libx264 @ 0x558d65f41e40] Weighted P-Frames: Y:8.6% UV:4.3%
[libx264 @ 0x558d65f41e40] ref P L0: 66.2% 17.4% 12.3%  3.9%  0.2%
[libx264 @ 0x558d65f41e40] ref B L0: 89.5%  8.3%  2.2%
[libx264 @ 0x558d65f41e40] ref B L1: 96.6%  3.4%
[libx264 @ 0x558d65f41e40] kb/s:1162.93
[aac @ 0x558d65ec81c0] Qavg: 368.725
Die erste davon ist vielleicht die, die du sehen willst.

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

Re: schwarzen Videorand „abschneiden“, aber dvdsub

Beitrag von MaGe » 25.12.2020 20:04:25

fischic hat geschrieben: Die erste davon ist vielleicht die, die du sehen willst.
x1:1 x2:1227 y1:129 y2:589 w:1216 h:448 x:8 y:136 pts:6021 t:6.021000 crop=1216:448:8:136

Frage ist das Video schon geschnitten :?:
wenn ja ausgabe vom ungeschnitten 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: 3639
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: schwarzen Videorand „abschneiden“, aber dvdsub

Beitrag von fischig » 25.12.2020 20:26:14

Nein, Video wurde noch nicht „be“schnitten. Es ist insofern „ge"schnitten, als es nur die ersten fünf Minuten des kompletten Videos enthält. dieses Video wiederum wurde aus einer TS-Datei mit Auslassung von für mich überflüssigen Spuren erstellt. Ränder wurden dabei nicht „be“schnitten. Ich kann gerne noch einen Schnipsel vom TS erstllen und damit testen, aber im Moment sehe ich den Sinn nicht, das zu tun.

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

Re: schwarzen Videorand „abschneiden“, aber dvdsub

Beitrag von MaGe » 25.12.2020 21:18:00

fischic hat geschrieben: aber im Moment sehe ich den Sinn nicht, das zu tun.
x1:1 x2:1227 y1:129 y2:589 w:1216 h:448 x:8 y:136 pts:6021 t:6.021000 crop=1216:448:8:136
Schnittmarke balken oben, unten
crop=1216:448:8:136
Stream #0:0: Video: h264 (High), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9]
Stream #0:1(deu): Audio: aac (LC), 48000 Hz, stereo, fltp (default)
Stream #0:2(fra): Audio: aac (LC), 48000 Hz, stereo, fltp (default)
Stream #0:3(fra): Subtitle: dvd_subtitle (default)
TESTEN!!: Untertitel fest einbrennen:

Code: Alles auswählen

 ffmpeg -i video-rein -c:v libx264 -b:v 2500k -filter_complex "[0:0]crop=1216:448:8:136[a];[0:3]scale=1216:448[b];[a][b]overlay[c]" -map [c] -map 0:a? -c:a copy video-raus 
Schneidet das Video - [0:0]crop=1216:448:8:136[a]
Skaliert untertitel neu [0:3]scale=1216:448
Überlagert Video, untertitel [a]overlay[c]"
-map 0:a? alle Audiospuren



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: 3639
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: schwarzen Videorand „abschneiden“, aber dvdsub

Beitrag von fischig » 26.12.2020 10:58:10

Ich habe zwar bestenfalls die Hälfte verstanden, aber im Prinzip funktioniert es! :THX:

Die schwarzen Bereiche links und rechts sind weg, die oben und unten scheinen kleiner geworden zu sein, die Untertitel liegen im eigentlichen Bild, sollten aber etwas weiter an den unteren Rand rücken.[0:0]crop=1216:448:8:136[a] 1246 und 448 glaube ich zu verstehen, das sind wohl die Breite und Höhe des resultierenden Bildes, aber was ist mit 8 und 136[a]?
Heißt das, ffmpeg hat alles, was in der Breite vor dem 8./9.Pixel und alles was vor dem 136./137. Pixel in der Höhe steht, abgeschnitten. Das kann's doch eigentlich nicht sein, aber was dann? Und das [a]?
Ich habe mal Erläuterungen zu den Koordinaten bei „crop“(1) von google übersetzen lassen und die Übersetzung kommt mir auch sprachlich so gut wie korrekt vor, aber verstehen tu' ich's nicht.

(1) https://www.linuxuprising.com/2020/01/f ... mples.html

[edit]
Hmm, ich glaube diesen Teil:

Code: Alles auswählen

[a][b]overlay[c]
habe ich jetzt ansatzweise verstanden:
überlagere/klebe das Untertitelbild [0:3=b] auf das gecropte Videobild [1216:448:8:136=a] und bearbeite dieses Bild dann weiter als [c] - Richtig?

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

Re: schwarzen Videorand „abschneiden“, aber dvdsub

Beitrag von MaGe » 26.12.2020 14:25:33

fischic hat geschrieben: überlagere/klebe das Untertitelbild [0:3=b] auf das gecropte Videobild [1216:448:8:136=a] und bearbeite dieses Bild dann weiter als [c] - Richtig?
Richtig!

https://bbs.archlinux.org/viewtopic.php?id=180688
fischic hat geschrieben: Die schwarzen Bereiche links und rechts sind weg, die oben und unten scheinen kleiner geworden zu sein,
Ich weiß nicht wie lang dein video ist
Bei mir, mit nur 3 Minuten

Code: Alles auswählen

ffmpeg -ss 00:03:00 -i [quelle].mkv -t 06 -vf cropdetect=24:16:0 dummy.mp4 
crop=1280:448:0:102

Ab der 10 Minute, bleibt der rahmen Gleich

Code: Alles auswählen

ffmpeg -ss 00:10:00 -i [quelle].mkv -t 06 -vf cropdetect=24:16:0 dummy.mp4 
crop=1280:528:0:96 ( das brauche ich )

Das ist dein Original Video.
Stream #0:0: Video: h264 (High), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9]

1280 = Breite
720 = Höhe

Schneiden crop=1280:528:0:96
1280 - 0 * 0 = 1280
720 - 2 * 96 = 528

Linker - Rechter rand 0
Oben - Unten 96

Ich kann es nicht anders erklären.



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: 3639
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: schwarzen Videorand „abschneiden“, aber dvdsub

Beitrag von fischig » 28.12.2020 10:23:11

MaGe hat geschrieben:Ich weiß nicht wie lang dein Video ist
Spielt die Länge überhaupt eine Rolle, wenn man annehmen darf, dass die Bilddimensionen sich in Abhängigkeit von der Zeit nicht ändern?

Der letzte der vier crop-Werte (bei mir: crop=1216:448:8:136) ist ein y-Wert - richtig? Und der ist genau halb so groß wie die Summe der beiden (oberen und unteren) Balken, so dass sich der zweite y-Wert (448) errechnet aus: originale Höhe (720)-(2x136).
Das deckt sich mit deinem Beispiel: 720-(2x96)= 528.
Stimmt die Überlegung?

Das setzt voraus, dass oberer und unterer Balken gleich hoch sind. Muss das so sein? Wie sähe es aus, wenn sie's nicht wären?

Gehe ich recht in der Annahme, dass das resultierende Bild auf einem 16:9-Bildschirm gar nicht ohne (neue/andere) Balken darstellbar ist (mein letzter avidemux-Test legt das nahe)? Sondern, dass es dazu einer (weiteren) Neuberechnung bedürfte?
Und: Wäre das sinnvoll/Welche Konsequenzen hätte das?
Welches Seitenverhältnis für die Darstellung am Rechner ich auch immer in smplayer wähle: mit dem resultierenden Video aus

Code: Alles auswählen

ffmpeg -i video-rein -c:v libx264 -b:v 2500k -filter_complex "[0:0]crop=1216:448:8:136[a];[0:3]scale=1216:448[b];[a][b]overlay[c]" -map [c] -map 0:a? -c:a copy video-raus
bleiben entweder schwarze Balken oder es gibt eine verzerrte Darstellung.

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

Re: schwarzen Videorand „abschneiden“, aber dvdsub

Beitrag von MaGe » 29.12.2020 00:10:05

fischic hat geschrieben: Spielt die Länge überhaupt eine Rolle, wenn man annehmen darf, dass die Bilddimensionen sich in Abhängigkeit von der Zeit nicht ändern?
Wenn deine Annahme stimmt dann nicht! aber woher weißt du das?

Ich habe Videos, da sind im vorspann gar keine Balken.
oder sie sind so:

1 Minute nach start crop=1200:480:76:96
2 Minuten nach start crop=1248:544:8:88
4 Minuten nach start crop=1280:544:0:88

Nummer sicher :
10 Minuten nach start crop=1280:544:0:88

wenn dein Video Schneide programm den Schnittpunkt in der
ersten Minute macht dann Schneidet es wahrscheinlich zu viel weg.
fischic hat geschrieben: Das deckt sich mit deinem Beispiel: 720-(2x96)= 528.
Stimmt die Überlegung?
Richtig!
fischic hat geschrieben: Das setzt voraus, dass oberer und unterer Balken gleich hoch sind.
Muss das so sein? Wie sähe es aus, wenn sie's nicht wären?
Dann hast du am oberen, oder am unteren rand schwarze streifen, erhöhe die 96 - 98,100
fischic hat geschrieben: Gehe ich recht in der Annahme, dass das resultierende Bild auf einem 16:9-Bildschirm gar
nicht ohne (neue/andere) Balken darstellbar ist (mein letzter avidemux-Test legt das nahe)?
mpv: Zeigt mir das Video ohne Balken in 1280x528 ( kein 16:9 )
mpv dummy.mkv
(+) Video --vid=1 (*) (h264 1280x528 50.000fps)

Und mein TV, ersetzt die entfernten Balken wieder!




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: 3639
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: schwarzen Videorand „abschneiden“, aber dvdsub

Beitrag von fischig » 29.12.2020 07:24:22

@µaGe:
Ich würde dir gerne eine PN/Mail schreiben. Lässt sich das einrichten?

Antworten