MCPcopy Index your code
hub / github.com/Niedzwiedzw/ninve

github.com/Niedzwiedzw/ninve @0.1.21

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.1.21 ↗ · + Follow
498 symbols 563 edges 21 files 2 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Ninve

Ninve (Ninve Is Not a Video Editor) is a simple (MPV wrapper) command-line tool written in Rust that allows you to quickly trim videos in a lossless manner using a text-based user interface (TUI). It uses mpv and ffmpeg to provide an efficient and user-friendly video trimming experience.

Features

  • Lossless video trimming
  • Text-based user interface (TUI) for easy navigation
  • Simple command-line usage
  • Lightweight and fast, built with Rust

Prerequisites

To use Ninve, you need the following dependencies installed on your system: - mpv: A free, open-source media player - ffmpeg: A powerful multimedia framework for handling video and audio

Ensure these binaries are available in your system's PATH.

Installation

  1. Clone the repository: bash git clone https://github.com/your-username/ninve.git
  2. Navigate to the project directory: bash cd ninve
  3. Build the project using Cargo: bash cargo build --release
  4. The binary will be available in target/release/ninve.

Usage

Run Ninve by providing the path to the input video file:

ninve ./path-to-my-file.mp4

Optionally, you can specify an output path for the trimmed video:

ninve ./path-to-my-file.mp4 ./output-file.mp4

The TUI will guide you through selecting the start and end points for trimming the video.

How it works

https://github.com/user-attachments/assets/6658d4de-6f88-4d55-9c1b-3ca528ab4e4b

Contributing

Contributions are welcome! Please feel free to submit issues or pull requests to the repository.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Extension points exported contracts — how you extend this code

SetPropertyValue (Interface)
(no doc) [173 implementers]
crates/mpv-cli/src/protocol/message/low_level/property.rs
PropertyValueName (Interface)
(no doc) [173 implementers]
crates/mpv-cli/src/protocol/message/low_level/property.rs
MpvCommand (Interface)
(no doc) [3 implementers]
crates/mpv-cli/src/protocol.rs
AbortOnDropExt (Interface)
(no doc) [1 implementers]
crates/mpv-cli/src/utils/abort_on_drop.rs

Core symbols most depended-on inside this repo

ratio
called by 9
crates/ninve-cli/src/main.rs
command
called by 8
crates/mpv-cli/src/ipc.rs
min
called by 3
crates/ninve-cli/src/main.rs
max
called by 3
crates/ninve-cli/src/main.rs
length
called by 3
crates/ninve-cli/src/main.rs
wait
called by 3
crates/mpv-cli/src/instance.rs
to_seconds_string
called by 2
crates/ninve-cli/src/main.rs
precision
called by 2
crates/ninve-cli/src/main.rs

Shape

Class 413
Method 47
Enum 19
Function 15
Interface 4

Languages

Rust100%

Modules by API surface

crates/mpv-cli/src/protocol/message/low_level/property/codegen.rs350 symbols
crates/mpv-cli/src/protocol/message/low_level/property/fields.rs28 symbols
crates/ninve-cli/src/main.rs26 symbols
crates/mpv-cli/src/protocol/event.rs16 symbols
crates/mpv-cli/src/ipc/event_bus.rs15 symbols
crates/mpv-cli/src/instance.rs13 symbols
crates/mpv-cli/src/ipc.rs9 symbols
crates/mpv-cli/src/protocol/event/grouped_events.rs7 symbols
crates/mpv-cli/src/utils/abort_on_drop.rs5 symbols
crates/mpv-cli/src/protocol/message/api.rs5 symbols
crates/mpv-cli/src/protocol/message.rs5 symbols
crates/mpv-cli/src/binary.rs5 symbols

For agents

$ claude mcp add ninve \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page