0
我试图根据DirectShow SDK中的pushsource示例创建DirectShow源过滤器。我的源过滤器本质上输出一组位图,每个位图通常会持续600毫秒左右。我已经设置了一个过滤器图形,它使用AsyncReader和一个Wave Parser作为音频,我的新过滤器用于推送视频(过滤器是一个CSourceStream,并且我在FillBuffer函数中填充框架)。这些都连接到WMASFWriter输出WMV。使用WMASFWriter生成在每个关键帧间隔处暂停的视频
我发现的是,在相应的关键帧间隔视频暂停一两秒钟。这在高清分辨率下似乎更糟糕,认为这可能是一个红鲱鱼。什么样的事情可能造成这种情况?它与多少次我允许FillBuffer被调用有关(我的帧速率是30fps,所以我最终将重复几帧相同的位图)?
我的确在使用CBR配置文件 - 目前比特率仅为100kbps。我想这对1080p来说可能很低(特别是在查看Windows Live Movie Maker中的配置文件后)?经过一些初步实验后,将比特率提高到1000kbps似乎对这个问题有很大帮助,所以我怀疑我需要找到一个运行良好的配置。 – Andrew 2012-01-31 12:26:54
所以就是这样,用极低比特率CBR配置文件进行编码,编码器无法进一步降低质量,而是开始丢帧。 – 2012-01-31 12:42:01
是的,我现在正在调查我的个人资料设置。你会为CBR配置文件建议什么样的比特率? – Andrew 2012-01-31 12:48:51