Ich habe eine Reihe von Screencasts mit recordmydesktop unter Ubuntu 12.10 erstellt. Die Ausgabe ist eine ogv-Datei. Wenn ich die ogv-Datei mit dem Standard-Movie-Player (Totem) ansehe, sieht sie gut aus - Audio und Video sind synchron. Wenn es transkodiert wird (von mir oder YouTube), sind Audio und Video nicht synchron. Es sieht so aus, als würde ich beim Erzählen ein oder zwei Folien überspringen.
Aktualisieren
Ich vermute, dass das Problem besser dadurch gekennzeichnet ist, dass doppelte Frames während der Transcodierung gelöscht werden. Das Konvertieren von Videos, bei denen sich die Maus bewegt, scheint normalerweise einwandfrei zu funktionieren. Aber wenn ich nur während einer Folie spreche, werden diese doppelten Frames gelöscht.
Ich habe das gesehen, aber es ist nicht ganz meine Situation (ich versuche von ogv zu gehen -> irgendetwas) /superuser/436187/ffmpeg-convert-video-w-dropped-frames-out-of-sync
AVI-Dateien scheinen korrekt zu übersetzen! Ich gehe davon aus, dass dies ein großer Hinweis für jemanden sein wird. Ich möchte immer noch das zugrunde liegende Problem aufspüren. Ich teste die Konvertierung meiner vorherigen Videos in AVI, aber dies dauert eine Weile, da ich jeden Übergang überprüfen muss.
Beispiele
Dies ist die ursprüngliche OGV-Datei von gtk-recordmydesktop: http://dl.dropbox.com/u/64693533/sync_test/sync_test1.ogv
Das Video beginnt mit einer Folie für 10 Sekunden und geht dann zu 3 weiteren Folien mit jeweils 5 Sekunden über. Jedes Mal, wenn ich Dias vorschiebe, tippe ich auch auf das Mikrofon (10s, 15s, 20s, 25s).
Hier sind einige Konvertierungen, die durchgeführt wurden (jede zeigt ihre eigenen Video-Timing-Probleme an):
http://dl.dropbox.com/u/64693533/sync_test/sync_test1.mp4
- Dieser zeigt die erste Folie im ersten Frame, geht aber schnell daran vorbei
- Dies geschah mit dem Stock ffmpeg
http://dl.dropbox.com/u/64693533/sync_test/sync_test1.ffmpeg-static.mp4
- Dieser ist ziemlich nah dran - aus irgendeinem Grund entscheidet er sich mit 13 Jahren, weiterzukommen
- Dies wurde mit dem statischen Build von ffmpeg von vor einigen Tagen durchgeführt
Hier ist es auf Youtube - Sie können sehen, dass es gegen 13 Uhr früh voranschreitet (von Folie 1 -> Folie 2):
Hier ist der Beweis, dass die OGV-Datei korrekt funktioniert:
ffmpeg Übersetzung
Mit ffmpeg oder avconv erhalte ich anscheinend ähnliche Ergebnisse wie mit youtube (Übergänge scheinen früh, aber nicht unbedingt gleichzeitig zu erfolgen).
Hier ist der Befehl, den ich verwende (mit einem aktuellen statischen Build von ffmpeg) und die Ausgabe:
$ ~ / ffmpeg / ffmpeg -i JSP.ogv JSP.mp4 ffmpeg Version N-50025-gb8bb661 Copyright (c) 2000-2013 die FFmpeg-Entwickler gebaut am 17. Februar 2013 um 05:23:03 Uhr mit gcc 4.6 (Debian 4.6.3-1) Konfiguration: --prefix = / root / ffmpeg-static / 64bit --extra-cflags = '- I / root / ffmpeg-static / 64bit / include -static' --extra-ldflags = '- L / root / ffmpeg- static / 64bit / lib -static '--extra-libs =' - lxml2 -lexpat -lfreetype '--enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable -zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-grey --enable-libass - -enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx libavutil 52. 17.101 / 52. 17.101 libavcodec 54. 91.103 / 54. 91.103 libavformat 54. 63.100 / 54. 63.100 libavdevice 54. 3.103 / 54. 3.103 libavfilter 3. 38.100 / 3. 38.100 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 [ogg @ 0x34d4640] Mehrere Fisbone für denselben Stream sind nicht implementiert. Aktualisieren Sie Ihre FFmpeg-Version auf die neueste Version von Git. Wenn das Problem weiterhin auftritt, bedeutet dies, dass Ihre Datei über eine Funktion verfügt, die nicht implementiert wurde. [ogg @ 0x34d4640] Die Header-Analyse für Stream 0 ist fehlgeschlagen [ogg @ 0x34d4640] Defekte Datei, Keyframe nicht korrekt markiert. Geben Sie # 0, ogg, von 'JSP.ogv' ein: Dauer: 00: 12: 49,67, Start: 0,000000, Bitrate: 224 kb / s Stream # 0: 0: Daten: keine Stream # 0: 1: Video: theora, yuv420p, 1600 x 880 [SAR 1: 1 DAR 20:11], 15 fps, 15 tbr, 15 tbn, 15 tbc Metadaten: RECORDMYDESKTOP: 0.3.8.1 Stream # 0: 2: Audio: Vorbis, 22050 Hz, Mono, FLTP, 89 kb / s [libx264 @ 0x369c5e0] mit SAR = 1/1 [libx264 @ 0x369c5e0] mit CPU-Funktionen: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX [libx264 @ 0x369c5e0] Profil Hoch, Stufe 4.0 [libx264 @ 0x369c5e0] 264 - Kern 129 r2230 1cffe9f - H.264 / MPEG-4 AVC-Codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - Optionen: cabac = 1 ref = 3 deblock = 1: 0: 0 analyse = 0x3: 0x113 me = hex subme = 7 psy = 1 psy_rd = 1,00: 0,00 gemischt_ref = 1 me_range = 16 chroma_me = 1 spalier = 1 8x8dct = 1 cqm = 0 deadzone = 21,11 fast_pskip = 1 chroma_qp_offset = -2 threads = 6 lookahead_threads = 1 sliced_threads = 0 nr = 0 decimate = 1 interlaced = 0 bluray_compat = 0 beschränkter_intra = 0 bframes = 3 b_pyramid = 2 b_adapt = 1 b_bias = 0 direct = 1 weightb = 0 open_g weightp = 2 keyint = 250 keyint_min = 15 szenecut = 40 intra_refresh = 0 rc_lookahead = 40 rc = crf mbtree = 1 crf = 23,0 qcomp = 0,60 qpmin = 0 qpmax = 69 qpstep = 4 ip_ratio = 1,40 aq = 1: 1,00 Ausgabe # 0, mp4, an 'JSP.mp4': Metadaten: Encoder: Lavf54.63.100 Stream # 0: 0: Video: h264 ([33] [0] [0] [0] / 0x0021), yuv420p, 1600x880 [SAR 1: 1 DAR 20:11], q = -1--1, 15360 tbn 15 tbc Metadaten: RECORDMYDESKTOP: 0.3.8.1 Stream # 0: 1: Audio: aac ([64] [0] [0] [0] / 0x0040), 22050 Hz, Mono, s16, 128 kb / s Stream-Mapping: Stream # 0: 1 -> # 0: 0 (theora -> libx264) Stream # 0: 2 -> # 0: 1 (vorbis -> libvo_aacenc) Drücken Sie [q], um zu stoppen, [?] Um Hilfe zu erhalten [ogg @ 0x34d4640] Defekte Datei, Nicht-Keyframe nicht korrekt markiert. Letzte Nachricht 2 mal wiederholt Defekte Datei, Nicht-Keyframe nicht korrekt markiert. = 00: 00: 08.37 Bitrate = 28.7kbit / s dup = 66 drop = 0 Defekte Datei, Keyframe nicht korrekt markiert. Time = 00: 00: 51.01 Bitrate = 125.3kbit / s dup = 675 drop = 0 Defekte Datei, Keyframe nicht korrekt markiert. Time = 00: 00: 55.05 Bitrate = 140.2kbit / s dup = 782 drop = 0 Defekte Datei, Keyframe nicht korrekt markiert. Time = 00: 00: 59.60 Bitrate = 140.5kbit / s dup = 836 drop = 0 [ogg @ 0x34d4640] Defekte Datei, Keyframe nicht korrekt markiert. Defekte Datei, Keyframe nicht korrekt markiert. Time = 00: 01: 08.00 Bitrate = 143.0kbits / s dup = 900 drop = 0 Defekte Datei, Keyframe nicht korrekt markiert. Time = 00: 01: 11.86 Bitrate = 141.6kbit / s dup = 910 drop = 0
... viele Male wiederholt ...
Defekte Datei, Keyframe nicht korrekt markiert. Time = 00: 12: 47.62 Bitrate = 153.0kbits / s dup = 9087 drop = 0 Rahmen = 11521 fps = 87 q = -1,0 Lsize = 14849 kB Zeit = 00: 12: 49,48 Bitrate = 158,1 kbit / s dup = 9087 drop = 0 Video: 2401 KB Audio: 12024 KB Untertitel: 0 globale Header: 0 KB Muxing Overhead 2.938094% [libx264 @ 0x369c5e0] Frame I: 49 Durchschn. QP: 16.05 Größe: 29658 [libx264 @ 0x369c5e0] Frame P: 2912 Durchschnittlicher QP: 9,88 Größe: 114 [libx264 @ 0x369c5e0] Frame B: 8560 Durchschnittlicher QP: 12,76 Größe: 78 [libx264 @ 0x369c5e0] aufeinanderfolgende B-Frames: 0,9% 0,1% 0,2% 98,9% [libx264 @ 0x369c5e0] mb I I16..4: 90,8% 0,4% 8,8% [libx264 @ 0x369c5e0] mb P I16..4: 0,0% 0,0% 0,0% P16..4: 0,0% 0,0% 0,0% 0,0% 0,0% Überspringen: 99,9% [libx264 @ 0x369c5e0] mb B I16..4: 0,0% 0,0% 0,0% B16..8: 0,3% 0,0% 0,0% direkt: 0,0% überspringen: 99,7% L0: 65,3% L1: 34,6% BI: 0,1% [libx264 @ 0x369c5e0] 8x8-Transformation intra: 0,5% inter: 15,8% [libx264 @ 0x369c5e0] codiert y, uvDC, uvAC intra: 6,4% 0,1% 0,1% inter: 0,0% 0,0% 0,0% [libx264 @ 0x369c5e0] i16 v, h, dc, p: 94% 4% 2% 0% [libx264 @ 0x369c5e0] i8 v, h, dc, ddl, ddr, vr, hd, vl, hu: 19% 22% 44% 1% 2% 2% 3% 1% 6% [libx264 @ 0x369c5e0] i4 v, h, dc, ddl, ddr, vr, hd, vl, hu: 35% 17% 19% 4% 5% 5% 5% 5% 5% 5% [libx264 @ 0x369c5e0] i8c dc, h, v, p: 100% 0% 0% 0% [libx264 @ 0x369c5e0] Gewichtete P-Frames: Y: 0,0% UV: 0,0% [libx264 @ 0x369c5e0] ref P L0: 82,5% 1,4% 11,9% 4,3% [libx264 @ 0x369c5e0] Ref. B L0: 47,2% 52,4% 0,4% [libx264 @ 0x369c5e0] Ref. B L1: 99,2% 0,8% [libx264 @ 0x369c5e0] kb / s: 25,60
Das Video schreitet immer noch früh voran, aber zu unterschiedlichen Zeiten. Es hört sich so an, als würde gtk-recordmydesktop eine "kaputte Datei" generieren. Was ärgerlich ist, ist, dass das OGV funktioniert, so dass es so aussieht, als ob ich in der Lage sein sollte, dies mit einigen Optionen zum Laufen zu bringen.
Ich habe festgestellt, dass ich das Video in kdenlive rendern kann und es scheint dort zu funktionieren. Ich würde immer noch gerne wissen, was los ist. kdenlive macht einen viel besseren Job, aber manchmal kommt es immer noch früh voran.
ffmpeg
Binärdatei aus.