Skip to content

Instantly share code, notes, and snippets.

@wwilsoni
wwilsoni / 3PlaySubmit.py
Created October 7, 2025 00:34
3Play Submit API for Transcript Submissions
# 3Play_Submit
import os
import requests
from time import sleep
# Distribution Reach Production
threeplay_key = ""
batch_id = "183890"
working_dir = "/nfs/automation/reach_distribution/caption_request"
@wwilsoni
wwilsoni / 3Play_Retrieve.py
Last active October 7, 2025 00:31
API to Retrieve Transcripts from Threeplay and deliver to File Path
# 3Play_Retrieve
import os
import requests
from datetime import date, timedelta
threeplay_host = "https://api.3playmedia.com"
# Production
threeplay_key = ""
batch_id = ""
@wwilsoni
wwilsoni / fps_opencv.py
Created October 7, 2025 00:22
FPS counter to verify dropped frames upstream
import cv2
import time
# Replace with your NDI camera's stream URL (RTSP, HTTP, etc.)
ndi_stream_url = "rtsp://10.39.34.199/live_stream"
cap = cv2.VideoCapture(ndi_stream_url)
fps = 0
pos = (30, 60)
font = cv2.FONT_HERSHEY_SIMPLEX
height = 1.5
weight = 3
@wwilsoni
wwilsoni / rtsp_monitor.py
Last active October 7, 2025 00:20
Camera management script used to monitor camera uptime
import subprocess
import requests
import json
import logging
from datetime import datetime
# Configure logging
logging.basicConfig(
filename="rtsp_monitor.log",
level=logging.INFO,
@wwilsoni
wwilsoni / StreamRecording_S3_Template.yaml
Last active October 7, 2025 00:22
Cloud Formation for Compliance Recordings w/ FFmpeg
AWSTemplateFormatVersion: '2010-09-09'
Description: Video Stream Recording to S3 with Optional EC2 Transcoding and Live Ingestion
Resources:
VideoStorageBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub "${AWS::StackName}-video-storage"
VersioningConfiguration:
@wwilsoni
wwilsoni / vmix_slowmo_trigger.py
Created October 4, 2025 15:38
RTMP/SRT Slow Motion Playback
#!/bin/bash
# Configuration
INPUT_STREAM="srt://10.39.33.83:1600?streamid=r=0" # Replace with your RTMP or SRT stream URL
DURATION=3
SLOW_FACTOR=0.25 # 0.25x speed = 4x slow motion
TEMP_CLIP="temp_clip.mp4"
SLOWMO_CLIP="slowmo.mp4"
# Output options
@wwilsoni
wwilsoni / ffmpeg_rgnex_streaming.py
Last active October 7, 2025 00:23
FFmpeg_RTMP_Streaming
#!/bin/bash
export STREAM_URL="rtmp://your.rgnex.server/live"
export STREAM_KEY="yourStreamKey"
export INPUT_DEVICE="/dev/video0" # For Linux webcam; use "video=YourDeviceName" on Windows
LOG_FILE="ffmpeg_stream_$(date +%Y%m%d_%H%M%S).log"
# FFmpeg RTMP
ffmpeg -f v4l2 -i "$INPUT_DEVICE" \
<!--
Delete Spot and Proxies, saving metadata and ProRes in Lanpad Backup.
-->
<workflow xmlns:xsi=""
xmlns=""
xmlns:nimbus=""
xsi:schemaLocation=""
id="dmed_admin_deleteSpot"
name="Delete Spot"
@wwilsoni
wwilsoni / abc_cc_orderShootsTranscript.xml
Last active October 4, 2025 14:57
Order EM Shoots Transcripts
<!--
Submit Shoots transcript jobs to 3play
-->
<workflow xmlns:xsi=""
xmlns=""
xmlns:nimbus=""
xsi:schemaLocation=""
id="abc_cc_orderShootsTranscript"
name="Order EM Shoots Transcripts"
@wwilsoni
wwilsoni / abc_signiant_sendUploadLink.xml
Last active October 4, 2025 14:57
Request Media Shuttle Upload Link