Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/f33rni/ntsc-vhs-renderer
Intuitive rendering and GUI for LMP88959/NTSC-CRT with effects
https://github.com/f33rni/ntsc-vhs-renderer
analog bloom-filter composite effects interlacing ntsc retro simulation vhs video
Last synced: about 2 months ago
JSON representation
Intuitive rendering and GUI for LMP88959/NTSC-CRT with effects
- Host: GitHub
- URL: https://github.com/f33rni/ntsc-vhs-renderer
- Owner: F33RNI
- License: apache-2.0
- Created: 2023-08-06T15:39:58.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-09-01T22:05:46.000Z (over 1 year ago)
- Last Synced: 2024-01-27T01:37:23.497Z (11 months ago)
- Topics: analog, bloom-filter, composite, effects, interlacing, ntsc, retro, simulation, vhs, video
- Language: Cython
- Homepage:
- Size: 106 MB
- Stars: 18
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 📺 NTSC-VHS Renderer
### Intuitive rendering and GUI for LMP88959/NTSC-CRT with effects
![](git_media/banner.png)
----------
[Jerobeam Fenderson - Shrooms](https://www.youtube.com/watch?v=19jv0HM92kw) through **NTSC-VHS-Renderer** *(NTSC, Interlaced, Brightness +100, Contrast +10, Bloom 80)*
![](git_media/mushrooms.gif)
Corpse Bride ending through **NTSC-VHS-Renderer** *(VHS, Interlaced, Brightness +20, Contrast +10, Bloom 45)*
![](git_media/corpse_bride.gif)
----------
## 📙 Dependencies
- **NTSC-CRT**: https://github.com/LMP88959/NTSC-CRT
- **BloomEffect**: https://github.com/yoyoberenguer/BloomEffect
- **FFmpeg**: https://github.com/FFmpeg/FFmpeg
- **Pillow**: https://github.com/python-pillow/Pillow
- **numpy**: https://github.com/numpy/numpy
- **psutil**: https://github.com/giampaolo/psutil----------
## ❓ Get started
**Note**: At the moment, compiled releases are only available for **Windows x64**. To run on another platform, you must build the project from source yourself (see *🔨 Building from source* section)
1. Download latest release from https://github.com/F33RNI/NTSC-VHS-Renderer/releases/latest
2. Unzip it and run `NTSC-VHS-Renderer-X.X.X-Windows-AMD64.exe`
3. Open a video or image file by dragging it to the GUI or by clicking "File" -> "Open"
4. On "Render" tab change whatever you want. To render to a file, click the "Render and Save as" button
5. Enjoy!----------
## 🔨 Building from source
1. Install CMake, Python and other basic building tools
2. Build NTSC-CRT for your system
*Windows example:*
```shell
git clone https://github.com/LMP88959/NTSC-CRT
cd NTSC-CRT
cmake -B build -DLIVE=off -DVIDEO=on -DCRT_SYSTEM=5
cmake --build build --config Release
move build\Release\ntsc_video.exe build\Release\ntsc_video_vhs.exe
cmake -B build -DLIVE=off -DVIDEO=on -DCRT_SYSTEM=0
cmake --build build --config Release
```
3. Download FFmpeg binaries from https://ffmpeg.org/download.html or build them by yourself.
NTSC-VHS Renderer uses `ffmpeg` and `ffprobe` files
4. Download BloomEffect source code from https://github.com/yoyoberenguer/BloomEffect/tree/version-1.0.2/BloomEffect
5. Clone NTSC-VHS Renderer repo:
```shell
git clone https://github.com/F33RNI/NTSC-VHS-Renderer
cd NTSC-VHS-Renderer
```
6. Create virtual environment and install requirements:
*Windows example:*
```shell
python -m venv venv
venv/Scripts/activate
pip install -r requirements.txt
```
7. Copy NTSC-CRT binaries (`ntsc_video` and `ntsc_video_vhs`), ffmpeg binaries (`ffmpeg` and `ffprobe`) and BloomEffect source code (into `bloom` directory: `NTSC-VHS-Renderer/bloom/...`)
8. To start NTSC-VHS-Renderer: run `python main.py`
9. To build executable: run `pyinstaller NTSC-VHS-Renderer.spec`. Output files and executable will be in `dist/NTSC-VHS-Renderer-VERSION-PLATFORM` directory----------
## 📝 TODO
- Fix output resolution (probably caused by NTSC-CRT)
- Test properly
- Build for linux
- Make it faster
- Add rolling shutter effect----------
## ✨ Contribution
- Anyone can contribute! Just create a pull request
----------
### 🚧 P.S. This project is under development!