Vohvelo [βo̞ʰ ve̞lo̞ʰ] aims to be a simple and widely usable tool to run processes on a remote machine. Although is quite simple to do just by SSH'ing into another machine and running a process, that manual work of copying, waiting the process to finish and bringing the results back (and cleaning up the remote host) can be a little bit frustrating.
The original use case comes from trying to transcode from x265 in a Raspberry Pi, failing to do so, and trying to automate the outsourced process into my main computer.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
gh.mp4
Run your process (with the files needed) on another machine and bring back the results.
Just clone the project and run it in your local machine. The process to be run must be already installed on the remote machine.
What you'll need:
- bash
- ssh
- scp
- Clone the repo
git clone https://github.com/asophila/vohvelo.git
- Done
Usage is simple:
./vohvelo.sh <file to process> <remote user> <remote host> <local output filename>
Example: Suppose we have a video file in a low power machine, a Raspberry Pi or something like that, and we need to do the transcoding from x265 to x264 to make it easier for de Rpi to playback that file. The transcoding could take many hours in the Raspberry, but only 5 minutes in another machine in the network. To send the video file and ask the other machine to transcode, and send back the transcoded file would need something like:
./vohvelo.sh morbius.mkv remote_user 192.168.0.45 morbius.mp4
This will:
- Copy the original file to the remote machine using the user and host provided
- Trigger the ffmpeg transcoding process (currently the process is hardcoded, maybe later we could make it run anything)
- Wait for the transcoding to finish
- Copy the resulting file back to the local machine
- Cleanup the remote folders
- Process files with full input and output paths
- Accept filenames containing spaces
- Accept any process (with arguments) as an input
- Recognize filenames in the command
- Check if those filenames exist as files in the local machine
- Copy those files to the remote machine
- Identify non existant files in the command as output filenames
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Your Name - @asophila - asophila ARR0BA pm.me
Project Link: https://github.com/asophila/vohvelo