Die hinzugefügten ffmpeg-Timecodes stimmen nicht mit denen überein, die ich in Premiere lesen kann

Ich habe diesen Befehl verwendet, um den Timecode in mein Video zu brennen.

Obwohl alles gut aussah, scheint es, als ob mein Timecode nicht übereinstimmt, wenn ich mein Video in Premiere öffne.

Timecode stimmt nicht überein!

Meine Befürchtung ist, dass der von ffmpeg verarbeitete Timecode das Original der Eingabedatei war, aber bei der erneuten Komprimierung über h264 änderte sich die Anzahl der Frames, wodurch den h264-Komprimierungsalgorithmen Vorrang eingeräumt wurde.

Wie kann ich es reparieren? Oder besser, wie kann ich ein Ausgabevideo haben, das genau der Dauer und den Frames der ursprünglichen Eingabedatei entspricht?

Leider war meine Eingabedatei bereits ein h264-mp4-Stream.

Der Befehl, den ich verwendet habe, ist der folgende:

ffmpeg -i "file.mp4" -c:v libx264 -x264-params "crf=17" -preset fast -c:a copy -c:s copy -copyinkf -filter_complex "drawtext=fontfile=font.otf: timecode='00\:00\:00\:00':rate=24: text='': fontsize=56: fontcolor=white@0.9: borderw=3: bordercolor=black: x=50-text_w/2:y=50" "file2.mp4"

Die vollständige Konsolenausgabe lautet wie folgt:

ffmpeg version N-82500-g52da3f6 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.3 (GCC)
  configuration: --arch=x86_64 --target-os=mingw32 --cross-prefix=/root/opt/ffmpeg-cross-compile/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32- --pkg-config=pkg-config --disable-w32t
hreads --enable-libsoxr --enable-fontconfig --enable-libass --enable-libbluray --enable-iconv --enable-libtwolame --extra-cflags=-DLIBTWOLAME_STATIC --enable-libzvbi --enable-libcaca --enable-libmodpl
ug --extra-libs=-lstdc++ --extra-libs=-lpng --enable-decklink --extra-libs=-loleaut32 --enable-libmp3lame --enable-version3 --enable-zlib --enable-librtmp --enable-libvorbis --enable-libtheora --enabl
e-libspeex --enable-libopenjpeg --enable-gnutls --enable-libgsm --enable-libfreetype --enable-libopus --enable-bzlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --ena
ble-libschroedinger --enable-libvpx --enable-libilbc --enable-libwavpack --enable-libwebp --enable-libgme --enable-dxva2 --enable-avisynth --enable-gray --enable-libopenh264 --enable-netcdf --enable-l
ibflite --enable-lzma --enable-libsnappy --enable-libzimg --enable-gpl --enable-libx264 --enable-libx265 --enable-frei0r --enable-filter=frei0r --enable-librubberband --enable-libvidstab --enable-libx
avs --enable-libxvid --enable-libmfx --extra-libs=-lpsapi --extra-libs=-lspeexdsp --extra-cflags='-mtune=core2' --extra-cflags=-O3 --enable-static --disable-shared --prefix=/root/opt/ffmpeg-cross-comp
ile/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32 --enable-nonfree --enable-libfdk-aac --enable-runtime-cpudetect
  libavutil      55. 40.100 / 55. 40.100
  libavcodec     57. 66.103 / 57. 66.103
  libavformat    57. 57.100 / 57. 57.100
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 67.100 /  6. 67.100
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file.mp4':
  Metadata:
    major_brand     : iso5
    minor_version   : 512
    compatible_brands: iso6mp41
  Duration: 00:51:27.38, start: 0.000000, bitrate: 3246 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 2988 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
[libx264 @ 0000000003746020] using SAR=1/1
[libx264 @ 0000000003746020] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0000000003746020] profile High, level 4.0
[libx264 @ 0000000003746020] 264 - core 148 r2708 86b7198 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=
hex subme=6 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=12 lookahead_threads=2 sliced_threads=0 nr=0 dec
imate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookah
ead=30 rc=crf mbtree=1 crf=17.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'file2.mp4':
  Metadata:
    major_brand     : iso5
    minor_version   : 512
    compatible_brands: iso6mp41
    encoder         : Lavf57.57.100
    Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 24 fps, 12288 tbn, 24 tbc (default)
    Metadata:
      encoder         : Lavc57.66.103 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Stream #0:1(und): Audio: aac (LC) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 256 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Stream mapping:
  Stream #0:0 (h264) -> drawtext
  drawtext -> Stream #0:0 (libx264)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 2105 fps= 36 q=-1.0 Lsize=   41555kB time=00:01:27.58 bitrate=3886.8kbits/s dup=2 drop=0 speed=1.49x
