简体   繁体   English

ASF文件不能由GraphEdit呈现,但可以由WMP播放

[英]ASF file can't be rendered by GraphEdit but can be played by WMP

My program uses Windows Media Foundation WMV/WMA MFTs to encode to ASF format (mux is done by ffmpeg). 我的程序使用Windows Media Foundation WMV / WMA MFT编码为ASF格式(多路复用由ffmpeg完成)。 Generated file can be played perfectly by Windows Media Player on Win10 but failed to be rendered by GraphEdit, error code == NS_E_INVALID_DATA (0xC00D002FL). 生成的文件可以在Win10上由Windows Media Player完美播放,但无法由GraphEdit呈现,错误代码== NS_E_INVALID_DATA(0xC00D002FL)。

Same error happens when IWMSyncReader->GetNextSample is used to read audio sample. 当使用IWMSyncReader-> GetNextSample读取音频样本时,也会发生相同的错误。

A sample broken video is here: https://www.dropbox.com/s/x8uyaqbclq93u5d/big_buck_bunny.wmv?dl=0 损坏的视频示例在这里: https : //www.dropbox.com/s/x8uyaqbclq93u5d/big_buck_bunny.wmv?dl=0

Could anyone take a look to check the cause? 有人可以检查一下原因吗? Thanks 谢谢

After examining your wmv file with Windows Media ASF Viewer, I came to the conclusion that it was encoded by Lavf encoder (FFMPEG). 在使用Windows Media ASF Viewer检查了您的wmv文件后,我得出的结论是该文件是由Lavf编码器(FFMPEG)编码的。 Therefore, I installed LAV directshow filters and played the wmv with Graphstudionext . 因此,我安装了LAV DirectShow 过滤器,并使用Graphstudionext播放了wmv。 I added the file as a File source async and after that the graph automatically used the LAV splitter. 我将文件添加为异步文件源,此后该图自动使用了LAV拆分器。 It seems that only LAV splitter is able to parse this wmv. 似乎只有LAV拆分器才能解析此wmv。 In your app you can do the same by adding the file via the File source async filter and let LAV parse it (if installed). 在您的应用中,您可以通过通过文件源异步过滤器添加文件并让LAV对其进行解析(如果已安装)来执行相同的操作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM