ShowShark vs Plex
ShowShark and Plex are both personal media servers that organize a library and stream it to client devices. They take very different approaches to almost everything else. This comparison covers pricing, privacy, remote access, transcoding, format support, and platform coverage so you can decide which one fits your setup.
At a Glance
ShowShark offers a more private, more technically capable media server with built-in remote access and no recurring fees. Plex covers more platforms and has a larger ecosystem, but increasingly gates features behind subscriptions and routes your data through its cloud. If your household runs on Apple devices, ShowShark delivers a better experience for less money.
Pricing
ShowShark is a one-time purchase. Buy the server license once and own it for life. There are no monthly fees, no annual renewals, and no tiered feature gates. Every feature ships to every customer.
Plex uses a subscription model called Plex Pass.
Many features that were previously free now require a subscription. Remote streaming of personal media, once free for all users, requires at least the Remote Watch Pass as of April 2025. Hardware-accelerated transcoding, HDR tone mapping, Skip Intro, DVR recording, mobile downloads, and managed users all require a full Plex Pass.
The free tier covers local playback and ad-supported on-demand movies.
Privacy and Cloud Dependency
ShowShark is local-first. Authentication runs between the server and client over your local network or encrypted tunnel. There is no cloud account requirement, no telemetry, and no dependency on external services for core functionality. If ShowShark's servers went offline tomorrow, every feature would continue to work exactly as it does today; the server and client communicate directly.
Plex requires a plex.tv account for all use. Server discovery, authentication, and remote access brokering are routed through Plex's cloud infrastructure. If plex.tv goes down, new logins fail, remote access breaks, and server discovery stops working. There is a workaround (pre-configuring a list of allowed IP addresses for unauthenticated local access), but it must be set up while plex.tv is still reachable.
Plex's March 2025 privacy policy revision introduced data sharing with advertisers for targeted advertising. Users with accounts created before the change were required to consent to the new data sale provisions. Playback telemetry (codec usage, transcode statistics, bitrate, resolution) is collected by default; some categories can be opted out. In August 2022, Plex disclosed a data breach that exposed customer emails, usernames, and hashed passwords.
ShowShark collects no playback telemetry and stores no user data on external servers.
Remote Access
This is the single biggest architectural difference between the two systems.
ShowShark embeds Tailscale's networking library (libtailscale) directly into both the server and client apps. When you sign in on the server and then connect a client on your local network, the client automatically receives the credentials it needs for remote access. No configuration is required on either end.
When you leave your home network and try to connect, the client detects the local connection failure and offers a "Connect Remotely" button. Tap it, and an encrypted WireGuard tunnel is established directly between the client and server; peer-to-peer, end-to-end encrypted, with no bandwidth caps and no relay servers in the middle. The connection works across NATs, firewalls, and cellular networks without port forwarding or router configuration.
Plex takes a fundamentally different approach. The preferred method is port forwarding: you open port 32400 on your router so Plex clients can connect directly through plex.tv's connection broker. When port forwarding is not possible (double NAT, CGNAT, restrictive firewalls), Plex falls back to a relay that routes all traffic through its own servers. The relay has a hard cap of 2 Mbps; enough for a compressed 480p stream, but not much else. Downloads cannot be performed over relay at all.
| ShowShark | Plex | |
|---|---|---|
| Port forwarding required | No | Yes (for direct connections) |
| Relay / third-party routing | None; peer-to-peer | Yes; 2 Mbps cap |
| Separate VPN app required | No; embedded in the app | No (but many users install Tailscale as a workaround for the relay cap) |
| Encryption | WireGuard end-to-end | TLS; relay traffic passes through Plex servers |
| Configuration | Automatic after first local connection | Manual router configuration or accept relay limitations |
| Subscription required | No | Yes (Plex Pass or Remote Watch Pass) |
Transcoding
ShowShark transcodes every file in real time using a GStreamer pipeline with Apple VideoToolbox hardware acceleration. The server probes each file's container, codecs, resolution, frame rate, channel layout, and HDR flags, then builds an optimized pipeline on the fly. No pre-conversion step, no "Optimize" button, no duplicate files on disk.
Output codec negotiation is automatic: the client reports whether it supports hardware HEVC decoding, and the server selects H.264 or H.265 accordingly. Output resolution defaults to the minimum of the source resolution and the device's native capability (4K on Apple TV 4K, 1080p on Apple TV HD, and so on), with a manual override available.
Plex supports three playback modes: Direct Play (file sent as-is), Direct Stream (remuxed into a compatible container), and Transcode (full re-encode). Direct Play is ideal but only works when the client natively supports the file's codecs and container. When transcoding is required, Plex uses FFmpeg with optional hardware acceleration (Intel Quick Sync, NVIDIA NVENC, or AMD VCE); hardware acceleration requires a Plex Pass.
Plex added HEVC hardware encoding in February 2025, but output is limited to Safari and Chrome on macOS/Windows. ShowShark has supported HEVC encoding via VideoToolbox since launch.
Adaptive Bitrate
ShowShark includes a server-side adaptive bitrate controller that adjusts encoder bitrate in real time based on client buffer health and TCP send timing. The system uses an AIMD (Additive Increase / Multiplicative Decrease) algorithm with overshoot memory to prevent oscillation. It starts at 2 Mbps and converges to a stable bitrate within 20-30 seconds. No user configuration is needed; it is always active.
Plex offers an "Automatically Adjust Quality" toggle on the client. When enabled, the client requests different quality levels from the server based on measured connection speed. This requires active transcoding (it is disabled during Direct Play) and transcodes both video and audio when active. The server can also impose a maximum remote stream bitrate cap.
Format Support
Video Codecs (Input)
| Codec | ShowShark | Plex |
|---|---|---|
| H.264 | Yes (hardware) | Yes |
| H.265 / HEVC | Yes (hardware) | Yes |
| AV1 | Yes (hardware on M3+; software on M1/M2) | Limited client support |
| MPEG-2 | Yes | Yes |
| MPEG-4 / DivX / Xvid | Yes | Yes |
| VC-1 | Yes | Yes |
| VP8 | Yes | — |
| VP9 | Yes | Yes (MKV only) |
| MPEG-1 | Yes | — |
Audio Codecs (Input)
Both systems support AAC, AC-3, E-AC-3, DTS, DTS-HD, TrueHD, FLAC, MP3, Vorbis, Opus, LPCM, ALAC, and WMA. ShowShark uses explicit decoder chains for every audio codec rather than relying on auto-plugging, which avoids a class of decoder selection bugs (notably, GStreamer's decodebin corrupts DTS audio by selecting a bad decoder configuration).
ShowShark applies channel-aware gain compensation when downmixing surround to stereo: 5.1 content gets a 2.5x boost, 7.1 gets 3.0x. A FIR DC blocker removes the DC offset that downmixing introduces. These details matter because they are the difference between "movies sound fine" and "why is the dialogue so quiet."
Container Formats
Both support MKV, MP4, MOV, AVI, WebM, MPEG-TS, and FLV.
Subtitle Formats
| Format | ShowShark | Plex |
|---|---|---|
| SRT | Client-side rendering | Client-side rendering |
| ASS / SSA | Client-side rendering (tags stripped) | Server burn-in on most clients |
| WebVTT | — | Client-side rendering |
| PGS (Blu-ray) | Server burn-in | Server burn-in |
| VobSub (DVD) | Server burn-in | Server burn-in |
ShowShark extracts all text subtitle tracks simultaneously from the server and streams them to the client. This means switching subtitle languages mid-playback is instant; there is no round-trip to the server and no pipeline restart. Bitmap subtitles (PGS, VobSub) are burned in server-side on both platforms.
On Plex, selecting any subtitle that requires burn-in forces a full video transcode, even if the video would otherwise Direct Play. This is a common pain point with 4K HDR content that has PGS subtitles.
ShowShark also provides user-adjustable subtitle timing delay (-3 to +3 seconds) and font size selection on the client.
Blu-ray Support
ShowShark plays BDMV folders directly. The server integrates libbluray 1.3.4 for title scanning, chapter extraction, multi-clip seamless playback, and video/audio/subtitle stream enumeration. Chapters are exposed to the client for navigation (previous/next buttons, chapter list picker, starting chapter selection). The player handles the complex PTS domain alignment that Blu-ray's M2TS format requires; specifically, segment-direct alignment using gst_segment_to_stream_time to work correctly across the split PTS domains that tsdemux produces.
Plex does not support BDMV folders, ISOs, or VIDEO_TS structures. Plex's official guidance is to remux discs to MKV using a tool like MakeMKV before importing. MKV files with embedded chapter markers are recognized by Plex and navigable on some clients, but chapter support varies by platform.
Library and Metadata
Both systems scan configured media folders and fetch metadata from online providers.
| Feature | ShowShark | Plex |
|---|---|---|
| Movie metadata | TMDB | TMDB |
| TV metadata | TMDB | TMDB + TheTVDB |
| Rotten Tomatoes scores | Yes (via OMDB) | — |
| Music metadata | MusicBrainz + Cover Art Archive + Last.fm | Integrated music agent |
| Synced lyrics | Yes (LRCLib) | Yes (LyricFind; Plex Pass) |
| YouTube metadata | yt-dlp .info.json parsing + YouTube API fallback | — |
| Manual metadata correction | Metadata Doctor | Fix Match |
| Content discovery | Similar To, By Feel, By Genre | Discover (cross-service; indexes 450+ streaming services) |
| Collections | Playlists + Favorites | Auto-collections from TMDB + manual collections |
ShowShark's content discovery is built around your own library. "Similar To" uses multi-factor scoring (keyword overlap, genre, cast, year, rating, optional embedding cosine similarity). "By Feel" lets you filter by time commitment and mood, then uses binary search narrowing to find something you want to watch. Plex's Discover feature indexes external streaming services and suggests content across platforms, which is a different product goal entirely.
Channels
ShowShark supports three types of virtual channels built from your own library:
- Video channels: 24-hour scheduled programming with genre, actor, title, rating, and media path filters. Anti-repetition logic, sorted or randomized ordering, consecutive episode toggle.
- Music channels: Continuous playback filtered by artist, album, genre, or song.
- Photo channels: Synchronized slideshows with deterministic scheduling so all connected clients show the same photo at the same time.
A Channel Guide view shows the full 24-hour programming grid with a current time indicator and color-coded program tiles.
Plex offers ad-supported live TV channels. DVR recording, commercial detection, and commercial skip require a Plex Pass. Plex does not have virtual channels built from personal media.
Platform Support
| Platform | ShowShark | Plex |
|---|---|---|
| iPhone / iPad | Yes (native SwiftUI) | Yes |
| Mac | Yes (native SwiftUI) | Yes (web app + HTPC app) |
| Apple TV | Yes (native SwiftUI with focus-based UI) | Yes |
| Apple Vision Pro | Yes (native SwiftUI) | — |
| Apple Watch | Yes (HLS playback via HTTP polling) | — |
| Web browser | Yes (vanilla TypeScript; ~180KB) | Yes |
| Android | Web | Yes |
| Android TV / Fire TV | Web | Yes |
| Roku | — | Yes |
| Smart TVs (Samsung, LG, etc.) | Web | Yes |
| PlayStation / Xbox | Web | Yes |
| Windows | Web | Yes |
| Linux | Web | Yes |
| NAS (Synology, QNAP, etc.) | — | Yes (server) |
ShowShark's native apps are designed to be intuitive and easy for first-time users. The interface is simple enough that kids can navigate the client app on their own to find their cartoon channel. Every platform gets a purpose-built experience: focus-based navigation on Apple TV, swipe gestures on iPhone, media keys on Mac, and Digital Crown volume control on Apple Watch.
ShowShark covers the entire Apple ecosystem including visionOS and watchOS, which Plex does not support. Non-Apple platforms (Android, Windows, Linux, smart TVs, and game consoles) are supported via ShowShark's web client, which runs in any modern browser. Plex offers native apps across a broader range of non-Apple platforms.
ShowShark Server runs exclusively on macOS (Apple Silicon). Plex Media Server runs on Windows, macOS, Linux, FreeBSD, Docker, and various NAS appliances.
Playback Features
| Feature | ShowShark | Plex |
|---|---|---|
| Chapter navigation | Yes (list picker, prev/next, starting chapter) | Varies by client |
| Blu-ray chapter support | Yes (extracted via libbluray) | MKV embedded chapters only |
| Picture-in-Picture | Yes (iOS) | Yes (some clients) |
| Background audio | Yes (WebSocket stays alive) | Yes |
| Lock screen / Now Playing | Yes (MPNowPlayingInfoCenter) | Yes |
| Media keys (macOS) | Yes | Yes |
| Resume playback | Yes (server-backed, synced across devices) | Yes (server-backed) |
| Skip Intro | — | Yes (Plex Pass) |
| Audio visualizers | Yes (Metal-accelerated; multiple styles) | — |
| Scrub thumbnails | Yes (per-minute batch generation) | Yes (chapter thumbnails) |
| Subtitle timing adjustment | Yes (-3 to +3 seconds) | — |
| Offline downloads | Yes | Yes (Plex Pass; mobile only) |
Audio Playback
ShowShark includes a dedicated music playback experience with a background mini player, repeat and shuffle modes, collection-based playback (albums, artists, folders), and real-time audio spectrum visualizers rendered with Metal. Synced lyrics from LRCLib display with time-synced line highlighting and auto-scroll.
Plex offers Plexamp, a separate dedicated music app with. Plexamp's premium features require a Plex Pass.
Photos
ShowShark integrates iCloud Photo Library via the Photos framework, supports album browsing (My Albums, Shared Albums, Smart Albums), and provides full-screen photo viewing with EXIF metadata and reverse geocoding. Photo channels display synchronized slideshows across all connected clients.
Plex offers photo library organization with timeline and map views, plus sharing capabilities.
Server Administration
ShowShark Server runs as a macOS menu bar app with a sidebar-based administration interface:
- Status: live service status, active transcoding sessions with encoder bitrate, connected clients with local/remote indicators
- Locations: media folder management with custom display names and SF Symbol icons
- Library: scan triggers, statistics, validation (test-transcode all indexed files)
- Channels: video, music, and photo channel editors with filter configuration
- Providers: TMDB, OMDB, LRCLib configuration
- Devices: known device management with admin roles, device type identification, IP address history
- Settings: port configuration, password management, launch at login, file-based logging with 24-hour auto-disable
Plex offers a web-based administration dashboard and Plex Dash (a separate monitoring app, Plex Pass required, of course).
Updates
ShowShark Server uses Sparkle for automatic updates with EdDSA signature verification. The update system checks for active streaming sessions before applying an update and warns the server operator if clients are connected.
Plex Media Server updates are downloaded and installed through the web dashboard or command line, depending on the platform.
Technical Support
ShowShark offers direct email support. If you are a customer, email [email protected] for help with anything ShowShark. You will hear back from the person who built the software.
Plex provides community forums and a knowledge base. Priority support is not offered as a standalone option; troubleshooting relies on community volunteers and the official support articles. Good luck!
Summary
| ShowShark | Plex | |
|---|---|---|
| Cost | One-time purchase | Subscription ($6.99/mo or $249.99 lifetime) |
| Cloud dependency | None; ompletely self-hosted | Required (plex.tv account) |
| Remote access | Built-in; peer-to-peer; no configuration | Port forwarding or 2 Mbps relay |
| Remote access subscription | No | Yes |
| Privacy | No telemetry, no external accounts | Telemetry collected; advertiser data sharing |
| Blu-ray folders | Full support with chapters | Not supported |
| Transcoding | Real-time GStreamer + VideoToolbox | FFmpeg + optional hardware acceleration (Plex Pass) |
| Adaptive bitrate | Server-side; always active | Client-side; requires transcoding |
| Apple ecosystem | All 6 platforms + web | iOS, macOS, tvOS + web |
| Non-Apple platforms | Web | Android, Roku, Smart TVs, consoles, NAS |
| Virtual channels | Video, music, photo | Ad-supported live TV; DVR (Plex Pass) |
| Server platforms | macOS (Apple Silicon) | Windows, macOS, Linux, NAS, Docker |
| Technical support | Direct email ([email protected]) | Community forums and knowledge base |
ShowShark is purpose-built for Apple households that want a private, self-contained media server with no subscriptions and no cloud dependency. Plex is a broader platform with an expanding focus on ad-supported content. The right choice depends on which ecosystem you live in and how much you value owning the entire stack versus reaching the widest range of devices.