video:38775kB audio:2719kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.145290%
[libx264 @ 0000000003746020] frame I:11    Avg QP: 7.99  size: 70608
[libx264 @ 0000000003746020] frame P:761   Avg QP:13.37  size: 28331
[libx264 @ 0000000003746020] frame B:1333  Avg QP:14.85  size: 13030
[libx264 @ 0000000003746020] consecutive B-frames:  2.0% 40.1%  1.9% 56.1%
[libx264 @ 0000000003746020] mb I  I16..4: 49.6% 36.9% 13.5%
[libx264 @ 0000000003746020] mb P  I16..4:  9.6% 15.5%  2.1%  P16..4: 20.5%  7.4%  3.1%  0.0%  0.0%    skip:41.8%
[libx264 @ 0000000003746020] mb B  I16..4:  2.5%  3.7%  0.4%  B16..8: 17.6%  7.0%  0.8%  direct: 7.7%  skip:60.4%  L0:50.5% L1:44.4% BI: 5.1%
[libx264 @ 0000000003746020] 8x8 transform intra:56.0% inter:56.8%
[libx264 @ 0000000003746020] coded y,uvDC,uvAC intra: 37.2% 61.9% 19.6% inter: 6.6% 19.9% 0.8%
[libx264 @ 0000000003746020] i16 v,h,dc,p: 51% 24% 14% 10%
[libx264 @ 0000000003746020] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 36% 18% 29%  3%  3%  3%  2%  3%  3%
[libx264 @ 0000000003746020] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 39% 23% 15%  4%  4%  4%  3%  4%  3%
[libx264 @ 0000000003746020] i8c dc,h,v,p: 45% 18% 29%  7%
[libx264 @ 0000000003746020] Weighted P-Frames: Y:5.8% UV:3.0%
[libx264 @ 0000000003746020] ref P L0: 77.3% 22.7%
[libx264 @ 0000000003746020] ref B L0: 87.0% 13.0%
[libx264 @ 0000000003746020] ref B L1: 97.2%  2.8%
[libx264 @ 0000000003746020] kb/s:3621.54

Ich habe es erneut ausgeführt, um die Ausgabe zu erhalten, und es nach einigen Sekunden mit der Option [q] geschlossen;)

EDIT: erneut ausgeführt, nur das Video behalten!

ffmpeg version N-82500-g52da3f6 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.3 (GCC)
  configuration: --arch=x86_64 --target-os=mingw32 --cross-prefix=/root/opt/ffmpeg-cross-compile/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32- --pkg-config=pkg-config --disable-w32t
hreads --enable-libsoxr --enable-fontconfig --enable-libass --enable-libbluray --enable-iconv --enable-libtwolame --extra-cflags=-DLIBTWOLAME_STATIC --enable-libzvbi --enable-libcaca --enable-libmodpl
ug --extra-libs=-lstdc++ --extra-libs=-lpng --enable-decklink --extra-libs=-loleaut32 --enable-libmp3lame --enable-version3 --enable-zlib --enable-librtmp --enable-libvorbis --enable-libtheora --enabl
e-libspeex --enable-libopenjpeg --enable-gnutls --enable-libgsm --enable-libfreetype --enable-libopus --enable-bzlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --ena
ble-libschroedinger --enable-libvpx --enable-libilbc --enable-libwavpack --enable-libwebp --enable-libgme --enable-dxva2 --enable-avisynth --enable-gray --enable-libopenh264 --enable-netcdf --enable-l
ibflite --enable-lzma --enable-libsnappy --enable-libzimg --enable-gpl --enable-libx264 --enable-libx265 --enable-frei0r --enable-filter=frei0r --enable-librubberband --enable-libvidstab --enable-libx
avs --enable-libxvid --enable-libmfx --extra-libs=-lpsapi --extra-libs=-lspeexdsp --extra-cflags='-mtune=core2' --extra-cflags=-O3 --enable-static --disable-shared --prefix=/root/opt/ffmpeg-cross-comp
ile/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32 --enable-nonfree --enable-libfdk-aac --enable-runtime-cpudetect
  libavutil      55. 40.100 / 55. 40.100
  libavcodec     57. 66.103 / 57. 66.103
  libavformat    57. 57.100 / 57. 57.100
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 67.100 /  6. 67.100
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file.mp4':
  Metadata:
    major_brand     : iso5
    minor_version   : 512
    compatible_brands: iso6mp41
  Duration: 00:51:27.38, start: 0.000000, bitrate: 3246 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 2988 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
