Short: Multi-codec video player and streamer Author: Darren Banfi (boingball) Uploader: boingball gmail com Type: gfx/show Version: 1.4.0 Requires: 68030+; util/libs/AmiSSL-v5-OS3.lha for online features Architecture: m68k-amigaos >= 3.0.0 Description: MintVID is a multi-codec video player for accelerated 68k Amigas, from 68030-class OCS/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.4.0 - Stereo audio. Paula now plays through a synchronized left/right channel pair, so stereo sources keep their stereo image instead of being mixed down to one channel. Mono sources, and the Mono audio option, play the same signal on both speakers. - A1200 68060/50 plays YouTube. In VQ Turbo+ (keyframes only) YouTube's 360p stream plays with correct high-quality stereo sound on a real A1200 with a 68060 at 50 MHz. Turbo+ no longer skips audio while it waits for keyframes, HTTPS segments resume their TLS session instead of paying a full handshake, and AGA colour conversion takes about a third of the 68k instructions it did. - PiStorm 600 plays YouTube without the P96 overlay. On the tested Pi3-based PiStorm 600 (MintVID040), YouTube's 360p stream plays through CGX with VQ Turbo and the new RTG (Half) display mode. The YUV-to-RGB step fell from 57 ms to about 12 ms per 640x360 frame there, and H.264 decode itself is faster. - Window and Window Half display modes play in a sizeable window on a native-chipset (AGA/ECS/OCS) Workbench, matching the dither palette to the screen's pens so Workbench's own colours never change. - RTG (Half) display mode: the window opens at half the video's width and height and colour conversion writes straight to that size, so conversion and the copy to the card each do about a quarter of the work (H.264). - VQ: Smoosh keeps H.264 moving on a machine that cannot keep up: late P/B pictures are not decoded, motion smears until the next keyframe, and audio always comes first. - Display: No Video plays only the soundtrack - no video is decoded - with a small Workbench window for ESC, pause, seek and volume. - Turbo+ no longer skips about 10 s of audio while waiting for the next keyframe. - Faster H.264 motion compensation and Baseline decode, and AAC decoded directly at a reduced rate (31-63% less AAC work when the output rate is halved or quartered). - The P96 hardware video overlay works on real Voodoo3/Permedia-class boards: it opens with the packed-YUV format (RGBFB_Y4U2V2) the historical RiVA driver path used, with the right chroma order (a new P96 Output Format menu switches between YVYU for WinUAE and YUYV for Voodoo) and studio-range clamping. The overlay window can be resized with the card doing the scaling, and fullscreen falls back to CGX when a board refuses the overlay. - Fast buffer adds 32 and 64 MB, and YouTube/IPTV HLS now downloads several segments ahead of playback. - HTTPS menu: TLS 1.2 (the faster default) or TLS 1.3. - HAM6 (Dither) and HAM8 (Dither) display modes: an ordered dither on each HAM colour change, so skies and other smooth areas stop banding. Clear on HAM6, subtle on HAM8; edges look the same as plain HAM. - Faster P96 on 16-bit screens: when the overlay is refused, H.264 is copied straight to the 16-bit screen format. On WinUAE 720p YouTube the display step fell from about 34 ms to about 17 ms per frame. - Faster MPEG-1/2: four-pixel motion compensation and a sparse-block IDCT cut decode by 19-29% of 68k instructions, output unchanged. - Live HLS/IPTV: Turbo+ no longer stalls on streams with B-frames (BBC One), live playback starts about 30 seconds from the live edge, and the playlist is re-read before playback reaches its end. MintVID 1.4.0 builds on 1.3.2's DV decoder, Extra Half-Brite display mode and MPEG-1/2 Fast speed mode, 1.3.1's original P96 hardware video overlay introduction (now made to work correctly on real hardware, see above) 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 OCS/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. In 1.4.0 a real A1200 with a 68060/50 plays YouTube's 360p stream in VQ Turbo+ (keyframes only) with full-quality stereo sound. - 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, YouTube's 360p stream plays with VQ Turbo and the RTG (Half) display mode, through CGX since the PiStorm's RTG has no P96 overlay. 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 in stereo: 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. - Smoosh: Turbo's policy, plus P/B pictures that are already late are not decoded at all. Motion smears ("datamosh") until the next keyframe restores the picture, but video keeps moving and audio comes first. For streams with no B-frames (YouTube 360p is Baseline), where Turbo has nothing to skip. 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. "Skip after" sets how far behind it may fall before it starts skipping (0.2-2 s, default 0.7 s). - Display: No Video (the Display chooser's last row) plays the soundtrack only. No video is decoded or shown; a small Workbench window takes ESC, space, cursor keys and volume. The command-line equivalents are --throughput (All Frames), --no-throughput (Skip Frames), --skip-trigger=MS and --no-video (No Video). 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. Try RTG (Half) when colour conversion and the copy to the card are the bottleneck. PiStorm/Emu68: MintVID040, RTG (Half) and Turbo VQ for YouTube 360p. Smoosh keeps high-motion scenes moving if Turbo falls behind. 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