-
Notifications
You must be signed in to change notification settings - Fork 0
/
video_orchestration_process.txt
121 lines (102 loc) · 3.9 KB
/
video_orchestration_process.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
Video Orchestration Process
==========================
1. System Architecture
---------------------
Two possible configurations:
Configuration 1: master-ver1 (203)
- Device 1 (master-ver1): 192.168.1.203 (runs master + ver1)
- Device 2 (hor1): 192.168.1.201
- Device 3 (ver2): 192.168.1.204
- Device 4 (hor2): 192.168.1.202
Configuration 2: master-hor1 (201)
- Device 1 (master-hor1): 192.168.1.201 (runs master + hor1)
- Device 2 (ver1): 192.168.1.203
- Device 3 (ver2): 192.168.1.204
- Device 4 (hor2): 192.168.1.202
2. Initialization Process
------------------------
a) Master Node:
- Loads video metadata from ontology_map.json
- Starts OSC server on port 7000
- Waits for slave nodes to announce themselves
b) Slave Nodes:
- Initialize with orientation (hor/ver) and node number (1/2)
- Set up fullscreen pygame display
- Create video queue and player thread
- Announce presence to master node
- Start OSC server on port 8001 (horizontal) or 8002 (vertical)
3. Video Organization
--------------------
For each category, videos are organized into:
a) Animated videos (video_type: "animated")
- Distributed evenly between nodes of same orientation
- Play continuously
b) Text videos (video_type: "text")
- Inserted at intervals
- Only one text video plays at a time
- Alternates between horizontal and vertical displays
4. Playlist Creation
-------------------
Master node creates synchronized playlists:
1. Separates videos by type and orientation
2. Shuffles both animated and text videos
3. Distributes animated videos evenly between nodes
4. Inserts text videos at calculated intervals
5. Adds wait slots (None) for synchronization
5. Playback Process
------------------
a) Master Node:
- Sends video commands to slaves
- Manages timing and synchronization
- Ensures text videos don't overlap
- Waits for appropriate duration between videos
b) Slave Nodes:
- Maintain queue of videos to play
- Handle video transitions
- Scale videos to fit screen
- Report completion back to master
6. Synchronization
-----------------
- Text videos are coordinated across all displays
- Wait slots (None) ensure nodes stay synchronized
- Master controls timing based on video durations
- Slaves report status for coordination
7. Error Handling
----------------
- Slaves handle missing videos gracefully
- Master monitors slave connections
- Clean shutdown process for all nodes
- Automatic reconnection handling
8. Video Requirements
--------------------
- Horizontal videos: 1280x768 resolution
- Vertical videos: 768x1280 resolution
- Supported formats: MP4 with H.264 codec
- Each video includes duration metadata
9. Network Communication
-----------------------
- OSC protocol for all communications
- Master to Slave: /play, /stop commands
- Slave to Master: /slave/announce messages
- Automatic IP assignment based on node type
10. Categories and Rotation
-------------------------
- Videos grouped by category in ontology_map.json
- Categories play in sequence
- All animated videos play once per category
- Text videos distributed throughout playback
- System loops through all categories continuously
11. Testing Process
-----------------
a) Initial Setup Test
1. Test network connectivity between all nodes
2. Test video playback on each node individually
3. Test master-slave communication
4. Test synchronized playback
b) Configuration Testing
- Test both possible configurations (master-ver1 and master-hor1)
- Verify all nodes can communicate with master
- Verify correct IP assignments
- Verify proper video orientation on each display
Note: Always test in a controlled environment first before deploying to the exhibition space. Monitor system resources and network stability during extended testing periods.
Note: This system is designed for reliability and synchronization in a museum/exhibition environment where coordinated video playback across multiple displays is required.