[libx264 @ 000000000315f7c0] using SAR=1/1
[libx264 @ 000000000315f7c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 000000000315f7c0] profile High, level 4.0
[libx264 @ 000000000315f7c0] 264 - core 148 r2708 86b7198 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=
hex subme=6 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=12 lookahead_threads=2 sliced_threads=0 nr=0 dec
imate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookah
ead=30 rc=crf mbtree=1 crf=17.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'file2.mp4':
  Metadata:
    major_brand     : iso5
    minor_version   : 512
    compatible_brands: iso6mp41
    encoder         : Lavf57.57.100
    Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 24 fps, 12288 tbn, 24 tbc (default)
    Metadata:
      encoder         : Lavc57.66.103 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream mapping:
  Stream #0:0 (h264) -> drawtext
  drawtext -> Stream #0:0 (libx264)
Press [q] to stop, [?] for help
frame=  843 fps= 36 q=-1.0 Lsize=   10386kB time=00:00:35.00 bitrate=2430.9kbits/s dup=2 drop=0 speed= 1.5x
video:10375kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.103293%
[libx264 @ 000000000315f7c0] frame I:4     Avg QP: 5.49  size: 41664
[libx264 @ 000000000315f7c0] frame P:285   Avg QP:12.19  size: 19489
[libx264 @ 000000000315f7c0] frame B:554   Avg QP:13.02  size:  8849
[libx264 @ 000000000315f7c0] consecutive B-frames:  2.6% 28.7%  1.8% 66.9%
[libx264 @ 000000000315f7c0] mb I  I16..4: 65.5% 27.6%  6.9%
[libx264 @ 000000000315f7c0] mb P  I16..4:  9.0% 11.3%  1.3%  P16..4: 15.5%  5.1%  2.2%  0.0%  0.0%    skip:55.6%
[libx264 @ 000000000315f7c0] mb B  I16..4:  2.4%  2.2%  0.1%  B16..8: 11.6%  4.9%  0.6%  direct: 7.1%  skip:71.0%  L0:50.3% L1:45.1% BI: 4.6%
[libx264 @ 000000000315f7c0] 8x8 transform intra:49.4% inter:53.5%
[libx264 @ 000000000315f7c0] coded y,uvDC,uvAC intra: 26.0% 54.6% 16.0% inter: 4.1% 16.1% 0.6%
[libx264 @ 000000000315f7c0] i16 v,h,dc,p: 52% 26% 14%  8%
[libx264 @ 000000000315f7c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 31% 22% 38%  1%  1%  1%  2%  1%  2%
[libx264 @ 000000000315f7c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 38% 28% 20%  2%  3%  3%  3%  2%  2%
[libx264 @ 000000000315f7c0] i8c dc,h,v,p: 49% 19% 26%  7%
[libx264 @ 000000000315f7c0] Weighted P-Frames: Y:15.4% UV:8.1%
[libx264 @ 000000000315f7c0] ref P L0: 71.5% 28.5%
[libx264 @ 000000000315f7c0] ref B L0: 84.7% 15.3%
[libx264 @ 000000000315f7c0] ref B L1: 96.2%  3.8%
[libx264 @ 000000000315f7c0] kb/s:2419.57

Dies sind die Medieninformationen, die ich erhalten habe:

Video -
ID: 1
Format: AVC
Format/Info: Erweitertes Video-Codec -Formatprofil
: High@L4 Formateinstellungen
, CABAC: Ja
Formateinstellungen, ReFrames: 2 Frames
Codec-ID: avc1
Codec-ID/Info: Erweiterte
Videocodierungsdauer: 50 s 0 ms
Bit Rate : 2 991 Kbps
Breite : 1 920 Pixel
Höhe : 1 080 Pixel Anzeigeseitenverhältnis
: 16:9
Bildratenmodus
: Variabel Bildrate : 23.976 (23976/1000) fps
Minimale Bildrate : 12.000 fps
Maximale Bildrate : 24.000 fps
Farbe Leerzeichen : YUV
Chroma-Unterabtastung : 4:2:0
Bittiefe : 8 Bit
Scantyp : Progressiv
Bits/(Pixel*Frame) : 0,060
Streamgröße : 17,8 MiB (100 %)
Schreibbibliothek: x264 Core 148 r2708 86b7198
Codierungseinstellungen: cabac=1 / ref=2 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=6 / 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 =12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=0 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=250 / keyint_min=24 / scenecut=40 / intra_refresh=0 / rc_lookahead=30 / rc=crf / mbtree=1 / crf=17.0 / qcomp=0.60 / qpmin =0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00

Zeigt die vollständige Konsolenausgabe an.
@Mulvya fertig :)
Die Konsolenausgabe zeigt nur zwei duplizierte Frames. Aber die Ausgabe ist nur 1m27s, während die Quelle 51m ist. Wenn also weiter Frames ausgelassen werden, zeigt diese Konsolenausgabe dies nicht an. Zeigt Premiere bei der 1m27s-Marke einen Unterschied von 2 Frames?
@Mulvya Entschuldigung, mir ist aufgefallen, dass ich in Premiere eine falsche Sequenz mit 23,297 fps anstelle von 24 erstellt habe. Wenn ich eine Sequenz mit 24 fps erstelle, habe ich tatsächlich nur 2 Frames aus. Wie kann ich diese 2 oder mehr doppelten Frames loswerden? Ist mein Befehl gut oder muss ich ihn besser schreiben, um keine doppelten oder ausgelassenen Frames für die zukünftigen Codierungen zu haben? Danke
Deaktivieren Sie Audio und Untertitel und codieren Sie. Muxen Sie dann das codierte Video mit den Original-Audio/Untertiteln in eine neue MP4.
@Mulvya denkst du, dass das Problem eine Frage der Abstimmung mit Audio und Subs ist? :O Ich könnte es versuchen..
@Mulvya ok, ich habe es getan und nur das Video behalten, aber wie Sie in der Konsole sehen können, sind die 2 Doppelbilder immer noch da: \
Verwenden Sie -vsync 0.
@Mulvya Ich habe vsync 0 hinzugefügt und jetzt signiert es keine duplizierten Frames, aber die Zeit weicht im Vergleich zwischen dem Timecode und Adobe Premiere immer von etwa 2 Frames ab
Warten Sie eine Minute. Es könnte dieser Fehler sein .
@Mulvya Gut, aber das Deaktivieren von B- und P-Frames macht nicht nur alles riesig? :Ö
Keine der Optionen, die ich dort vorgeschlagen habe, deaktiviert P-Frames. Und B-Frames sind nicht deaktiviert, nur begrenzt. Oder Sie könnten einfach mit den fehlenden 2 Frames leben :)

