HomeJavaModsCineFrame
CineFrame
ModsJava

CineFrame

by Go0fy_Go0ber · on Modrinth

CineFrame lets Minecraft Java servers play video clips with synced audio on item frames. It auto-builds resource packs, uses FFmpeg for easy setup, and…

⬇ Download on Modrinth
CineFrame — screenshot 1CineFrame — screenshot 2CineFrame — screenshot 3

CineFrame

Play real video clips on item frames with synced audio on a Minecraft Java server.

cineframe image preview

For video preview go here

Features

Requirements

Tested server types can include Paper, Purpur, Pufferfish, Leaf, and Folia, as long as the build supports the same API version CineFrame was built for.

Windows is the safest setup right now. Linux can work, and Linux ARM has a config option for frame format if playback is flaky.

Install

  1. Drop PacketEvents 26.2 into your plugins/ folder.
  2. Drop CineFrame into your plugins/ folder.
  3. Restart the server once so CineFrame can make its folders.
  4. Put videos in plugins/CineFrame/media/.

Supported video files:

After that, edit plugins/CineFrame/config.yml so players can download the audio resource pack. Restart the server after changing the config.

Upgrade note

If you are updating from an older CineFrame build, check your config.yml.

Older configs may be missing the newer settings for debug level, packet range, map FPS, and Linux ARM frame format. You can add the keys below by hand, or back up your old config and let CineFrame create a fresh one.

Config

These keys are used by CineFrame to host the resource pack zip and control video packet sending.

# Port used for datapack download for users
datapack-port: 25564

# Public URL or IP for remote players
# Do not include http:// or https://
# You can find your public IP at https://whatismyipaddress.com/
# You can also use a domain if you already have one set up
datapack-public-host: "mydomain.com"
datapack-scheme: "http"
datapack-public-port: 25564

# LAN URL for players on the same network as the server
# This should be the server's LAN IP, not localhost
# On Windows:
# Press Win + R, type cmd, press enter, type ipconfig, press enter,
# then find the IPv4 for the current network adapter.
datapack-local-host: "10.0.0.42"
datapack-local-scheme: "http"
datapack-local-port: 25564

# Loopback URL for clients connected from 127.0.0.1 or ::1
datapack-loopback-host: "localhost"
datapack-loopback-scheme: "http"
datapack-loopback-port: 25564

# Debug logging for pack choice
# Shows which resource pack URL was sent to each player
datapack-debug-pack-url: false

# Debug logging for the HTTP server
# Shows pack download requests and responses
datapack-http-debug: false
datapack-http-log-headers: false

# Debug log level
# 0 = off
# 1 = basic info
# 2 = normal
# 3 = more logs
# 4 = very chatty
# 5 = spammy
cineframe-debug-level: 0

# How far away a player can be from a screen before CineFrame stops sending map packets
# Range is measured in blocks from the center of the screen
cineframe-packet-range-blocks: 64

# How often CineFrame checks which players are close enough to receive packets
# Value is in milliseconds
cineframe-packet-range-check-ms: 1000

# The frame rate used for map image updates
# Must be between 1 and 20
cineframe-map-fps: 20

# Linux ARM frame format for live playback
# png = safer on ARM
# mjpeg = can be faster on some systems, but can be less stable if decoding is flaky
linuxarm-frame-format: "mjpeg"

Commands

All commands use the cineframe.use permission. This permission is enabled for everyone by default.

Start placing a video screen

/media <filename>

Example:

/media trailer.mp4

If the file name has spaces, type the full name.

Example:

/media my video file.mp4

After running /media, left click the first corner of the screen, then left click the opposite corner. The two corners must be on the same flat wall. They must share either the same X or the same Z value.

CineFrame will spawn item frames and show the first frame of the video.

Place a screen with coordinates

/mediacorners <x1> <y1> <z1> <x2> <y2> <z2> [north|south|east|west]

This only works after /media <filename> has been run.

Example:

/media trailer.mp4
/mediacorners 10 65 20 14 62 20 south

You can leave the facing out if you are running the command as a player. CineFrame will try to pick the facing from where you are standing.

The facing can be:

For command blocks and console use, include the player name:

/mediacorners <player> <x1> <y1> <z1> <x2> <y2> <z2> [north|south|east|west]

Example:

/mediacorners Steve 10 65 20 14 62 20 south

The player must already have a pending /media <filename> selection.

Play or resume a screen

/play [id]

If there is only one active display, you can use:

/play

If there is more than one active display, use tab complete to pick the display ID.

Pause a screen

/pause [id]

If there is only one active display, you can use:

/pause

Pausing a video with audio can take a little time because CineFrame rebuilds the resource pack from the paused time.

Toggle auto replay

/autoreplay [id] [on|off]

Examples:

/autoreplay
/autoreplay on
/autoreplay trailer.mp4@world,10,65,20-14,62,20 on
/autoreplay trailer.mp4@world,10,65,20-14,62,20 off

If there is only one active display, /autoreplay toggles it. If there is more than one active display, use tab complete to pick the display ID.

Auto replay starts the video again after it reaches the end.

Remove a screen

Remove by display ID:

/delmedia <id>

Remove by coordinates:

/delmedia <x> <y> <z>

Coordinate removal is meant for players because CineFrame uses the player's current world when matching the screen.

Tab completion

CineFrame has tab completion for:

Display IDs

Display IDs are made from the file name and the screen coordinates.

They look like this:

filename.mp4@world,x1,y1,z1-x2,y2,z2

Use tab complete for /play, /pause, /autoreplay, and /delmedia so you do not have to type the full ID by hand.

Audio notes

CineFrame builds a resource pack for audio and sends it to players. If the resource pack host is set up wrong, players will see the video but will not hear audio.

The plugin picks a pack URL based on the player's connection:

Make sure the port in datapack-public-port is open if remote players need audio.

When a video is paused or resumed, CineFrame may rebuild and resend the audio pack. Audio is not ready until the player gets the resource pack update.

Current limits

Support

If you run into any issue, report it in the discord.

Please include:

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more