Ho realizzato una serie di screencast usando recordmydesktop su Ubuntu 12.10. L'output è un file ogv. Quando guardo il file ogv usando il lettore di film predefinito (totem), tutto sembra a posto: audio e video sono sincronizzati. Quando viene transcodificato (da me o da YouTube) l'audio e il video non sono sincronizzati. Mi sembra di saltare una diapositiva o due mentre narravo.
Aggiornare
Ho il sospetto che il problema sia più propriamente caratterizzato dal rilascio di frame duplicati durante la transcodifica. La conversione di video in cui si sposta il mouse sembra normalmente funzionare correttamente. Ma quando sto solo parlando durante una diapositiva, quei frame duplicati vengono eliminati.
Ho visto questo, ma non è proprio la mia situazione (provando a passare da ogv -> nulla) /superuser/436187/ffmpeg-convert-video-w-dropped-frames-out-of-sync
I file AVI sembrano tradurre correttamente! Presumo che questo sarà un grande suggerimento per qualcuno. Vorrei ancora rintracciare il problema di fondo. Sto testando la conversione dei miei video precedenti in AVI, ma ci vuole un po 'di tempo poiché devo controllare ogni transizione.
Esempi
Questo è il file OGV originale da gtk-recordmydesktop: http://dl.dropbox.com/u/64693533/sync_test/sync_test1.ogv
Il video inizia con una diapositiva per 10 secondi, quindi passa ad altre 3 diapositive di 5 secondi ciascuna. Ogni volta che faccio avanzare le diapositive, tocco anche il microfono (10s, 15s, 20s, 25s).
Ecco alcune conversioni che sono state eseguite (ognuna mostra i propri problemi di temporizzazione video):
http://dl.dropbox.com/u/64693533/sync_test/sync_test1.mp4
- questo mostra la prima diapositiva nel primo fotogramma ma avanza rapidamente oltre
- questo è stato fatto usando stock ffmpeg
http://dl.dropbox.com/u/64693533/sync_test/sync_test1.ffmpeg-static.mp4
- questo è piuttosto vicino - per qualche motivo a 13 anni decide di avanzare però
- questo è stato fatto usando la build statica di ffmpeg di qualche giorno fa
Eccolo su YouTube - puoi vedere che a circa 13 secondi avanza presto (dalla diapositiva 1 -> diapositiva 2):
Ecco la prova che il file OGV funziona correttamente:
traduzione ffmpeg
Usando ffmpeg o avconv mi sembra di ottenere risultati simili a quelli di YouTube (le transizioni sembrano avvenire presto ma non necessariamente allo stesso tempo).
Ecco il comando che uso (con una recente build statica di ffmpeg) e output:
$ ~ / ffmpeg / ffmpeg -i JSP.ogv JSP.mp4 versione ffmpeg N-50025-gb8bb661 Copyright (c) 2000-2013 gli sviluppatori FFmpeg costruito il 17 febbraio 2013 05:23:03 con gcc 4.6 (Debian 4.6.3-1) configurazione: --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] Il fisbone multiplo per lo stesso flusso non è implementato. Aggiorna la tua versione di FFmpeg alla versione più recente di Git. Se il problema persiste, significa che il tuo file ha una funzione che non è stata implementata. [ogg @ 0x34d4640] L'analisi dell'intestazione non è riuscita per il flusso 0 [ogg @ 0x34d4640] File rotto, fotogramma chiave non contrassegnato correttamente. Immettere # 0, ogg, da 'JSP.ogv': Durata: 00: 12: 49.67, inizio: 0.000000, bitrate: 224 kb / s Stream # 0: 0: Dati: nessuno Stream # 0: 1: Video: theora, yuv420p, 1600x880 [SAR 1: 1 DAR 20:11], 15 fps, 15 tbr, 15 tbn, 15 tbc Metadati: RECORDMYDESKTOP: 0.3.8.1 Stream # 0: 2: Audio: vorbis, 22050 Hz, mono, fltp, 89 kb / s [libx264 @ 0x369c5e0] utilizzando SAR = 1/1 [libx264 @ 0x369c5e0] utilizzando le funzionalità della cpu: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX [libx264 @ 0x369c5e0] profilo Alto, livello 4.0 [libx264 @ 0x369c5e0] 264 - core 129 r2230 1cffe9f - codec AVC H.264 / MPEG-4 - Copyleft 2003-2012 - http://www.videolan.org/x264.html - opzioni: cabac = 1 ref = 3 deblock = 1: 0: 0 analizza = 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 thread = 6 lookahead_threads = 1 sliced_threads = 0 nr = 0 decimate = 1 interlaced = 0 bluray_compat = 0 vincined_intra = 0 bframes = 3 b_pyramid = 2 b_adapt = 1 b_bias = 0 diretto = 1 pesob = 1 open_gop = 0 weightp = 2 keyint = 250 keyint_min = 15 scenecut = 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 Uscita # 0, mp4, su "JSP.mp4": Metadati: 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 Metadati: RECORDMYDESKTOP: 0.3.8.1 Stream # 0: 1: Audio: aac ([64] [0] [0] [0] / 0x0040), 22050 Hz, mono, s16, 128 kb / s Mappatura stream: Stream # 0: 1 -> # 0: 0 (theora -> libx264) Stream # 0: 2 -> # 0: 1 (vorbis -> libvo_aacenc) Premere [q] per interrompere, [?] Per aiuto [ogg @ 0x34d4640] File rotto, senza fotogramma chiave non contrassegnato correttamente. L'ultimo messaggio è stato ripetuto 2 volte File rotto, senza fotogramma chiave non contrassegnato correttamente. = 00: 00: 08.37 bitrate = 28.7kbit / s dup = 66 drop = 0 File rotto, fotogramma chiave non contrassegnato correttamente. Tempo = 00: 00: 51,01 bitrate = 125.3kbit / s dup = 675 drop = 0 File rotto, fotogramma chiave non contrassegnato correttamente. Tempo = 00: 00: 55,05 bitrate = 140,2 kbit / s dup = 782 drop = 0 File rotto, fotogramma chiave non contrassegnato correttamente.time = 00: 00: 59.60 bitrate = 140.5kbit / s dup = 836 drop = 0 [ogg @ 0x34d4640] File rotto, fotogramma chiave non contrassegnato correttamente. File rotto, fotogramma chiave non contrassegnato correttamente.time = 00: 01: 08.00 bitrate = 143.0kbits / s dup = 900 drop = 0 File rotto, fotogramma chiave non contrassegnato correttamente. Tempo = 00: 01: 11,86 bitrate = 141,6kbit / s dup = 910 drop = 0
... ripetuto molte volte ...
File rotto, fotogramma chiave non contrassegnato correttamente. Tempo = 00: 12: 47.62 bitrate = 153.0kbit / s dup = 9087 drop = 0 frame = 11521 fps = 87 q = -1,0 Lsize = 14849kB tempo = 00: 12: 49.48 bitrate = 158.1kbit / s dup = 9087 drop = 0 video: 2401kB audio: 12024kB sottotitoli: 0 intestazioni globali: 0kB overhead di muxing 2.938094% [libx264 @ 0x369c5e0] frame I: 49 QP medio: 16.05 dimensione: 29658 [libx264 @ 0x369c5e0] frame P: 2912 QP medio: 9,88 dimensioni: 114 [libx264 @ 0x369c5e0] frame B: 8560 QP medio: 12,76 dimensioni: 78 [libx264 @ 0x369c5e0] fotogrammi B consecutivi: 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% salta: 99,9% [libx264 @ 0x369c5e0] mb B I16..4: 0,0% 0,0% 0,0% B16..8: 0,3% 0,0% 0,0% diretto: 0,0% salta: 99,7% L0: 65,3% L1: 34,6% BI: 0,1% [libx264 @ 0x369c5e0] 8x8 trasformazione intra: 0,5% inter: 15,8% [libx264 @ 0x369c5e0] codificato 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% [libx264 @ 0x369c5e0] i8c dc, h, v, p: 100% 0% 0% 0% [libx264 @ 0x369c5e0] P-Frame ponderati: 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
Il video avanza ancora presto ma in momenti diversi. Sembra che gtk-recordmydesktop stia generando un "file rotto". La cosa fastidiosa è che l'OGV funziona, quindi sembra che dovrei essere in grado di farlo funzionare con alcune opzioni.
Ho scoperto che posso rendere il video in kdenlive e sembra funzionare lì. Mi piacerebbe ancora sapere cosa sta succedendo. kdenlive fa un lavoro molto migliore, ma a volte avanza ancora presto.
ffmpeg
binario incluso .