Antworten (1)

Möglicherweise haben Sie Medien mit variabler Bildrate. Die Zeitbasis sieht für Standard-24p-Medien ziemlich verrückt aus. Ich könnte es mit MediaInfo treffen (beachten Sie, dass die Windows-GUI Adware enthält, die CLI-Version jedoch nicht) und die Ausgabe davon posten.

Ja .. es scheint so, ich habe viele Transcodierungen ausprobiert und es scheint immer, dass sich die fps im laufenden Betrieb ändern. Wie bekomme ich eine konstante Leistung?
Diese Zeitbasis ist der Standard, den ffmpeg erzeugt, dh .framerate x 512.
@Mulvya Lassen Sie mich die Informationen für die letzte codierte Datei posten ...
@Mulvya lass mich hier antworten, damit ihr beide lesen könnt, ich habe viele andere Tests durchgeführt, ich habe auch versucht, nur das Video in .mov mit einem Propress-Codec anstelle von h264 zu codieren. ffmpeg zeigt jedoch keine duplizierten Frames an Am Anfang des Films gibt es den schwarzen Hintergrund mit weißem Text für die Anfangskredite.. und in diesem Teil werden 00:00:00:03 und 00:00:00:04 in Premiere zweimal wiederholt, wobei Premiere immer +2 Frames darüber liegt die Summe bis zum Ende :( Ich verstehe nicht warum, kann es an bestimmten Szenen etwas verbuggt sein, wie weißer Text auf schwarzem Hintergrund?
@ user3450548 Was Sie tun müssten, ist die Ausgabebildrate manuell in Ihrem Codierungstool anzugeben. Für ffmpegSie würden Sie also 23.976 verwenden -r 24000/1001, und für Handbrake gibt es ein Dropdown und Sie würden Constant Frame Rate auswählen.