Supported file formats

  • NB: Document concerns OpenViBE 1.3.0 (doc updated 11.Jan.2017).

Supported file formats

OpenViBE has boxes to read and write a few different file formats that are commonly used with EEG data. The formats may be useful in exchanging datasets and results between OpenViBE and other software.


Format Read Write Component status
BCI 2000 Limited No Unknown
BCI Competition 3b Limited No Unknown
BrainAmp (VHDR) Yes Yes Should work
CSV Yes Yes Should work (3)
EDF No Yes Unknown
GDF Yes Yes Should work (2,4)
Matlab & R Indirectly Indirectly Should work (1)
Muse Yes No Source only, untested (5)
OpenViBE (.ov) Yes Yes Good

We are currently not planning to implement support for other file formats, but contributions are always welcome.

If you have a GDF or BrainAmp (VHDR) file that works with other systems but not with OpenViBE, send it to us. E.g. post a link to the file on the forum or contact us directly.

Elementary conversion templates are bundled with OpenViBE to convert between some of the above formats.


When possible, its recommended to always use the .ov file format with OpenViBE. Its handled by the Generic Stream Reader and Generic Stream Writer boxes. Only this format supports all the possible stream types in OpenViBE. The format also guarantees that the timing and the data saved and loaded is bitwise equal to what is actually carried in the stream.


  • Aside the .ov format, the GDF and BrainAmp formats are probably the most widely used by the OpenViBE users, and CSV for debugging.
  • (1) OpenViBE .ov files can be converted to Matlab’s .mat using a few scripts. A classic way to interchange data between OpenViBE and actual data-analysis platforms remains the CSV file format. Here’s a forum post about ideas how to get the data to the WEKAs .ARFF format.
  • (2) There have been user reports that GDF and EDF support in OV may have problems with stimulations. We’re interested to receive files that exhibit this problem in order to address it.
  • (3) Importing from the CSV format into OpenViBE may have issues with the time precision of samples, unless the timing in the file is ignored and the samples are treated as a consecutive block starting at time 0 (see the box documentation). Also, the CSV files of signal data in OpenViBE must have have one extra column on the first line for specifying the sampling rate. This makes it a little more bothersome to exchange data between OpenViBE and other systems using CSV. However, CSV remains one of the most typical exchange formats between systems.
  • (4) GDF format used by OV has a stimulation precision of one sample, whereas OpenViBE stimulations have 32:32 fixed point precision. Hence converting to GDF may lose some event timing accuracy, the precision dictated by the associated signal sampling rate. Note also that OV stimulations are 64bit, and some GDF readers may interpret markers with ids > 32768 as stimulus offsets (for example biosig 3.0.5 bundled with EEGLab) and print warnings that onset/offset counts do not match. OV does not have this onset/offset convention in the stimulation id coding, and does not try to modify the identifier codes when reading or writing GDF files.
  • (5) There is an untested community contribution for the Muse file format, but to use that you need to recompile OpenViBE + provide google protocol buffers dependency (Protobuf). You can find the code in the git branch wip-contrib-muse-reader. More info in this forum post.
This entry was posted in OpenViBE features. Bookmark the permalink.