https://github.com/mikuauahdark/nav
NPad Audio Video Decode: Performs audio and video decoding using platform-specific backends.
https://github.com/mikuauahdark/nav
audio audio-decoding video video-decoding
Last synced: 3 months ago
JSON representation
NPad Audio Video Decode: Performs audio and video decoding using platform-specific backends.
- Host: GitHub
- URL: https://github.com/mikuauahdark/nav
- Owner: MikuAuahDark
- License: zlib
- Created: 2024-06-02T15:01:26.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-05T03:55:45.000Z (3 months ago)
- Last Synced: 2025-04-05T04:25:11.851Z (3 months ago)
- Topics: audio, audio-decoding, video, video-decoding
- Language: C++
- Homepage:
- Size: 464 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
NAV
=====NPad Audio Video decoding library.
Performs audio and video decoding using platform-specific backends.
Backends
-----NAV relies on various backends to perform audio and video decoding.
| Backend | Kind | OS Availability | `nav_backend_name()` | Disablement Env. Var\* | Additional Notes |
|-------------------|-----------|-------------------------|----------------------|------------------------|----------------------------------------------------------|
| [NdkMedia] | OS API | Android | `"android"` | `ANDROIDNDK` | Due to API limitations, Android 9 is required. |
| [FFmpeg] 4 | 3rd-Party | Windows, Linux, Android | `"ffmpeg4"` | `FFMPEG4` | Requires the appropriate header files to be present.\*\* |
| [FFmpeg] 5 | 3rd-Party | Windows, Linux, Android | `"ffmpeg5"` | `FFMPEG5` | Requires the appropriate header files to be present.\*\* |
| [FFmpeg] 6 | 3rd-Party | Windows, Linux, Android | `"ffmpeg6"` | `FFMPEG6` | Requires the appropriate header files to be present.\*\* |
| [FFmpeg] 7 | 3rd-Party | Windows, Linux, Android | `"ffmpeg7"` | `FFMPEG7` | Requires the appropriate header files to be present.\*\* |
| [GStreamer] | 3rd-Party | Linux | `"gstreamer"` | `GSTREAMER` | Requires the appropriate header files to be present. |
| [MediaFoundation] | OS API | Windows | `"mediafoundation"` | `MEDIAFOUNDATION` | UWP target is not supported. |\*: Prepend `NAV_DISABLE_` to the environment variable name. It is shortened due to readability reasons.
\*\*: By default, only one FFmpeg version is picked based on what's the compiler can find. To compile with support for multiple FFmpeg versions, see below.
[FFmpeg]: https://ffmpeg.org/
[MediaFoundation]: https://learn.microsoft.com/en-us/windows/win32/medfound/microsoft-media-foundation-sdk
[NdkMedia]: https://developer.android.com/ndk/reference/group/media
[GStreamer]: https://gstreamer.freedesktop.org/Multiple FFmpeg Version Support
-----NAV since 0.3.0 can be compiled to support multiple FFmpeg versions.
To compile with multiple FFmpeg versions, pass `-DFFMPEGn_DIR` (where `n` is between 4-7) in CMake command-line to
location where FFmpeg header files are placed. Note that the directory should be one directory above the `include`.
For example, if you have FFmpeg 7 includes in `/path/to/ffmpeg7/include`, then do `-DFFMPEG7_DIR=/path/to/ffmpeg7`.Example command-line for CMake:
```
cmake -Bbuild -S. --install-prefix $PWD/installdir -DFFMPEG6_DIR=/path/to/ffmpeg6 -DFFMPEG7_DIR=/path/to/ffmpeg7
```For best compatibility, it's recommended to use FFmpeg n.0 header files. Note that NAV only needs functional header
files to compile as library files will be loaded at runtime.License
-----zlib/libpng license.