Skip to main content

FMUS-VID Library

FMUS-VID is a Python library for video processing and manipulation.

Installation

# Basic installation
pip install fmusvid

# With AI features
pip install fmusvid[ai]

# With streaming support
pip install fmusvid[streaming]

# With GUI support
pip install fmusvid[gui]

# With all features
pip install fmusvid[all]

Quick Start

Basic Video Processing

from fmusvid.video import VideoProcessor
from fmusvid.operations import basic

# Load a video
video = VideoProcessor("input.mp4")

# Apply operations
video.apply(basic.cut(start=10, end=20))
video.apply(basic.resize(width=1280, height=720))

# Save the result
video.save("output.mp4")

Object Detection

from fmusvid.video import VideoProcessor
from fmusvid.ai import detection

# Load a video
video = VideoProcessor("input.mp4")

# Detect objects
results = video.apply(detection.detect_objects(model="yolo"))

# Save the result with bounding boxes
video.save("output_with_detection.mp4")

RTMP Streaming with Multilingual Subtitles

from fmusvid.stream import RTMPCapture, RTMPOutput
from fmusvid.ai.speech import WhisperTranscriber
from fmusvid.ai.translation import LLMTranslator
from fmusvid.operations.text import SubtitleOverlay

# Create components
rtmp_capture = RTMPCapture("rtmp://localhost/live/stream")
transcriber = WhisperTranscriber(model="medium", device="cuda")
translator = LLMTranslator(model="ollama:mistral", target_languages=["es", "fr", "de"])

# Create outputs for different languages
outputs = {
    "en": RTMPOutput("rtmp://localhost/live/stream_en"),
    "es": RTMPOutput("rtmp://localhost/live/stream_es"),
    "fr": RTMPOutput("rtmp://localhost/live/stream_fr"),
    "de": RTMPOutput("rtmp://localhost/live/stream_de")
}

# Process frames in real-time
async for frame, audio in rtmp_capture.aiter_frames_with_audio():
    # Transcribe audio
    text = await transcriber.transcribe_chunk(audio)

    # Translate text
    translations = await translator.translate_async(text)

    # Create frames with different subtitles
    frames = {}
    for lang, translation in translations.items():
        subtitle = SubtitleOverlay(position="bottom")
        frames[lang] = subtitle.apply(frame, translation)

    # Write frames to outputs
    for lang, output_frame in frames.items():
        await outputs[lang].write_frame(output_frame)

Webcam Capture

from fmusvid.capture import CameraCapture

# List available cameras
from fmusvid.capture import list_cameras
cameras = list_cameras()
for camera in cameras:
    print(f"Camera {camera['id']}: {camera['name']} ({camera['width']}x{camera['height']})")

# Create a camera capture instance
camera = CameraCapture(camera_id=0, width=1280, height=720)

# Start the camera
camera.start()

# Capture a frame
frame = camera.get_frame()

# Capture an image and save it
camera.capture_image("webcam_capture.jpg")

# Record video
camera.record_video("webcam_recording.mp4", duration=10)  # 10 seconds

# Stop the camera
camera.stop()

GUI Applications

FMUS-VID includes a PyQt6-based GUI application for webcam capture:

# Install with GUI support
pip install fmusvid[gui]

# Run the camera GUI application
python examples/camera_gui.py

Example Scripts

The library includes several example scripts to demonstrate its capabilities:

  • examples/basic_example.py: Basic video processing operations
  • examples/transitions_example.py: Video transitions and effects
  • examples/ai_features.py: Object detection and tracking
  • examples/rtmp_live_example.py: RTMP streaming with real-time transcription and translation
  • examples/rtmp_demo.py: Demo of RTMP capabilities using local video files
  • examples/camera_gui.py: PyQt6-based webcam capture application

Command Line Interface

FMUS-VID provides a comprehensive command-line interface for common video operations:

# Basic CLI usage
fmusvid [command] [options]

Available Commands

Command Description Example
convert Convert video format fmusvid convert input.mp4 output.webm
cut Cut a segment from video fmusvid cut -i input.mp4 -o output.mp4 -s 10 -e 20
resize Resize video fmusvid resize -i input.mp4 -o output.mp4 -w 1280 -h 720
info Display video information fmusvid info input.mp4
concat Concatenate multiple videos fmusvid concat -i video1.mp4 video2.mp4 -o output.mp4
extract-audio Extract audio from video fmusvid extract-audio -i input.mp4 -o audio.mp3
add-subtitles Add subtitles to video fmusvid add-subtitles -i input.mp4 -s subtitles.srt -o output.mp4
generate-subtitles Generate subtitles using AI fmusvid generate-subtitles -i input.mp4 -o subtitles.srt --model medium
translate-subtitles Translate subtitles fmusvid translate-subtitles -i subtitles.srt -o subtitles_es.srt --target es
camera Capture from webcam fmusvid camera -o capture.mp4 -d 10
screen Capture screen recording fmusvid screen -o screen.mp4 -d 30
rtmp-stream Stream video to RTMP server fmusvid rtmp-stream -i input.mp4 -u rtmp://server/live/stream
rtmp-capture Capture RTMP stream fmusvid rtmp-capture -u rtmp://server/live/stream -o output.mp4 -d 60

Global Options

Option Description
-v, --verbose Enable verbose output
--version Show version information
--help Show help message
--config FILE Use custom configuration file
--log-level LEVEL Set logging level (debug, info, warning, error)

For more detailed help on each command:

fmusvid [command] --help

Dependencies

  • OpenCV
  • NumPy
  • FFmpeg
  • PyTorch (for AI features)
  • Faster-Whisper (for speech recognition)
  • Local LLM support (for translation)
  • PyQt6 (for GUI applications)

License

This project is licensed under the MIT License.

Metadata

Release files for fmusvid 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fmusvid 0.0.1
File Size Uploaded
fmusvid-0.0.1.tar.gz 163.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fmusvid 0.0.1
File Interpreter ABI Platform
fmusvid-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 207.8 kB

Release files / fmusvid-0.0.1.tar.gz

Download URL fmusvid-0.0.1.tar.gz
Size 163.3 kB
Tags Source
SHA-256 checksum
How to use checksums
5bca6a4316af847791c2c234a29b4636897e9c323422d9494288c05a900bf25a
BLAKE2b-256 checksum
How to use checksums
af03a729f39224caa30b10ff9be5c8059865b81857a99499e6471e6ce9850854
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.0

Release files / fmusvid-0.0.1-py3-none-any.whl

Download URL fmusvid-0.0.1-py3-none-any.whl
Size 44.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7d9c18e2d3c1f66c7ee8542533dbd457b02d5f708674cb82eb4865cb0acf12ef
BLAKE2b-256 checksum
How to use checksums
a7fa3f28f4474017761c61aa407c96cedb045a803b262aba1e6fa1f6c09d3e3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.0

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page