您的位置:首页 > 其它

AVI Mux 音频视频不同步 建议使用MP4 ASF

2007-10-23 22:04 302 查看
问:

前些天一直在查为什么会产生音视频不同步的现像,下面是查证的数据.  
   
  都是使用AVI   Mux   Filter生成的avi文件。  
   
  用GSpot   v2.52查看到的文件信息  
      第1个文件(音视频异步):文件长度正确                
                            OpenDML   (AVI   v2.0)  
       
      第2个文件(音视频同步):OpenDML   (AVI   v2.0)  
                            Interleave:   34   ms   (1.0   v.frames)  
                            Audio   frames:   Split   across   interleaves  
                            文件长度正确                
  ----------------------------------------------------------------  
  Graph图:  
      第1个文件  
      file   source   ->   mpeg2   demux   ->   mpeg2   video   decoder   ->   divx   codec   ->   avi   mux   ->   file   write  
                                                            ->   ac3filter   ->   WMAudio   encoder   dmo   ->   (同上)  
   
      第2个文件  
  file   source   ->   mpeg2   demux   ->   mpeg   2   video   decoder   ->   divx   codec   ->   avi   mux   ->   file   write    
                                                        ->   ac2   filter   ->   MP3   Layer                         ->   (同上)  
   
   
  问题1:为什么使用不同的audio   encoder,会产生不同文件信息?(如上述)  
  问题2:通过使用IConfigAviMux接口的SetOutputCompatibilityIndex(TRUE)仍不见文件信息有所改变(文件大小除外)。  
  问题3:使用IConfigInterleaving接口的put_mode设置为INTERLEAVE_NONE也不见文件信息有所改(文件大小除外)。  
  问题4:在生成两个文件时,只是改变了audio   encoder,在第2个文件中的Interleave   34   ms   信息是根据什么产生的呢?  
   
  想了好些天还是没想出原因来:(  

 

答:

avi   mux这个filter的确有很多问题,不只你,很多人都碰到过。因为我很少写avi文件,所以这方面的经验也甚少。我的建议,尽量用asf文件格式去代替avi。asf与avi一样,也是一个文件容器,可以包含任意格式的音视频数据。但asf比avi设计得更完善,而且兼顾了网络流媒体的应用要求。  
   
  DirectShow自带了一个ASF   Writer   filter,但这个filter默认情况下会将输入数据使用Windows   Media编码器进行编码。不大好用!你可以使用Windows   Media   Format   SDK自己开发一个ASF   Writer。  
   
  顺便打一下广告^o^  
  我的新书《Windows   Media编程导向》马上就要出版了。这本书带了两个Filter:ASF   Writer   Filter和ASF   Mux   Filter——前者将输入的音视频数据使用Windows   Media编码器进行编码后,生成Wmv文件;后者将输入的音视频数据直接按ASF格式打包成ASF文件,适合搂主的应用(不过输入到ASF   Mux的Sample都要求打好时间戳!)。

再答:

还有 MP4 Filter http://www.gdcl.co.uk
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息