MP4-Tool zum Zusammenfügen von MP4-Dateien ohne Neukompression gesucht

  • 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


    Supporting HDR editing and output, this next generation cut editing tool boasts super-fast output with practically no loss in quality -- Smart Rendering. It's TMPGEnc MPEG Smart Renderer 6
    Next-generation cut editing tool that supports HDR editing and output. Also supports VP9 and AVI in addition to MPEG-1/2, H.264/AVC, and H.265/HEVC. Includes…
    tmpgenc.pegasys-inc.com
  • 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:

    Edited once, last by Highwayman (October 22, 2024 at 10:17 PM).

    • New
    • Official Post

    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?

  • 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.

    Edited once, last by Highwayman (October 24, 2024 at 11:45 AM).

  • 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.

    Edited once, last by Highwayman (October 24, 2024 at 4:05 PM).

  • 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

    • New
    • Official Post

    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.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!