Skip to content

Commit

Permalink
Initial commit of EncodeMe
Browse files Browse the repository at this point in the history
Added title, description, lists and explanations.
  • Loading branch information
MartinEesmaa committed Mar 30, 2024
0 parents commit a021722
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 Martin Eesmaa

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
101 changes: 101 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# EncodeMe (by Martin Eesmaa)

EncodeMe is a video media encoder of multi edition. This tool can bring of all encoders & decoders using FFmpeg and external others too with multi platform operating systems.

Operating systems:
Windows, Mac, Linux & FreeBSD (QT C++, Imgui C++, Python, or other programming language)

Android (Kotlin or/and Java)

iOS (Swift)

WebAssembly (TypeScript or Javascript)

CLI (Batchfile, shell script, Python or other programming language)

For using CLI, almost all supported OS can handle in terminal.

Some operating systems can handle all external tools, but it is limited available of some external tools like in mobile and old operating systems.

Also this is construction experimental working on this project since 30th March 2024.

# To-do lists to make release

- CLI
- GUI
- Design of GUI applications
- UV transmissions
- Animations
- Icons
- Detect any fakes
- Optimizations
- Scores of calculation tools
- External tools

# Detect any fakes

The tool uses to detect any media files when using "Detect fake" tab for fake audio bits, audio channels, sample rate, frame per second and video size.

- Duplicated frames must be reencoded to deduplicate video of frames. **It's experimental.**

- Fake video size may be upscaled, needs to be manually check after resized video by human. **It's experimental.**

- Detects fake pixel format for example the original Y4M file is pixel format of 8 bit and upsampled to 10-bit file. 10-bit Y4M file to 8-bit Y4M is match checksum using FFmpeg MD5 format are same video without loss.

- Audio bits & fake audio channels can detect when fake original like 32-bit than original 16-bit or 24-bit.

- Fake audio sample rate of upsampled have to be done on SoX resampler to get back best high quality.

- Check if the audio is lossless or not with cutoff.

# Optimizations

Optimize can be done using FFmpeg to minimize file size without loss quality such as like Matroska, Windows Media and Audio Video Interleave, but stream copy.

# Scores of calculation tools

Video: VMAF from Netflix

Audio: VISQOL from Google

For VISQOL, the maximum range of Audio mode is 4.7321 and needs to be resampled 48khz. For speech mode, it is maximum of range 5 and targets 16khz.

# External tools

External tools are welcome to implement to our tool, includes improvement:

- a52dec (AC3 decoder)
- aften (AC3 encoder)
- AMR-WB+
- Atrac1 & Atrac3 (encoder)
- AudioDec
- AVS3 encoder
- Exhale USAC encoder
- Bonk audio (encoder)
- Encodec
- Enhanced Voice Services
- FAAC & FAAD2 (encoder and decoder)
- FLAC (external)
- FLACCID (best to minimize FLAC audio of encoder)
- FLACCL (CUDA Flac Encoder)
- Flake (Fast Flac Encoder)
- Lagarith (encoder)
- LC3 Google
- LC3plus
- Lyra Google
- MOI (My Optimized IMA-ADPCM)
- Monkey's Audio (encoder, but decode more than stereo channels)
- MP1 (Uzura)
- MPEG-4 ALS
- MPEG-5
- Musepack (encoder)
- NIHAV Encoders
- Nintendo DSP-ADPCM
- Quite OK Audio (encoder)
- Sac (state-of-the-art codec lossless)
- WavPack (external)
- More tools lists will come later...

# About this program

This program was created and founded by Martin Eesmaa.

0 comments on commit a021722

Please sign in to comment.