Ubuntu 12.10 üzerinde recordmydesktop kullanarak bir dizi screencasts yaptım. Çıktı bir ogv dosyasıdır. Varsayılan film oynatıcısını (totem) kullanarak ogv dosyasını izlediğimde iyi görünüyor - ses ve video senkronize. Kod dönüştürüldüğünde (benim veya youtube tarafından) ses ve video senkronize değil. Anlatılırken bir veya iki slayttan atladığım anlaşılıyor.
Güncelleme
Sorunun kod geçişi sırasında yinelenen kareleri düşürme olarak daha düzgün karakterize edildiğinden şüpheleniyorum. Videonun farenin hareket ettiği yere dönüştürülmesi normal olarak iyi çalışıyor gibi görünüyor. Ama sadece bir slayt sırasında konuştuğumda, bu yinelenen kareler düşüyor.
Bunu gördüm ama bu benim durumum değil (ogv -> herhangi bir şey gitmeye çalışıyorum) /superuser/436187/ffmpeg-convert-video-w-dropped-frames-out-of-sync
AVI dosyaları doğru şekilde çevrilmiş gibi görünüyor! Bunun birine büyük bir ipucu olacağını düşünüyorum. Hala altta yatan sorunu izlemek istiyorum. Önceki videolarımın AVI'ye dönüştürülmesini test ediyorum, ancak her geçişi kontrol etmem gerektiğinden bu biraz zaman alıyor.
Örnekler
Bu gtk-recordmydesktop'un orijinal OGV dosyasıdır: http://dl.dropbox.com/u/64693533/sync_test/sync_test1.ogv
Video, 10 saniye boyunca bir slaytla başlar, ardından her biri 5 saniyede 3 slayt daha ilerler. Slaytları her ilerlediğimde mikrofona da dokundum (10s, 15s, 20s, 25s).
Yapılan bazı dönüşümler şunlardır (her biri kendi video zamanlama sorunlarını görüntüler):
http://dl.dropbox.com/u/64693533/sync_test/sync_test1.mp4
- bu, ilk karedeki ilk slaydı gösterir ancak hızla ilerler
- bu hisse senedi ffmpeg kullanılarak yapıldı
http://dl.dropbox.com/u/64693533/sync_test/sync_test1.ffmpeg-static.mp4
- bu oldukça yakın - bazı nedenlerden dolayı 13s olsa ilerlemeye karar verir
- Bu, birkaç gün önce ffmpeg'in statik yapısı kullanılarak yapıldı
İşte youtube'da - 13'lerde erken ilerlediğini görebilirsiniz (slayt 1 -> slayt 2'den):
İşte OGV dosyasının doğru çalıştığının kanıtı:
ffmpeg çeviri
Ffmpeg veya avconv kullanarak youtube ile benzer sonuçlar alıyorum (geçişler erken gerçekleşiyor, ancak aynı anda olması gerekmiyor).
İşte kullandığım (ffmpeg'in son statik yapısıyla) ve çıktı:
$ ~ / ffmpeg / ffmpeg -i JSP.ogv JSP.mp4 ffmpeg sürüm N-50025-gb8bb661 Telif Hakkı (c) 2000-2013 FFmpeg geliştiricileri 17 Şubat 2013 05:23:03 tarihinde gcc 4.6 (Debian 4.6.3-1) ile oluşturuldu yapılandırma: --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-gri --enable-libass - -enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-sürüm3 --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] Aynı akış için birden fazla fisbone uygulanmadı. FFmpeg sürümünüzü Git'in en yeni sürümüne güncelleyin. Sorun devam ederse, dosyanızın uygulanmamış bir özelliği olduğu anlamına gelir. [ogg @ 0x34d4640] Akış 0 için başlık ayrıştırma başarısız oldu [ogg @ 0x34d4640] Bozuk dosya, ana kare doğru işaretlenmemiş. 'JSP.ogv' den # 0, ogg girin: Süre: 00: 12: 49.67, başlangıç: 0.000000, bit hızı: 224 kb / s Akış # 0: 0: Veri: yok Akış # 0: 1: Video: theora, yuv420p, 1600x880 [SAR 1: 1 DAR 20:11], 15 fps, 15 tbr, 15 tbn, 15 tbc Meta veri: RECORDMYDESKTOP: 0.3.8.1 Akış # 0: 2: Ses: vorbis, 22050 Hz, mono, fltp, 89 kb / s [libx264 @ 0x369c5e0] SAR = 1/1 kullanarak [libx264 @ 0x369c5e0] işlemci yeteneklerini kullanma: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX [libx264 @ 0x369c5e0] profil Yüksek, düzey 4.0 [libx264 @ 0x369c5e0] 264 - çekirdek 129 r2230 1cffe9f - H.264 / MPEG-4 AVC codec bileşeni - Copyleft 2003-2012 - http://www.videolan.org/x264.html - seçenekler: cabac = 1 ref = 3 deblock = 1: 0: 0 analiz = 0x3: 0x113 me = hex subme = 7 psy = 1 psy_rd = 1.00: 0.00 mixed_ref = 1 me_range = 16 chroma_me = 1 kafes = 1 8x8dct = 1 cqm = 0 deadzone = 21,11 fast_pskip = 1 chroma_qp_offset = -2 konu = 6 lookahead_threads = 1 dilimlenmiş_treads = 0 nr = 0 decimate = 1 geçmeli = 0 bluray_compat = 0 kısıtlanmış_intra = 0 çerçeveler = 3 b_pyramid = 2 b_adapt = 1 b_bias = 0 doğrudan = 1 ağırlıkb = 1 açık_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 Çıkış # 0, mp4, 'JSP.mp4' e: Meta veri: kodlayıcı: Lavf54.63.100 Akış # 0: 0: Video: h264 ([33] [0] [0] [0] / 0x0021), yuv420p, 1600x880 [SAR 1: 1 DAR 20:11], q = -1--1, 15360 tbn , 15 tbc Meta veri: RECORDMYDESKTOP: 0.3.8.1 Akış # 0: 1: Ses: aac ([64] [0] [0] [0] / 0x0040), 22050 Hz, mono, s16, 128 kb / s Akış eşleme: Akış # 0: 1 -> # 0: 0 (theora -> libx264) Akış # 0: 2 -> # 0: 1 (vorbis -> libvo_aacenc) Durdurmak için [q] tuşuna, yardım için [?] Tuşuna basın [ogg @ 0x34d4640] Bozuk dosya, ana kare olmayan doğru işaretlenmemiş. Son mesaj 2 defa tekrarlandı Bozuk dosya, ana kare olmayan doğru işaretlenmemiş. = 00: 00: 08.37 bit hızı = 28.7kbits / s dup = 66 drop = 0 Bozuk dosya, ana kare doğru işaretlenmemiş. Zaman = 00: 00: 51.01 bit hızı = 125.3kbits / s dup = 675 düşüş = 0 Bozuk dosya, anahtar kare doğru işaretlenmemiş. Zaman = 00: 00: 55.05 bit hızı = 140.2kbits / s dup = 782 düşüş = 0 Bozuk dosya, anahtar kare doğru işaretlenmemiş. Zaman = 00: 00: 59.60 bit hızı = 140.5kbits / s dup = 836 düşüş = 0 [ogg @ 0x34d4640] Bozuk dosya, ana kare doğru işaretlenmemiş. Bozuk dosya, anahtar kare doğru işaretlenmemiş. Zaman = 00: 01: 08.00 bit hızı = 143.0kbits / s dup = 900 düşüş = 0 Bozuk dosya, anahtar kare doğru işaretlenmemiş. Zaman = 00: 01: 11.86 bit hızı = 141.6kbits / s dup = 910 düşme = 0
... defalarca tekrarladı ...
Bozuk dosya, anahtar kare doğru işaretlenmemiş. Time = 00: 12: 47.62 bit hızı = 153.0kbits / s dup = 9087 drop = 0 çerçeve = 11521 fps = 87 q = -1,0 Lsize = 14849kB zaman = 00: 12: 49,48 bit hızı = 158,1 kb / sn dup = 9087 damla = 0 video: 2401kB ses: 12024kB altyazı: 0 global headers: 0kB muxing havai 2.938094% [libx264 @ 0x369c5e0] çerçeve I: 49 Ort. QP: 16.05 boyut: 29658 [libx264 @ 0x369c5e0] çerçeve P: 2912 Ort. QP: 9.88 boyut: 114 [libx264 @ 0x369c5e0] çerçeve B: 8560 Ort. QP: 12.76 boyut: 78 [libx264 @ 0x369c5e0] ardışık B-kareleri:% 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% atlama: 99.9% [libx264 @ 0x369c5e0] mb B I16..4:% 0.0% 0.0% 0.0% B16..8:% 0.3% 0.0% 0.0 doğrudan:% 0.0 atlama:% 99.7 L0:% 65.3 L1:% 34.6 BI:% 0.1 [libx264 @ 0x369c5e0] 8x8 dönüşüm içi:% 0,5 arası:% 15,8 [libx264 @ 0x369c5e0] kodlanmış 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] Ağırlıklı P-Çerçeveleri: 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
Video hala erken, ancak farklı zamanlarda ilerliyor. Kulağa gtk-recordmydesktop bir "bozuk dosya" oluşturuyor gibi geliyor. Ne sinir bozucu OGV işe yarıyor bu yüzden bazı seçenekler kümesi ile bu işi yapmak gerekir gibi görünüyor.
Videoyu kdenlive'de oluşturabildiğimi fark ettim ve orada çalışıyor gibi görünüyor. Hala neler olduğunu bilmek istiyorum. kdenlive çok daha iyi bir iş çıkarıyor, ama yine de bazen erken ilerliyor.
ffmpeg
ikili dosyayı çalıştır .