Detailed information about your captured high speed video

From edgertronic high speed video camera
Revision as of 07:34, 24 August 2019 by Sanjay (talk | contribs) (Metadata)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Metadata

Each time a captured video is saved, an associated file, called the metadata file, is also saved, using the same filename but with the extension .txt. The metadata file contains all available captured video related information. Other information, such as the lens used, the lens settings, a user assigned experiment identifier, and any other text information can be added by the user in the Notes field. The Notes field can be viewed or modified by clicking on the wrench in the button box, then selecting the Overlay tab. If you overlay the note on each video frame, the note may be truncated, depending on length, but the entire note (up to 128 characters) will be included in the metadata file.

Example medatadata file

Below is the metadata file for the three martini lunch video created for the introduction of the SC2 model edgertronic camera.

Camera time:	Wed Dec 14 05:04:44 2016	
Model:	SC1 Monochrome 8 GB	
Sensitivity:	6400	ISO
Shutter:	1/500	Seconds
Frame Rate:	30	Frames/Second
Horizontal:	1280	Pixels
Vertical:	1024	Pixels
Sub-sampling:	Off	sub-sample
Duration:	4	Seconds
Pre-trigger:	50	percent
Overclock:	0	level
Extended Dynamic Range:	0	level
Genlock:	Off	genlock
Force monochrome:	Off	Sensor behaves normally
Multishot Buffers:	3	buffers
External trigger debounce:	On	5 ms debounce delay after external trigger falling edge
Review before save:	On	enable review before save
Notes:	
Overlay notes:	Off	disabled
Overlay logo:	Off	disabled
Overlay settings:	Off	disabled
Overlay frame number:	On	enabled
Active pipeline:	H264HIGH:pipelines_factory.txt	configuration
Pipeline description:	H.264 high encode quality	 

Multishot buffer:	1	number
Frame count:	120	frames
Pre-trigger frames:	60	frames
Trigger time:	1481691878	(sec since 1970)
Trigger delay:	0.019473857	sec (time from trigger input to start of triggered frame)
First saved frame:	-1	where frame zero is the trigger frame
Last saved frame:	1	where frame zero is the trigger frame
Genlock locked:	NA	

DACVREFADC:	0xb3	
FPGA temp:	32	C
Sensor temp:	29	C
Time since dark frame:	9 seconds
Time since power on:	14 hours, 21 minutes	

Model number:	0x0001	
Serial number:	0x013A	
Hardware revision:	0x0006	
Hardware configuration:	0x1FF0001	
Build date:	20141219	(YYYYMMDD)
IR filter:	True	IR filter is installed
Sensor type:	Monochrome	sensor
DDR3 memory size:	8	GB
Ethernet MAC address:	00:1B:C5:09:61:3A	
FPGA version:	88	
Software build date:	20161212083243	(YYYYMMDDhhmmss)
Software version:	v2.2.1rc2	release

Metadata fields

Host CAMAPI supports a method to fetch a metadata file from the camera and parse the file contents into a dictionary. The table below lists both the metadata file and the Host CAMAPI dictionary key, plus a description.

Metadata file
row title
Host CAMAPI
dictionary key
Description
Camera time camera_time Human readable time when metadata file was created. Not the same as the trigger time.
Model model_string Human readable camera model description
Sensitivity iso ISO sensitivity.
Shutter 1 /exposure Shutter speed (1/exposure time) of each frame.
Frame Rate frame_rate Frames per second capture rate.
Horizontal horizontal Horizontal resolution in pixels.
Vertical vertical Vertical resolution in pixels.
Sub-sampling subsample Skips every other pixel and and every other line when the resolution is 1/4 or smaller of the maximum resolution. SC1 only.
Duration duration Captured video duration, including pre and post trigger times. Trimming the video during save or using CAMAPI selective_save() does not effect the capture duration.
Pre-trigger pretrigger Percentage of the saved video that occurred before the trigger event. Trimming the video during save or using CAMAPI selective_save() does not effect the pre-trigger capture percentage, nor does triggering before the pretrigger buffer has filled.
Overclock overclock A selection of overclock amounts from Off (0 value) being operating within the CMOS sensor's documented capabilities, and clock rate increasing A (1), B (2), C (3), and D (4) for higher levels of overclocking, ranging approximately 10% to 40% faster. SC1 only.
Extended Dynamic Range edr A non-linear transfer function is used to allow a greater dynamic range of luminosity to fit in the same number of luminance data bits. Off (0), increasing A (1), B (2), C (3), and D (4) for larger non-linear transfer function curve. SC1 only.
Genlock genlock Multi-camera interconnect setting. Off, Master, Slave, or External.
Force monochrome force_monochrome For color camera, can be set to On to only save captured videos using the lumanince value, otherwise set to Off.
Multishot Buffers multishot_count Maximum number of videos that can be captured before the captured data is either saved or discarded.
External trigger debounce trigger_debounce
Notes notes User supplied text string.
Overlay notes overlay_notes
Overlay logo overlay_logo
Overlay settings overlay_settings
Overlay frame number overlay_frame_number
Active pipeline pipeline Section and filename for the GStreamer pipelines used for live preview and video save.
Pipeline description pipeline_description Description string for the active pipeline.
Multishot buffer multishot_buffer Capture index when multishot count is greater than one, zero otherwise.
Frame count captured_frames The number of captured frames. This is typically (frame_rate * duration), but if you trigger before the pre-trigger buffer is full, then the frame count will be less. Trimming the video during save or using CAMAPI selective_save() does not effect the number of frames captured, just the number of frames saved in the video file.
Pre-trigger frames pretrigger_frames Number of frames captured before frame zero, the trigger frame. This is typically (frame_rate * duration * pre_trigger), if you trigger before the pre-trigger buffer is full, then the pre-trigger frame count will be less. Trimming the video during save or using CAMAPI selective_save() does not effect the number of captured pre-trigger frames, but may effect the number of pre-trigger frames saved in the video file. If you have enabled frame number overlay, then frames with a negative number indicate the frame occurred before the trigger event.
Trigger time trigger_time Time in seconds since 1970 (the epoch) when the trigger occurred. The value is intended to assist in associating the captured video with other captured event data. The value will be off a few seconds depending if you enabled NTP, how the clocks on the other captured devices are set, etc.
Trigger delay trigger_to_exposure_delay Time, in seconds, from trigger event to start of exposure on the triggered frame.
First saved frame first_saved_frame Captured frame number of the first frame in the video file. Frame 0 is the trigger frame, with pre-trigger frames having negative numbers. This value can be effected by trimming the video during save or using CAMAPI selective_save().
Last saved frame last_saved_frame Captured frame number of the last frame in the video file. Frame 0 is the trigger frame, with pre-trigger frames having negative numbers. This value can be effected by trimming the video during save or using CAMAPI selective_save().
Genlock locked genlocked_locked NA if genlock is not set to slave mode. Other set to True if genlock was locked for entire capture duration otherwise False.
DACVREFADC dacvrefadc SC1 only.
FPGA temp fpga_temp
Sensor temp is_temp
DDR3 temp ddr3_temp Optional, some cameras do not have access to the DDR3 temperature
Time since dark frame time_since_dark_frame Human readable text containing the approximate elasped time since the last drark frame was taken.
Time since power on uptime Human readable text containing the approximate elasped time since the camera was powered on.
Model number model_number Set to 0x0001 for model SC1, 0x0002 for models SC2/SC2+, and 0x0003 for model SC2X.
Serial number serial_number If you have more than one edgertronic camera, you can use the last 3 hexadecimal digits of the ethernet MAC address, which is also the camera's serial number, to determine which video was captured by which camera.
Hardware revision hardware_revision Version of the printed circuit board in the camera.
Hardware configuration hardware_configuration Very goofy number used by nerdy engineers. Normal people tend to use the IR filter, sensor type, and other human readable values instead.
Build date build_date The date your glorious camera was assembled.
IR filter ir_filter_installed True if the IR filter is installed, False otherwise.
Sensor type sensor_type Color or Monochrome
DDR3 memory size memory_size Number, in gigabytes, of the DDR3 memory used to hold captured videos.
Ethernet MAC address ethernet_mac_address Factory assigned ethernet MAC address.
FPGA version fpga_verson Code version loaded into the FPGA.
Software build date software_build_date Date, in YYYYMMDDhhmmss ordering, when the software in your camera was built.
Software version software_version Somewhat human readable text string describing the version of software running in your camera.

Metadata file format

The file format is designed to be both human readable and computer readable. All line that start with a pound sign or hash symbol (#) are ignored. All other lines should have three columns which are divided by tab characters, meaning there are two tabs in each line and the line ends with a newline character. The first column is the field name and ends in a colon character. The next column is the value. The third field is most often documents the value's units (such as seconds or pixels).

Software version details

Version 2.2.0 and older

The duration, genlock locked and frame count values were based on the number of frames saved in the video file. Specifically, these value could change when the video was trimmed during save (meaning CAMAPI save_stop()was called).

Version 2.2.1 and newer

The duration, genlock locked and frame count values are based on what was captured. Two new fields, first saved frame and last saved frame indicate which of the captured frames were saved in the video file. Only first saved frame and last saved frame are effected by trim (e.g. CAMAPI save_stop()) and selective save (e.g. CAMAPI selective_save()).