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 operationsexamples/transitions_example.py: Video transitions and effectsexamples/ai_features.py: Object detection and trackingexamples/rtmp_live_example.py: RTMP streaming with real-time transcription and translationexamples/rtmp_demo.py: Demo of RTMP capabilities using local video filesexamples/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)
| File | Size | Uploaded | |
|---|---|---|---|
| fmusvid-0.0.1.tar.gz | 163.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|