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

159 views Asked by At

My program uses Windows Media Foundation WMV/WMA MFTs to encode to ASF format (mux is done by 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).

Same error happens when IWMSyncReader->GetNextSample is used to read audio sample.

A sample broken video is here: https://www.dropbox.com/s/x8uyaqbclq93u5d/big_buck_bunny.wmv?dl=0

Could anyone take a look to check the cause? Thanks

1

There are 1 answers

0
VuVirt On

After examining your wmv file with Windows Media ASF Viewer, I came to the conclusion that it was encoded by Lavf encoder (FFMPEG). Therefore, I installed LAV directshow filters and played the wmv with Graphstudionext. I added the file as a File source async and after that the graph automatically used the LAV splitter. It seems that only LAV splitter is able to parse this 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).