Tactical Media Broadcast Hub — initial release
Self-hosted multi-platform broadcast newsroom for activist collectives: publishing pipeline with group approval and DST-proof scheduling, TweetDeck-style column wall with hostile-content-safe rendering, live control room with Auto Director, bridged chat governance with polls and quorum, distributed sandboxed transcode workers, encrypted content-addressed archive, monthly analytics. MIT licensed. See README.md and docs/.
This commit is contained in:
commit
aa5e262f3a
880 changed files with 111042 additions and 0 deletions
42
packages/core/src/video.ts
Normal file
42
packages/core/src/video.ts
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
export interface VideoAsset {
|
||||
id: string;
|
||||
workspaceId: string;
|
||||
storageKey: string;
|
||||
mimeType: string;
|
||||
sizeBytes: number;
|
||||
width?: number;
|
||||
height?: number;
|
||||
durationMs?: number;
|
||||
frameRate?: number;
|
||||
codec?: string;
|
||||
audioCodec?: string;
|
||||
thumbnailKey?: string;
|
||||
}
|
||||
|
||||
export type VideoProcessingJobState =
|
||||
| "queued"
|
||||
| "probing"
|
||||
| "transcoding"
|
||||
| "complete"
|
||||
| "failed";
|
||||
|
||||
export interface VideoProcessingJob {
|
||||
id: string;
|
||||
workspaceId: string;
|
||||
videoAssetId: string;
|
||||
state: VideoProcessingJobState;
|
||||
progressPercent?: number;
|
||||
outputKey?: string;
|
||||
error?: string;
|
||||
}
|
||||
|
||||
export interface VideoLibraryEntry {
|
||||
videoAsset: VideoAsset;
|
||||
processingState: VideoProcessingJobState;
|
||||
publications: Array<{
|
||||
connectionId: string;
|
||||
remoteId: string;
|
||||
platform: string;
|
||||
publishedAt: Date;
|
||||
}>;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue