Description:
MintVID is a multi-codec video player for accelerated 68k Amigas, from
68030-class ECS/AGA systems through 68040/060 machines to PiStorm/Emu68.
It supports native chipset and RTG output, local files, HTTP/HTTPS, HLS,
IPTV and public YouTube playback.
WHAT'S NEW IN 1.3.2
- Adds a native DV (IEC 61834/SMPTE 314M) video decoder for camcorder
footage - both PAL 4:2:0 and NTSC/DVCPRO 4:1:1 - with a Fast (DC-only)
speed mode for roughly 1.9x faster decode on slow targets.
- Adds Extra Half-Brite (EHB), a new chipset display mode for ECS/OCS
systems alongside AGA/HAM6/HAM8/CGX.
- Adds an MPEG-1/2 Fast speed mode that skips B-picture decode entirely
(always safe: a B picture is never referenced by a later picture).
- Generalises the H.264 performance chooser into a single Video Quality
control that also drives DV and MPEG-1/2 speed: Quality selects each
codec's full-quality path, every other setting picks fast.
- Fixes a real-hardware crash (Guru 8000000B) on pressing Play, on any
file - mrplay was linking -lm for code that never needed it, which on
the real toolchain silently swapped in an FPU-dependent variant of an
unrelated shared runtime helper for the whole binary.
- Gives CGX the same native-resolution-or-downscale fullscreen policy
P96 already had.
- Fixes iptvgui/ytgui failing to launch with "invalid playback option",
and the default CPU=68060 mrplay build not actually linking MintAMP's
accelerated polyphase kernel.
MintVID 1.3.2 builds on 1.3.1's P96 hardware video overlay support (a real
hardware overlay path for Voodoo3/Permedia/BVision-class RTG boards) and
the retirement of H.264 TurboGT, whose policy had become identical to
Turbo's; Turbo is now the default H.264 speed and TurboGT remains accepted
only as a command-line/settings alias. The 1.3.0 H.264/AAC performance
work, and the WMV7/8, HLS shutdown, Kalms C2P, RTG direct-write, YouTube
and RAM-aware queueing work from 1.1.x, all remain present.
See CHANGELOG.txt in the release archive, or CHANGELOG.md in the source tree,
for the detailed list.
Codec support does not imply real-time playback on every CPU. Practical
performance depends on processor speed, codec complexity, resolution,
bitrate and display mode. Lightweight older codecs are the natural fit
for classic accelerators. Very-low-resolution H.264 can now approach real time
on a fast real 68060, while PiStorm/Emu68 remains the practical target for a
broader range of modern streams and resolutions.
WHO THIS IS FOR
MintVID is aimed at accelerated Amiga hardware whose owner wants a broad
video player with local-file, network, YouTube and IPTV support. On classic
68030/040/060 accelerators, the supported online formats should not be read as
a promise of smooth H.264 streaming; those features are also useful for
compatibility testing and experimentation. PiStorm/Emu68-class systems are
the main target for practical H.264 YouTube/IPTV use.
MintVID uses the same feature set across its 68030, 68040 and 68060 builds.
There is no separate AGA, RTG or PiStorm feature edition; display mode and
practical playback performance depend on the hardware underneath it.
- 68030-class ECS/AGA systems - best suited to lightweight codecs and
modest frame sizes. Cinepak is the natural starting point; heavier
formats may decode correctly without being practical in real time.
- 68040/060 systems - older codecs such as Cinepak, MJPEG, MPEG-1/2,
MPEG-4 Part 2 and WMV7/8 become more practical at modest resolutions,
especially with RTG. H.264/AVC remains extremely demanding, but the 1.2.0
H.264/AAC improvements brought the lowest-resolution BBC One HLS stream
close to real time on a tested real 68060 using AGA/HAM8. Results depend
heavily on CPU clock, stream, audio, resolution and display mode; higher
resolutions are still not expected to be real-time on classic hardware.
- PiStorm/Emu68 - use the MintVID040 build. This is the build targeted for
the Emu68/PiStorm environment. H.264/AVC (Baseline through High Profile,
CABAC and B-frames) becomes much more practical here. On the tested
Pi3-based PiStorm 600, low-resolution H.264 streams below roughly 200p
have played well. Faster PiStorm hardware should provide more headroom,
but exact results depend on the stream and configuration.
- Vampire/Apollo 68080 - not yet validated by the MintVID project, so no
optimised build is officially recommended yet. Do not assume the 68060
build is the correct choice solely from the CPU name; feedback from real
Vampire hardware is welcome.
WHAT IT PLAYS
- Containers: AVI, QuickTime MOV/MP4, Matroska/MKV, MPEG-TS/M2TS, raw
MPEG-1 program streams, raw MJPEG/MPEG-4 Visual streams, and direct
HTTP(S)/HLS URLs (including live IPTV playlists and YouTube).
- Video codecs: Cinepak, Microsoft Video 1, Microsoft RLE8, uncompressed
UYVY422, H.263 / H.263+, Motion-JPEG, MPEG-1, MPEG-2 (with B-frames),
MPEG-4 Part 2 (ISO ASP and Microsoft MP42/DIV2), Windows Media Video 7
(WMV1), Windows Media Video 8 (WMV2), H.264/AVC Baseline/Main/High
Profile, and DV (IEC 61834/SMPTE 314M, PAL 4:2:0 and NTSC/DVCPRO 4:1:1).
- Audio to Paula: PCM, MP2, MP3, AAC-LC (raw/ADTS/LATM), and fixed-point
AC-3 (stereo downmix). MP3/AAC decoding reuses the proven MintAMP/Helix
code.
- Two complete GUI sets over the same player: ReAction (V44) and plain
GadTools/Intuition (V37) for a standard AmigaOS 3.0 install, each with
matching file, IPTV-directory and YouTube-search browser windows.
YOUTUBE URL INPUT
The YouTube browser can be used for links as well as searches. Paste a public
YouTube URL into ytgui's search field and press Search. ytgui and ytgui-GT
recognise normal watch links, /live/, /shorts/, /embed/ and youtu.be links,
including links with extra query parameters. The URL is shown as a single
selected result ready for Play, using the same playback options as an ordinary
YouTube search result.
This is useful when a video or live stream was found on another machine: copy
or paste the link into MintVID instead of trying to find the same item again
through YouTube search. URL recognition itself is local, but actual YouTube
playback still needs the normal HTTPS/AmiSSL support.
The YouTube search type also includes Hashtags. Enter one tag with or without
its leading #; MintVID opens YouTube's dedicated hashtag page and lists its
normal video and Shorts renderers through the existing results browser.
WMV compatibility notes: WMV1's low-bitrate spatial intra/inter prediction
mode is not implemented and is rejected rather than approximated. WMV2's
IntraX8 (J-frame) mode is likewise not supported. Normal tested WMV1/WMV2
AVI I/P streams use the native decoders.
MintVID's core decoders are regression-tested against ffmpeg using the
project's test fixtures where applicable. The portable core is also
cross-built and exercised on a big-endian m68k target under QEMU to catch
endianness and alignment problems that a little-endian x86 host build can
miss - see the project page for details.
DEFAULTS AND H.264 SPEED MODES
Kalms is the default C2P choice for AGA/HAM playback. If the selected geometry
or BitMap layout cannot use its CPU-matched converter, MintVID automatically
falls back to the established graphics.library path. RTG ignores C2P choices.
Turbo is the default H.264 speed. Auto selects the same policy. This one
chooser is now a general Video Quality (VQ) control: Quality selects each
codec's own full-quality path, and Balanced/Fast/Turbo/Turbo+ all select
the fast path for DV and MPEG-1/2 as well as H.264.
- Quality: full filtering, no deliberate frame skipping. DV decodes full
coefficients; MPEG-1/2 decodes every picture including B-frames.
- Balanced: in-loop deblocking disabled; motion compensation stays exact.
- Fast: Balanced plus bilinear rather than six-tap interpolation, but
still keeps every frame.
- Turbo: Fast policy plus B-frame skipping; preserves the P-frame chain.
DV decodes DC-only coefficients (~1.9x faster); MPEG-1/2 skips B-picture
decode entirely (always safe - a B picture is never referenced later).
- Turbo+: skips both P- and B-frames, so only keyframes are decoded and
shown and that decode stays short enough on a slow CPU to keep audio from
stuttering between frames. A last-resort keyframe/slideshow mode, not the
normal fastest setting.
TurboGT was retired in 1.3.1: its policy had been identical to Turbo's
since a correctness fix forced every degrading H.264 mode onto the same
all-or-nothing filtering policy, and every mode from Balanced down now
disables deblocking on keyframes as well as other pictures for the same
reason - leaving some pictures undegraded left the remaining ones being
deblocked against stale per-macroblock parameters, which was both
incorrect and slow enough that Fast ran slower than Quality.
--h264-speed=turbogt still works from the command line or a saved
setting, aliased straight to Turbo. All modes below Quality are
substantially faster than in 1.2.0.
VIDEO FRAME POLICY
Both GUI editions offer a Video selector:
- Video: All Frames (default) keeps every decoded picture, even when it is
late. Use it when the source is already keeping up, and for live/HLS
playback unless the picture is visibly falling behind.
- Video: Skip Frames drops decoded pictures that are already late. For
H.264, sustained lateness also engages libavc IVD_SKIP_PB to avoid most
P/B-picture decode work until the next IDR; confirmed with an overloaded
720p stream under WinUAE, where full-rate decoding was not possible, so a
slower Amiga can catch up. Audio, timestamps and decoder selection are
unchanged. This is the recommended first change for a stuttering or
decode-bound local/heavy video.
The command-line equivalents are --throughput (All Frames) and
--no-throughput (Skip Frames). A direct network/HLS mrplay invocation defaults
to throughput mode; a direct local-file invocation does not. GUI sessions pass
the selected policy explicitly.
RECOMMENDED STARTING POINTS
68030 ECS/AGA: AGA or EHB, lace off, 2x off, modest lightweight codecs.
Use Skip Frames only when playback falls behind.
68040/060 AGA: AGA/HAM, Kalms, lace off, 2x off, Turbo VQ for H.264. Use
Turbo+ for audio-first playback and Skip Frames when decode is late.
68040/060 RTG: CGX/P96, Turbo VQ, Fast buffer Auto, and a low-resolution
source before increasing quality. PiStorm/Emu68 should use MintVID040.
Live HLS/IPTV: start with All Frames and a low-resolution variant. For direct
mrplay use --live-resync after a live stall; --net-queue=24 is a deeper
read-ahead choice when free Fast RAM allows it.
Keep the complete release drawer together. The AmigaGuide manual is
MintVID.guide beside the binaries; MintVID.guide.info supplies its Workbench
icon when the file is copied into a drawer.
WHAT IT IS NOT
MintVID uses a modular decoder architecture, so its supported format list can
grow without tying the player to one fixed codec. It is not a video editor or
encoder: use ffmpeg or similar on a modern machine to prepare source material,
then play the result on the Amiga. Timeline seeking (cursor left/right,
10 seconds at a time, landing on the nearest keyframe) works for local
QuickTime MOV/MP4 files; AVI, MKV, and network/live sources don't have a
keyframe index yet, so cursor-right stays a fast-forward toggle there instead.
Cursor up/down adjust Paula's volume, and once playback starts, the
controller's Info: field - and, on RTG (CGX/P96), the video window's own title
bar - mirrors a live H:MM:SS/M:SS playhead so you can see where a seek actually
landed.
INSTALLATION
Choose the MintVID030, MintVID040 or MintVID060 drawer for a normal 68030,
68040 or 68060 system respectively. PiStorm/Emu68 users should use
MintVID040. Vampire/Apollo 68080 has not yet been validated, so there is no
official optimised-build recommendation for it yet. Copy the chosen drawer to
your Amiga and keep its contents together.
Run MintVID on systems with ReAction V44, or MintVID-GT for the plain
GadTools/Intuition interface used by a standard AmigaOS 3.0 installation.
IPTV and YouTube browsing are reachable from the controller's menus.
Everything else in the drawer (mrplay, iptvgui, ytgui, the GadTools -GT set,
mr_decode) is a support binary loaded on demand. Nothing in the release drawer
is intended to be split up or copied out on its own.
PROJECT / SOURCE
https://github.com/boingball/MintVID
Clone with submodules to obtain the pinned MintAMP and libavc sources used by
the build:
git clone --recurse-submodules https://github.com/boingball/MintVID.git
SOURCE / LICENSING
MintVID's own source is MIT-licensed. It links several dependencies that keep
their own licences (GPL-2.0-or-later, Apache-2.0, and RealNetworks RPSL among
them). The release archive includes a LICENSES drawer with the MintVID licence
and upstream licence/notices available from the checked-out dependencies.
See the project README for the full breakdown before redistributing binaries,
and provide the corresponding source required by the licences of the binary
components you redistribute.
SUPPORT
If MintVID is useful, or YouTube on an Amiga made you laugh, you can help
keep the hardware testing and development going at:
https://buymeacoffee.com/boingball
|