A groundbreaking educational video streaming platform built in 2001-2004, predating YouTube (2005) and Netflix streaming (2007)
Collaborative Content Contribution at Specific Video Timestamps
The VoD system pioneered a feature that no modern streaming platform has successfully implemented to this day:
Both teachers AND students can add rich supplementary content (HTML pages, documents, PDFs, links, multimedia) at specific video timestamps, and this content is shared with all other students watching the same lecture.
- Teacher Creates Foundation: Uses WYSIWYG editor to add primary learning materials synchronized to video timeline
- Students Contribute: While watching, students can:
- Pause at any point
- Drag-and-drop files (documents, links, resources)
- Content is automatically timestamped and saved
- All other students see these contributions as markers on the timeline
- Collective Knowledge Building: The lecture becomes a living, evolving document enriched by the entire learning community
Technical Implementation (VoDPlayer/Drag.cpp):
- Drag-and-drop interface for adding content
- Automatic frame-accurate timestamp synchronization
- Persistent storage in user data files (
.dat) - Visual timeline markers (Blue: instructor, Green: student contributions)
- Content appears in synchronized HTML pane when timestamp is reached
YouTube today (2024) only has:
- Text-only comments with timestamps
- No file attachments
- No synchronized rich content display
- No collaborative content building
VoD in 2004 had:
- Full document sharing at timestamps
- Rich HTML content display
- Collaborative knowledge construction
- Persistent, structured content organization
This is true collaborative learning - not just consumption, but collective contribution to educational resources.
This Master's thesis project represents one of the earliest educational video streaming systems with pedagogical enhancements, developed between 2001-2004 at Eastern Mediterranean University - significantly before:
- YouTube (launched February 2005)
- Netflix streaming (started 2007)
- Modern LMS video integration systems
- HTML5 video standards
- Any platform with collaborative timestamp-based content contribution
D.Z. Deniz and C. Karaca, "Pedagogically enhanced video-on-demand based learning system," 4th IEEE International Conference on Advanced Learning Technologies, Joensuu, Finland, 2004, pp. 415-420. DOI: 10.1109/ICALT.2004.1358207
Full Thesis: Tez.pdf (Turkish)
PeVoD (Pedagogically Enhanced Video on Demand) is a comprehensive distance learning platform featuring:
- Collaborative Content Contribution - Both teachers and students add rich content at video timestamps (still unmatched by YouTube/modern platforms!)
- Real-time video streaming with custom protocols (TCP/UDP/RDUP)
- Teacher control interface with WYSIWYG HTML content editor
- Student player application with drag-and-drop content addition
- Integrated chat system for real-time collaboration
- Discussion forums and threaded conversations (phpBB-based)
- Web-based management interface (PHP/MySQL)
- MySQL backend for user and content management
- Synchronized HTML content - learning materials appear at specific video timestamps
- NTFS Hidden Streams - secure video storage using alternate data streams
- Shared learning repository - Student contributions visible to all learners
VoD System Architecture
├── Client Side
│ ├── VoD Player (Student Interface)
│ │ └── Basic video playback with synchronized content
│ ├── VoD Player Plus (VoDPP)
│ │ └── Enhanced player with integrated chat
│ └── VoD Project Editor (Teacher Interface)
│ ├── WYSIWYG DHTML Editor
│ ├── Timeline Synchronization
│ └── FTP Publishing
│
└── Server Side
├── Mediation Server (Web Interface)
│ ├── PHP Authentication System
│ ├── MySQL User Management
│ ├── phpMyAdmin (Database Admin)
│ ├── phpBB Forums
│ └── Content Routing
│
└── Content Servers (Distributed)
├── TCP Streaming Server
├── UDP Streaming Server (RDUP)
├── FTP Server
└── Video Library Storage
- Frontend: Windows MFC, DirectX for video rendering
- Backend: Custom C++ TCP/UDP/RDUP servers
- Database: MySQL 4.x/5.x
- Web Interface: PHP, JavaScript, CSS
- Protocols: Custom RDUP (Reliable UDP), TCP, UDP, FTP
- Video Storage: NTFS Hidden Streams (for privacy)
- Network: Distributed server architecture
The main teacher application for creating and managing video lectures with synchronized content.
Key Components:
-
WYSIWYG DHTML Editor (
Design.cpp,Design.h)- Based on MFC's
CHtmlEditView - Full HTML editing with formatting toolbar
- Commands: Bold, Italic, Underline, Font, Hyperlink, Image, Lists, Alignment
- Real-time preview capability
- Based on MFC's
-
HTML Viewer (
Html.cpp,Html.h)- Based on
CHtmlViewfor previewing content - Synchronized with video timeline
- Based on
-
Source Editor (
Source.cpp,Source.h)- Raw HTML editing via
CEditView - Three-way editing: Design view, Preview, and Source code
- Raw HTML editing via
-
Project Tree Structure (
TabProject.h,Dialogs.h)- Hierarchical organization: Faculty → Department → Course → Chapter → Project
- Dialog-based management for each level
-
FTP Publishing (
Ftpd.cpp,FtpDown.cpp,NewFtp.cpp)- Deploy projects to content servers
- Automated synchronization
-
Authentication (
Login.h)- Teacher login system
- MySQL-based user management
Technologies: MFC, DirectX, MySQL Client, FTP, CHtmlEditView
Standalone video player for students with collaborative content contribution capabilities.
Revolutionary Features:
- Drag-and-drop content contribution (
Drag.cpp,Drag.h)- Students pause video and drop files (documents, links, PDFs)
- Automatically timestamped to current frame
- Saved to shared project repository
- Visible to all other students as timeline markers
- Up to 400 contributions per video!
- Visual timeline markers:
- Blue: Instructor-added official content
- Green: Student-contributed supplementary materials
Core Playback Features:
- DirectX-based video rendering
- VCR controls (play, pause, stop, seek)
- Progress bar with buffering indicator
- Synchronized HTML content display in split-pane view
- Bookmark management with persistent storage
- TCP/UDP/RDUP protocol support
- Frame-accurate content synchronization
Technologies: MFC, DirectX, Windows Sockets, CHtmlView, OLE Drag-Drop
Extended student player with integrated real-time chat capabilities.
Additional Features:
- All features from VoDPlayer
- Real-time chat panel (
Video.cppcontains chat references) - Multi-user collaboration
- Online presence indicators
- Enhanced UI for collaboration
Technologies: Same as VoDPlayer + Chat integration
Dedicated TCP-based video streaming server.
Responsibilities:
- TCP socket-based video delivery
- Connection management
- Bandwidth management
- Client authentication
- Session tracking
Technologies: MFC, Windows Sockets (TCP)
UDP and RDUP (Reliable UDP) streaming server implementation.
Responsibilities:
- UDP-based video streaming
- RDUP protocol implementation:
- 32-bit CRC error checking
- Packet recovery mechanism
- Connection-oriented over UDP
- 9.14 Mbps throughput (25% faster than TCP in tests)
- Low-latency delivery
- Packet loss handling
Technologies: MFC, Windows Sockets (UDP), Custom RDUP Protocol
Complete web frontend for system administration and user interaction.
Structure:
vodWeb/
├── Admin/ # phpMyAdmin - MySQL database management
├── forum/ # phpBB - Discussion forum system
├── thread/ # Custom discussion threads
├── adm/ # Administrative tools
├── cgi-bin/ # CGI scripts
├── images/ # Web assets
├── libs/ # PHP libraries
├── projects/ # Published video projects
└── vod/ # VoD-specific web files
Key Files:
admin.php- Administrative dashboardlogin.php- User authenticationchat.php- Web-based chat interfacelist.php- Content listingmenu.php- Navigation systempanel*.php- Control panelsvod.js.php- JavaScript functionalityconfig.cgi- Configuration managementhttpd.conf- Apache web server configurationvod.sql,vod_web.sql- Database schemas
Technologies: PHP, MySQL, JavaScript, phpBB, phpMyAdmin, Apache
vod.sql- Main VoD database schemavod_web.sql- Web interface database schemavodWeb/Admin/scripts/create_tables.sql- Table creation scripts
Tez.pdf- Full Master's thesis (Turkish, 2004)tezPres.pdf- Thesis presentation slides- IEEE Paper - Published at ICALT 2004 conference
Custom-designed streaming protocol specifically for video delivery:
- Connection-oriented unlike standard UDP
- 32-bit CRC error checking
- Packet recovery mechanism
- 9.14 Mbps throughput (25% faster than TCP in testing)
- Designed for low bit-error-rate networks
Performance Results (10 Mbps ATM Network):
| Protocol | Speed (Mbps) | Overhead |
|---|---|---|
| FTP | 7.33 | Highest |
| TCP | 7.69 | High |
| UDP | 8.63 | Low |
| RDUP | 9.14 | Optimized |
A breakthrough moment (literally conceived in the bathroom!):
The Problem: AVI files couldn't start playing until fully downloaded because header information was at the end.
The Solution:
1. Allocate full file size on client
2. Download last ~2KB of video first (contains header)
3. Then stream from beginning
4. Result: Videos play while still downloading!
This was critical for enabling true streaming of AVI files in 2001 when:
- No HTTP progressive download
- No modern streaming codecs
- Limited bandwidth (dial-up era)
3. NTFS Hidden Streams Security
Videos were stored in NTFS Alternate Data Streams for privacy:
- Hidden from normal file browsing
- Protected from unauthorized copying
- Innovative use of NTFS features for DRM-like protection
- Cutting-edge technique for 2001!
Mathematical model for determining optimal playback start time:
When to start playback:
- If download speed > playback speed: Start immediately
- If download speed < playback speed: Buffer until safe threshold
- Dynamic adjustment based on network conditions
Unlike simple video players, PeVoD provided true collaborative knowledge building:
- Teacher-created content - Instructors use WYSIWYG editor to add primary materials
- Student contributions - Learners add supplementary resources at any timestamp
- Shared knowledge base - All student-added content visible to other learners
- Drag-and-drop simplicity - Pause, drop file, automatically timestamped
- Persistent storage - Contributions saved and synchronized across sessions
- Visual timeline markers:
- Blue markers: Instructor-added official content
- Green markers: Student-contributed supplementary materials
// Student drops a file onto the player
void CDrag::OnDropFiles(HDROP hDropInfo) {
// Get dropped file path
DragQueryFile(hDropInfo, 0, file, sizeof(file));
// Copy file to project directory
CopyFile(oldfile, newfile, FALSE);
// Get current video frame position
int currentFrame = pVideo->m_Slider.GetPos();
// Add to shared content database
AddPage(currentFrame, newfile);
// Save to persistent storage (visible to all students)
uPref.Write(&uPageDat, sizeof(uPAGESDAT));
// Refresh timeline markers for all viewers
pVideo->Refresh();
}typedef struct _uPAGES {
int Frame; // Video timestamp (frame number)
int PageID; // Unique content identifier
TCHAR PageName[MAX_PATH]; // File path/URL
int PageSeenBefore; // Tracking flag
} uPAGES;
// Up to 400 collaborative contributions per video!
typedef struct _uPAGESDAT {
int PageCount;
uPAGES Pages[400];
} uPAGESDAT;- Synchronized HTML display - Rich content appears automatically at timestamps
- Discussion integration - Per-video threaded forums (phpBB)
- Real-time chat - Students online simultaneously can discuss content
- Bookmark management - Personal notes and navigation aids
- Content organization - Faculty → Department → Course → Chapter hierarchy
Modern platforms like YouTube, Coursera, edX, Udemy still don't allow:
- Students to attach documents/files at specific video timestamps
- Rich HTML content sharing at the timestamp level
- Collaborative content building visible to all learners
- Structured supplementary material organization per timestamp
VoD achieved this in 2004 - making it a pioneer in collaborative educational video that modern platforms have yet to match!
Built into the VoD Project Editor for teachers to create synchronized content:
Based on MFC's CHtmlEditView (VoD/Design.cpp, VoD/Design.h):
- Full What-You-See-Is-What-You-Get editing
- Rich formatting toolbar with buttons for:
- Text formatting: Bold, Italic, Underline
- Font selection and sizing
- Text alignment: Left, Center, Right
- Lists: Ordered and Unordered
- Indentation controls
- Hyperlink insertion
- Image embedding
- Three editing modes:
- Design View - WYSIWYG visual editing
- Preview View - See exactly how students will see it
- Source View - Raw HTML code editing
- Timeline integration - Content automatically synchronized to video timestamps
- Auto-save functionality - Changes preserved automatically
- Template system - Reusable content templates
Technical Implementation:
// Based on MFC's CHtmlEditView
class CDesign : public CHtmlEditView
{
CToolBar m_wndFormatBar; // Formatting toolbar
// DHTML editing command map
BEGIN_DHTMLEDITING_CMDMAP(CDesign)
DHTMLEDITING_CMD_ENTRY(ID_BOLD, IDM_BOLD)
DHTMLEDITING_CMD_ENTRY(ID_ITALIC, IDM_ITALIC)
DHTMLEDITING_CMD_ENTRY(ID_UNDERLINE, IDM_UNDERLINE)
DHTMLEDITING_CMD_ENTRY(ID_HYPERLINK, IDM_HYPERLINK)
DHTMLEDITING_CMD_ENTRY(ID_IMAGE, IDM_IMAGE)
// ... more commands
END_DHTMLEDITING_CMDMAP()
};This was advanced for 2001-2004:
- Most educational systems used plain text or basic HTML forms
- WYSIWYG web editors were rare and expensive
- Microsoft FrontPage was the main alternative (bloated and complex)
- VoD's editor was streamlined specifically for educational content creation
Features:
- Main video screen with DirectX rendering
- HTML browser pane for synchronized content
- Progress bar showing buffered vs played content
- Visual indicators for:
- Blue markers: Instructor-added content points
- Green markers: Student-added bookmarks
- VCR controls (play/pause/stop/seek)
- Drag-and-drop content addition
- Chat panel (in VoDPP version)
- Discussion forum access
Features:
- Video preview screen
- Project tree (Faculty → Department → Course → Lecture)
- Content timeline ruler with synchronization markers
- WYSIWYG DHTML editor with formatting toolbar
- Three-way editing (Design/Preview/Source)
- Synchronization tools
- Build and publish functionality
- FTP deployment to content servers
- User management interface
Features:
- User authentication and registration
- Course catalog browsing
- Video library management
- phpBB discussion forums
- Real-time chat rooms
- Administrative control panel
- Database management (phpMyAdmin)
- Usage statistics and reporting
Note: This is archival code from 2004. Some dependencies are not included.
- Windows OS (XP/2003 era recommended for compatibility)
- MySQL Server 4.x/5.x
- DirectX SDK (for video playback)
- Visual Studio 2003/2005
- Apache/IIS web server (for vodWeb)
- PHP 4.x/5.x
- ATM network (optional, for RDUP testing)
# Import database schemas
mysql -u root -p < vod.sql
mysql -u root -p < vod_web.sql- Open
VoD.slnin Visual Studio - Configure MySQL include paths
- Build server components first:
- VoDTCPServer
- VoDUDPServer
- Build client applications:
- VoD (Project Editor)
- VoDPlayer
- VoDPP (Player Plus)
- Deploy web interface:
- Copy
vodWeb/to web server document root - Configure
vodWeb/config.phpwith database credentials - Set up phpBB forum
- Copy
- Deploy to appropriate servers
- Mediation Server: Central authentication (MySQL + Web server)
- Content Servers: Distributed (TCP/UDP/RDUP/FTP services)
- Clients: VoD Player or Project Editor
This repository serves as an invaluable reference for:
- Pre-cloud distributed systems design patterns
- Early streaming video architecture
- Custom protocol design (RDUP)
- Client-server patterns from the early 2000s
- MFC Windows programming with DirectX
- Network programming - TCP/UDP sockets
- Custom application protocols
- Database-driven architecture
- Multimedia streaming concepts
- NTFS internals - alternate data streams
- WYSIWYG HTML editing with CHtmlEditView
- ActiveX and COM integration
- Asynchronous vs Synchronous learning systems
- Pedagogical design for video-based education
- User interaction patterns in e-learning
- Content synchronization techniques
- Collaborative learning tools
- Full Thesis (Turkish, 2004) - Complete technical documentation
- Thesis Presentation - Overview slides
- IEEE Paper - Peer-reviewed publication
- Collaborative Content Contribution System - Multi-user timestamp-based content sharing (still unmatched by modern platforms!)
- RDUP Protocol Design - Reliable UDP optimized for video streaming
- AVI Streaming Solution - Header-at-end problem solved
- Smooth Buffering Algorithm - Mathematical model for playback timing
- Pedagogical Framework - Synchronized multimedia learning materials with student contributions
- Distributed Architecture - Multi-server content delivery (pre-CDN)
- WYSIWYG Content Creation - Teacher-friendly interface for course material development
- Shared Learning Repository - Persistent storage and display of community-contributed educational resources
When this system was built:
- No YouTube - video sharing didn't exist
- No Netflix streaming - DVDs by mail only
- Dial-up dominant - 56K modems common
- No Flash video - limited web video options
- No smartphones - mobile video wasn't a thing
- No HTML5 - video plugins required
- No CDNs - no Cloudflare, Akamai was expensive
- No WYSIWYG web editors - FrontPage was the main alternative
Yet this system implemented:
- Multi-protocol streaming
- Distributed content delivery
- Interactive features
- Custom reliable UDP
- Synchronized multimedia
- Educational collaboration tools
- WYSIWYG HTML content editor
Cem (Cihan) KARACA Master's Thesis Project (2001-2004) Eastern Mediterranean University Supervisor: Assoc. Prof. Dr. Derviş Z. DENİZ
This project is provided for educational and historical reference purposes.
This system demonstrated concepts that would become standard (or are STILL ahead of) modern e-learning:
Features Still Unmatched Today:
- Collaborative content contribution at timestamps - No modern platform allows students to add rich content that other students see
- Shared knowledge repository per video - Community-built supplementary materials
Features That Became Standard:
- Video-centric learning (now: Coursera, edX, Udemy)
- Synchronized materials (now: Interactive video platforms)
- Real-time collaboration (now: Zoom, Teams education features)
- Distributed streaming (now: CDNs, adaptive bitrate)
- WYSIWYG content creation (now: Canvas, Moodle editors)
The VoD Legacy: This 2004 thesis project remains pedagogically more advanced than YouTube, Coursera, or any modern platform in terms of collaborative knowledge construction around video content.
video on demand, distance education, e-learning, streaming protocols, RDUP, pedagogical enhancement, collaborative learning, content contribution, timestamp-based sharing, shared knowledge repository, student contributions, MFC programming, DirectX, distributed systems, early 2000s technology, pre-YouTube, educational technology, Windows programming, custom protocols, AVI streaming, NTFS hidden streams, WYSIWYG editor, DHTML, CHtmlEditView, phpBB, MySQL, drag-and-drop, multimedia synchronization, collective knowledge building
If you appreciate this piece of computing history, please star the repository!
"Sometimes the best ideas come in the most unexpected places - like realizing AVI headers are at the end of the file while in the bathroom!"