我目前在GraphEdit中有一个DirectShow图形,如下所示:
Source(USB WebCam) -> Encoder -> Mux -> File Writer
但是,如果Source丢失正在记录的帧,则编码器将无法补偿该丢失。这意味着如果我已经录制了30秒的视频,并且丢弃了20%的帧(作为示例),则生成的视频将会以24秒的视频结束。
这意味着视频中的所有内容都会加速1.2倍,这绝对是不可接受的,我用VLC播放器和WMP重播视频 - 结果相同。就好像编码器(?)或图中的其他滤波器并不关心丢帧。
我用来重现此问题的编码器是WMV9和第三方H264过滤器。
即使在录制过程中CPU使用率非常高,我仍然需要能够处理和补偿丢帧,以便视频的时间轴不会突然停止。那里有一个过滤器来处理这个问题,还是我需要在图表中自己做一些事情?这里到底发生了什么?
非常感谢。
修改
我尝试使用Asf Writer
过滤器构建更简单的图形,并使用音频源,如附图所示。
然而,因为我的捕获源(相机)丢失帧,结束视频最终会出现大的同步问题,这意味着音频长度比视频长,并且不同步(而不是补偿)我本来希望看到视频捕捉直到音频。
答案 0 :(得分:3)
如果您最终得到一个较小持续时间的文件(按丢帧长度),问题可能是管道中某个过滤器中的错误。
可能导致此行为的潜在问题分为两类: