Skip to article frontmatterSkip to article content

5Input sources

Faery supports multiple input sources, each creating different types of streams. Understanding which input creates which stream type is crucial for building effective processing pipelines.

5.1Stream type summary

Input SourceStream TypeFinite?Regular?Use Cases
FilesFiniteEventsStream✅ Yes❌ NoBatch processing, analysis, reproducible results
Event CamerasEventsStream❌ No❌ NoReal-time processing, live monitoring
UDP StreamsEventsStream❌ No❌ NoNetwork integration, distributed processing
Arrays (Python)FiniteEventsStream✅ Yes❌ NoTesting, simulation, synthetic data
Standard InputFiniteEventsStream✅ Yes❌ NoPipeline integration, shell scripting

5.2Input source details

5.2.1📁 Files

Stream Type: FiniteEventsStream (Finite + Irregular)

Supported Formats: AEDAT4, ES, Prophesee RAW, DAT, EVT, CSV

Characteristics:

Example:

# File → Finite → Regular → Video
faery.events_stream_from_file("data.aedat4") \
    .regularize(frequency_hz=30.0) \
    .render(decay="exponential", tau="00:00:00.200000", colormap=faery.colormaps.devon) \
    .to_file("output.mp4")

5.2.2📷 Event Cameras

Stream Type: EventsStream (Infinite + Irregular)

Supported Hardware: DVXplorer, DAVIS346, EVK4, EVK3 HD

Characteristics:

Example:

# Camera → Slice → Finite → Regular → Video
faery.events_stream_from_camera() \
    .time_slice(0 * faery.s, 10 * faery.s) \
    .regularize(frequency_hz=30.0) \
    .render(decay="exponential", tau="00:00:00.200000", colormap=faery.colormaps.starry_night) \
    .to_file("camera_recording.mp4")

5.2.3🌐 UDP Streams

Stream Type: EventsStream (Infinite + Irregular)

Supported Formats: t64_x16_y16_on8, t32_x16_y15_on1

Characteristics:

Example:

# UDP → Process → Stream to another UDP endpoint
faery.events_stream_from_udp(
    dimensions=(640, 480),
    address=("localhost", 7777)
).remove_off_events() \
 .to_udp(("processing-server", 8888))

5.2.4🔢 Arrays (Python)

Stream Type: FiniteEventsStream (Finite + Irregular)

Data Source: NumPy arrays with faery.EVENTS_DTYPE

Characteristics:

Example:

# Array → Direct video generation
events = create_synthetic_events()  # Your function
faery.events_stream_from_array(events, dimensions=(640, 480)) \
    .regularize(frequency_hz=24.0) \
    .render(decay="exponential", tau="00:00:00.100000", colormap=faery.colormaps.batlow) \
    .to_file("synthetic.mp4")

5.2.5📥 Standard Input

Stream Type: FiniteEventsStream (Finite + Irregular)

Supported Format: CSV only

Characteristics:

Example:

# Shell pipeline → Faery processing
cat events.csv | faery input stdin --dimensions 640x480 \
    filter regularize 30.0 \
    filter render exponential "00:00:00.200000" starry_night \
    output file processed.mp4