Upgrading from v4 to v5
Architecture Change
v4 required a shared filesystem (Docker mount, NFS, or SMB) between client and server to transfer video data. The client and server coordinated commands over a lightweight protocol, but actual file I/O happened through the shared filesystem.
v5 eliminates the shared filesystem entirely. The server runs a patched ffmpeg that tunnels all file I/O (reads, writes, seeks, stat, etc.) back to the client over the TCP connection. Files are never stored on the server, and no shared storage is needed.
This means:
- No more NFS/SMB mount setup or maintenance
- No more path mapping between client and server filesystems
- Works across networks where shared storage isn't practical
Breaking Config Changes
ffmpegPath removed
v4 required you to specify the path to ffmpeg on the server:
// v4 (remove this)
"ffmpegPath": "/usr/bin/ffmpeg"
v5 ships patched ffmpeg and ffprobe binaries in the release. The server finds them automatically in the same directory as its own binary. Place all three files together and remove ffmpegPath from your config.
Unix socket address format changed
v4 used bare paths for Unix sockets:
// v4
"address": "/tmp/ffmpeg-over-ip.sock"
v5 uses the unix: prefix (following the gRPC/Docker convention):
// v5
"address": "unix:/tmp/ffmpeg-over-ip.sock"
TCP addresses (host:port) are unchanged.
--config removed from client
v4 supported --config on both client and server. v5 only supports it on the server, since the client forwards all arguments to ffmpeg. Use environment variables or config file search paths instead:
FFMPEG_OVER_IP_CLIENT_CONFIG="/path/to/config.jsonc" ffmpeg-over-ip-client ...
New Features in v5
No shared filesystem required
The biggest change. See the home page for the architecture overview.
Pre-built ffmpeg binaries
Releases include patched ffmpeg and ffprobe with hardware acceleration support (NVENC, QSV, VAAPI, AMF, VideoToolbox, and more) built on jellyfin-ffmpeg. No need to install ffmpeg separately on the server.
Block comments
Config files now support /* */ block comments in addition to // line comments.
Migration Checklist
- Download the v5 release (includes
ffmpeg-over-ip-server,ffmpeg, andffprobe) - Place all three server binaries in the same directory
- Remove
ffmpegPathfrom your server config - If using Unix sockets, add the
unix:prefix to your address - Remove path rewrites from your server config (no longer needed without shared filesystems)
- Remove any shared filesystem mounts that were only needed for ffmpeg-over-ip
- If using
--configon the client, switch to theFFMPEG_OVER_IP_CLIENT_CONFIGenv var