Hallo,
sowas suche ich noch, um einzelne Abschnitte von H.264 nachträglich zusammenzufügen (sequentiell). Abblende nach schwarz, Aufblende von schwarz.
Kann jemand etwas empfehlen?
Hallo,
sowas suche ich noch, um einzelne Abschnitte von H.264 nachträglich zusammenzufügen (sequentiell). Abblende nach schwarz, Aufblende von schwarz.
Kann jemand etwas empfehlen?
Tmpegenc Smart Renderer
Habe gefunden, dass es auch mit FFmpeg gehen soll. Wäre am einfachsten. Aber wie genau?
Preislich günstiger wäre es mit ffmpeg. Unkomplizierter ist es mit dem Smart Renderer.
Wenn du nicht per Kommandozeile frimeln willst, dann schau mal nach ner FFmpeg gui
ffmpeg -f concat -safe 0 -i <Textdatei> -c copy <Ausgabedatei>
tut es, aber mit den Timecodes stimmt etwas nicht:
Non-monotonic DTS; previous: 10224640, current: 10224624; changing to 10224641. This may result in incorrect timestamps in the output file.
Außerdem mag jetzt Shotcut die Datei nicht so richtig:
Man kann ffmpeg auch dazu bringen, während des Zusammenfügens die Timestamps im Videostream neu und fortlaufend zu generieren. Leider ist nicht so leicht verständlich, welche Kombination von Parametern dafür empfehlenswert ist.
Vielleicht ist MP4Box hier besser geeignet. Siehe Antwort #6 und #7 in diesem Thread im VideoHelp-Forum
Danke.
Ich werde es ausprobieren.
Bei MP4Box könnte es ja sein, dass es genauso fehlerhaft arbeitet, nur keine Fehlermeldung bringt.
Wie kann man denn die mp4-Datei auf Timecode-Fehler prüfen?
ffmpeg -fflags +igndts -f concat -safe 0 -i "join.txt" -c copy -fflags +genpts "output.mp4"
ändert nichts.
Wie kann man denn die mp4-Datei auf Timecode-Fehler prüfen?
Vermutlich mit ffprobe oder ffplay.
QuoteWie kann man denn die mp4-Datei auf Timecode-Fehler prüfen?
Was zählt den alles als Timecode-Fehler?
Muss der erste Timecode 0 sein?
Müssen Timecodes immer aufsteigend sein?
Darf nur eine bestimmte Schwankung (min?, max?) zwischen einem zu nächsten Timecode sein?
Ich vermute, das wichtigste ist monoton fortlaufender Timecode, was an den Nahtstellen von Videoteilen, die nicht vorher schon einen fortlaufenden Timecode hatten und danach getrennt wurden, ja nicht der Fall ist.
Ich hatte versucht, zwei vorab (mit Shotcut) erstellte mp4-Dateien mit ffmpeg zusammenzufügen.
An der Nahtstelle trat offenbar ein Problem auf: Überlappung der DTS. Aber es wurde ja offenbar eine Korrektur vorgenommen (changing to 10224641).
Nur mag Shotcut die zusammengefügte Datei nicht so richtig (Fehlermeldung variable Bitrate, aber das haben ja alle meine mp4s).
Nicht so richtig heißt, man kann trotzdem mit der Datei weiterarbeiten.
Ich habe jetzt MP4Box getestet (Join).
Ergebnis lässt sich in Shotcut ohne Fehlermeldung öffnen.
Timecode letztes Bild Clip 1: 00:03:32:24
Timecode erstes Bild Clip 2 : 00:03:33:00
Das sieht erst einmal gut aus.
Halt ohne "Abblende nach schwarz, Aufblende von schwarz",....
Halt ohne "Abblende nach schwarz, Aufblende von schwarz",....
Jo. War ja auch nur ein Test.
(Dies sollte das Verfahren auch nicht leisten, das erfolgt vorab in Shotcut.)
mp4 wird von Shotcut über FFmpeg generiert.
Ich habe mir das Protokoll angesehen, was einige Fragen aufwirft.
Die FFmpeg-Parameter kann ich nur eingeschränkt in Shotcut verändern.
Über die pts wird gemeckert (not proper).
Was ist denn stream1, Video oder Audio?
Packets or times may be invalid für rawvideo? Können, aber sind sie es?
timestamps are unset in a packet for stream 1. This is deprecated and will stop working in the future. Schön.
Fix your code, aber wie?
Hier bin ich im Augenblick überfordert.
--------------------------------------------------
Protokoll:
[libx264 @ 0000024f1b6c20c0] interlace + weightp is not implemented
[libx264 @ 0000024f1b6c20c0] using SAR=64/45
[libx264 @ 0000024f1b6c20c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0000024f1b6c20c0] profile High, level 3.0, 4:2:0, 8-bit
[libx264 @ 0000024f1b6c20c0] 264 - core 164 r3161M a354f11 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=18 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=tff bluray_compat=0 constrained_intra=0 bframes=8 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=0 keyint=125 keyint_min=12 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=17.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
[avi @ 0000024f1c69e580] parser not found for codec rawvideo, packets or times may be invalid.
[avi @ 0000024f1c69e580] parser not found for codec pcm_s16le, packets or times may be invalid.
[avi @ 0000024f1c69e580] parser not found for codec pcm_s16le, packets or times may be invalid.
[avi @ 0000024f1c69e580] parser not found for codec rawvideo, packets or times may be invalid.
[avi @ 0000024f295986c0] parser not found for codec rawvideo, packets or times may be invalid.
[avi @ 0000024f295986c0] parser not found for codec pcm_s16le, packets or times may be invalid.
[avi @ 0000024f295986c0] parser not found for codec pcm_s16le, packets or times may be invalid.
[avi @ 0000024f295986c0] parser not found for codec rawvideo, packets or times may be invalid.
[avi @ 0000024f2959a680] parser not found for codec rawvideo, packets or times may be invalid.
[avi @ 0000024f2959a680] parser not found for codec pcm_s16le, packets or times may be invalid.
[avi @ 0000024f2959a680] parser not found for codec pcm_s16le, packets or times may be invalid.
[avi @ 0000024f2959a680] parser not found for codec rawvideo, packets or times may be invalid.
[producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2
[AVIOContext @ 0000024f2959fb80] Statistics: 1091576 bytes read, 7 seeks
[chain avformat-novalidate] X:/_VIDEO-DOKU/Tests/Zweiter Lauf/Hi8-1.avi
checking VFR: pkt.duration 1
[link swresample] 2(independent) s16 48000Hz -> 2(stereo) f32le 48000Hz
[link swresample] 2(independent) s16 48000Hz -> 2(stereo) f32le 48000Hz
[link swresample] 2(independent) s16 48000Hz -> 2(stereo) f32le 48000Hz
[link swresample] 2(independent) s16 48000Hz -> 2(stereo) f32le 48000Hz
[link swresample] 2(independent) s16 48000Hz -> 2(stereo) f32le 48000Hz
[link swresample] 2(independent) s16 48000Hz -> 2(stereo) f32le 48000Hz
[link swresample] 2(independent) s16 48000Hz -> 2(stereo) f32le 48000Hz
....
[link swresample] 2(independent) s16 48000Hz -> 2(stereo) f32le 48000Hz
[mp4 @ 0000024f1c35c080] Timestamps are unset in a packet for stream 1. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
[mp4 @ 0000024f1c35c080] Encoder did not produce proper pts, making some up.
[mp4 @ 0000024f1c35c080] Starting second pass: moving the moov atom to the beginning of the file
[AVIOContext @ 0000024f2a2aee80] Statistics: 2523338 bytes read, 0 seeks
[libx264 @ 0000024f1b6c20c0] frame I:2 Avg QP:13.36 size: 81910
[libx264 @ 0000024f1b6c20c0] frame P:25 Avg QP:17.25 size: 43071
[libx264 @ 0000024f1b6c20c0] frame B:174 Avg QP:21.64 size: 5911
[libx264 @ 0000024f1b6c20c0] consecutive B-frames: 1.0% 1.0% 0.0% 2.0% 2.5% 6.0% 7.0% 0.0% 80.6%
[libx264 @ 0000024f1b6c20c0] mb I I16..4: 12.4% 55.5% 32.1%
[libx264 @ 0000024f1b6c20c0] mb P I16..4: 0.3% 10.1% 2.5% P16..4: 24.6% 25.4% 15.1% 0.0% 0.0% skip:22.1%
[libx264 @ 0000024f1b6c20c0] mb B I16..4: 0.0% 0.3% 0.0% B16..8: 36.3% 6.6% 1.8% direct: 5.5% skip:49.5% L0:44.3% L1:38.6% BI:17.2%
[libx264 @ 0000024f1b6c20c0] field mbs: intra: 0.0% inter:0.0% skip:0.0%
[libx264 @ 0000024f1b6c20c0] 8x8 transform intra:72.8% inter:56.5%
[libx264 @ 0000024f1b6c20c0] coded y,uvDC,uvAC intra: 91.0% 80.9% 51.1% inter: 24.4% 19.0% 0.2%
[libx264 @ 0000024f1b6c20c0] i16 v,h,dc,p: 72% 4% 8% 16%
[libx264 @ 0000024f1b6c20c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 13% 13% 28% 7% 7% 7% 7% 8% 10%
[libx264 @ 0000024f1b6c20c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 18% 15% 8% 8% 8% 9% 9% 12%
[libx264 @ 0000024f1b6c20c0] i8c dc,h,v,p: 55% 23% 16% 7%
[libx264 @ 0000024f1b6c20c0] ref P L0: 49.9% 35.6% 14.5%
[libx264 @ 0000024f1b6c20c0] ref B L0: 85.9% 12.1% 2.0%
[libx264 @ 0000024f1b6c20c0] ref B L1: 96.9% 3.1%
[libx264 @ 0000024f1b6c20c0] kb/s:2257.75
[aac @ 0000024f1c281840] Qavg: 2654.316
[AVIOContext @ 0000024f294fd740] Statistics: 5053386 bytes written, 4 seeks, 23 writeouts
Completed successfully in 00:00:00
Kurze Zusammenfassung:
interlace + weightp is not implemented
Hinweis = "isso". Siehst ja an weightp=0 dass es bezüglich des Wertepaares beachtet wurde.
packets or times may be invalid.
Hinweis = "isso"; liegt am Format. Leb damit. Funktioniert trotzdem, wenn die Daten sauber sind. Liest du da ein AVI mit unkomprimierten Video- und Audio-Streams? Dann ist es kein Wunder, dass die keine Header mit Details haben.
Timestamps are unset in a packet for stream 1.
Stream 1 kann Audio sein, wenn Stream 0 Video ist. Dein Log ist vermutlich nicht vollständig. Bei PCM-Audio wäre es völlig normal, dass es keine Timestamps enthält.
Fix your code to set the timestamps properly
Nicht du als Anwender. Die Programmierer des Codecs. Was aber, wie erwähnt, im Fall von PCM-Audio sinnlos ist.
Encoder did not produce proper pts, making some up.
Hinweis = "isso". Lesen, nicken, vergessen.
Completed successfully
Siehst du? Kein Grund zur Sorge, lief doch.
Vielen, vielen Dank, ich bin beruhigt.
Damit ist ja dann alles OK.
Und MP4Box leistet das, nach dem das Thema ursprünglich fragte.
Danke.
Don’t have an account yet? Register yourself now and be a part of our community!