我使用ubuntu 12.10上的recordmydesktop进行了一系列截屏。输出是一个ogv文件。当我使用默认的电影播放器(图腾)观看ogv文件时,它看起来不错-音频和视频是同步的。当它被我或youtube转码时,音频和视频不同步。好像我在叙述时跳过了一两张幻灯片。
更新资料
我怀疑问题更恰当地描述为在转码期间丢弃重复的帧。在鼠标移动的地方转换视频似乎正常。但是,当我在幻灯片中聊天时,那些重复的帧会丢失。
我看到了,但这不是我的情况(试图从ogv->任何东西开始)/superuser/436187/ffmpeg-convert-video-w-dropped-frames-out-of-sync
AVI文件似乎可以正确翻译!我认为这对某人将是一个很大的暗示。我仍然想找出潜在的问题。我正在测试以前的视频到AVI的转换,但这需要一段时间,因为我必须检查每个转换。
例子
这是来自gtk-recordmydesktop的原始OGV文件:http ://dl.dropbox.com/u/64693533/sync_test/sync_test1.ogv
视频以幻灯片的形式播放10秒钟,然后再播放5秒钟的3张幻灯片。每次滑动幻灯片时,我也会同时点击麦克风(10s,15s,20s,25s)。
以下是完成的一些转换(每个显示都是它自己的视频计时问题):
http://dl.dropbox.com/u/64693533/sync_test/sync_test1.mp4
- 该幻灯片显示了第一帧中的第一张幻灯片,但很快就越过了它
- 这是使用股票ffmpeg完成的
http://dl.dropbox.com/u/64693533/sync_test/sync_test1.ffmpeg-static.mp4
- 这个非常接近-由于某种原因,它在13岁时决定前进
- 这是使用几天前使用ffmpeg的静态构建完成的
这是在youtube上-您可以看到它在13秒钟左右提前(从幻灯片1->幻灯片2):
这证明OGV文件可以正常工作:
ffmpeg翻译
使用ffmpeg或avconv,我似乎得到了与youtube类似的效果(转换似乎发生得很早,但不一定同时发生)。
这是我使用的命令(带有ffmpeg的最新静态版本)和输出:
$〜/ ffmpeg / ffmpeg -i JSP.ogv JSP.mp4 ffmpeg版本N-50025-gb8bb661版权所有(c)2000-2013 FFmpeg开发人员 建于2013年2月17日05:23:03与gcc 4.6(Debian 4.6.3-1) 配置:--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-gray --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]未实现同一流的多个fisbone。将FFmpeg版本更新为Git的最新版本。如果问题仍然存在,则表明您的文件具有尚未实现的功能。 [ogg @ 0x34d4640]流0的标头解析失败 [ogg @ 0x34d4640]损坏的文件,关键帧未正确标记。 从“ JSP.ogv”输入#0,ogg: 持续时间:00:12:49.67,开始:0.000000,比特率:224 kb / s 流#0:0:数据:无 数据流#0:1:视频:theora,yuv420p,1600x880 [SAR 1:1 DAR 20:11],15 fps,15 tbr,15 tbn,15 tbc 元数据: RECORDMYDESKTOP:0.3.8.1 流#0:2:音频:涡流,22050 Hz,单声道,fltp,89 kb / s [libx264 @ 0x369c5e0]使用SAR = 1/1 [libx264 @ 0x369c5e0]使用cpu功能:MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX [libx264 @ 0x369c5e0]配置文件高,级别4.0 [libx264 @ 0x369c5e0] 264-核心129 r2230 1cffe9f-H.264 / MPEG-4 AVC编解码器-Copyleft 2003-2012-http://www.videolan.org/x264.html-选项:cabac = 1 ref = 3解块= 1:0:0分析= 0x3:0x113 me =十六进制subme = 7 psy = 1 psy_rd = 1.00:0.00 mixed_ref = 1 me_range = 16 chroma_me = 1格= 1 = 1 8x8dct = 1 cqm = 0死区= 21,11 fast_pskip = 1 chroma_qp_offset = -2线程= 6 lookahead_threads = 1 sliced_threads = 0 nr = 0抽取= 1隔行扫描= 0 bluray_compat = 0 constrained_intra = 0 bframes = 3 b_pyramid = 2 b_adapt = 1 b_bias = 0直接= 1 weightb = 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 输出#0,mp4,到'JSP.mp4': 元数据: 编码器:Lavf54.63.100 流#0:0:视频:h264([33] [0] [0] [0] / 0x0021),yuv420p,1600x880 [SAR 1:1 DAR 20:11],q = -1--1,15360 tbn ,15吨 元数据: RECORDMYDESKTOP:0.3.8.1 流#0:1:音频:aac([64] [0] [0] [0] / 0x0040),22050 Hz,单声道,s16,128 kb / s 流映射: 流#0:1->#0:0(theora-> libx264) 流#0:2->#0:1(vorbis-> libvo_aacenc) 按[q]停止,按[?]寻求帮助 [ogg @ 0x34d4640]损坏的文件,未正确标记非关键帧。 最后一条消息重复了2次 损坏的文件,未正确标记的非关键帧= 00:00:08.37比特率= 28.7kbits / s dup = 66 drop = 0 文件损坏,关键帧未正确标记。时间= 00:00:51.01比特率= 125.3kbits / s dup = 675 drop = 0 文件损坏,关键帧未正确标记。时间= 00:00:55.05比特率= 140.2kbits / s dup = 782丢弃= 0 文件损坏,关键帧未正确标记。时间= 00:00:59.60比特率= 140.5kbits / s dup = 836 drop = 0 [ogg @ 0x34d4640]损坏的文件,关键帧未正确标记。 文件损坏,关键帧未正确标记。时间= 00:01:08.00比特率= 143.0kbits / s dup = 900 drop = 0 文件损坏,关键帧未正确标记。时间= 00:01:11.86比特率= 141.6kbits / s dup = 910 drop = 0
...重复多次...
文件损坏,关键帧未正确标记。时间= 00:12:47.62比特率= 153.0kbits / s dup = 9087丢弃= 0 帧= 11521 fps = 87 q = -1.0 Lsize = 14849kB时间= 00:12:49.48比特率= 158.1kbits / s dup = 9087 drop = 0 视频:2401kB音频:12024kB字幕:0全局标头:0kB混合开销2.938094% [libx264 @ 0x369c5e0]帧I:49平均QP:16.05大小:29658 [libx264 @ 0x369c5e0]帧P:2912平均QP:9.88大小:114 [libx264 @ 0x369c5e0]帧B:8560平均QP:12.76大小:78 [libx264 @ 0x369c5e0]连续B帧: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%0.0%跳过:99.9% [libx264 @ 0x369c5e0] MB B I16..4:0.0%0.0%0.0%B16..8:0.3%0.0%0.0%直接:0.0%跳过:99.7%L0:65.3%L1:34.6%BI:0.1% [libx264 @ 0x369c5e0] 8x8转换内部:0.5%内部:15.8% [libx264 @ 0x369c5e0]编码为y,uvDC,uvAC内部:6.4%0.1%0.1%内部: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]加权P帧: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
该视频仍会提前播放,但时间有所不同。听起来gtk-recordmydesktop正在生成“损坏的文件”。令人讨厌的是,OGV确实可以正常工作,因此我似乎应该可以通过一些选项来使它工作。
我发现我可以在kdenlive中渲染视频,并且似乎可以在其中工作。我仍然想知道发生了什么。 kdenlive的工作要好得多,但有时仍会提前。