FIJI doesn't load certain avis that do load using ij.scifio().datasetIO().open(). AVI_Reader throws ArrayIndexOutOfBounds

I have an external application that processes a greyscale video stream and writes out avi files. The users want to use ImageJ to look at the data.

The videos are not compressed. VLC and MATLAB can read in the generated videos. However, FIJI is temperamental about reading these generated files. Some load using the “import” or “open” menus, but most abort with this message:


so AVI_Reader plugin doesn’t load it.

To fix this, I was developing a loader for the client to use. However, the load-and-display-dataset example from the ImageJ git repository loads the problem videos.

The videos in question have been generated using two methods: the OpenCV avi api and the low level Windows media avi api. Both methods exhibit the same problem using ij.plugin.AVI_READER to import the data.

Is there an existing path within FIJI for using ij.scifio().datasetIO().open() to load the avi? I wasn’t able to find one. Or do I have to change the load-and-display-dataset example into a usable plugin?

TLDR - Built in AVI_Reader plugin fails 95% of the time loading generated AVI files with identical AVI headers. Built in scifio.datasetIO loads 100% of AVI_reader fails. Is the scifio method of loading already available for users in FIJI gui/application, or do I need to write a plugin?

I looked at the headers of the output videos from successful and unsuccessful FIJI sessions and realized there was an error in the header of the videos that FIJI couldn’t read. No need to write a plugin.

Great that you could solve the issue!

Just for the record:

Yes, you can use File › Import › Image… which will use SCIFIO.