BackScene is a tool designed to display video wallpapers on your Windows desktop background using MPV and weebp.
- Drag and drop to change the wallpaper folder.
[BackScene]
- display=0
- clean_memory=true
- show_logs=false
- start_minimized=true
- close_minimizes=true
- start_with_windows=true
- wallpaperPath=C:\Users\Admin\Videos\wallpapers\zidpVl1rabzWFWk_Yae Miko 4K Live Wallpaper.mp4
[Mpv]
- mute_audio=true
- shuffle=true
- play_at_startup=true
- limit_fps=true
- fps=30
- hardware_acceleration=true
- pause_on_fullscreen=true
- Display video wallpapers on your Windows desktop background.
- Utilizes MPV for video playback.
- Uses weebp for WebP image decoding.
- Show logs: Display the console logs.
- Start minimized: Start BackScene in a minimized state.
- Close minimizes: Close BackScene when minimized.
- Clean memory: Clean process memory for "BackScene" and "MPV".
- Start with windows: Launch BackScene at Windows startup.
- Mute audio: Mute the audio for the video running.
- Shuffle: Start the video randomly from the playlist folders.
- Play at startup: Start MPV when BackScene is running.
- Limit FPS: Limit the frame rate of the video.
Right-click on the BackScene icon in the system tray to access the following options:
- Start: Start MPV video.
- Stop: Stop MPV video.
- Next: Play the next video.
- Previous: Play the previous video.
- Play: Play the current video.
- Pause: Pause the current video.
- Mute: Mute the video.
- Unmute: Unmute the video.
- Show: Display the BackScene program.
- Settings: Open the settings menu.
- Help: Open the GitHub page for help.
- Exit: Exit the program.
-
Clone the Repository
git clone https://github.com/yourusername/BackScene.git
You can enhance your wallpapers with a smooth fade in/out + zoom + blur effect using MPV scripts. Place the script in the BackScene/tools/mpv/scripts/ folder.
-- crossfade_clean.lua
local fade_duration = 0.5
local zoom_factor = 1.03
local blur_sigma = 0.8 -- gblur sigma, plus propre que boxblur
local function apply_vf()
-- Guard: ne rien faire si pas de piste vidéo
local vid = mp.get_property("vid")
if not vid or vid == "no" then return end
local duration = mp.get_property_number("duration")
if not duration or duration <= fade_duration * 2 then return end
local fade_out_start = duration - fade_duration
-- Scale en entier pour éviter les artefacts de dimension impaire
-- on utilise trunc(iw*zoom) pour rester sur des valeurs paires
local vf_str = string.format(
"scale=trunc(iw*%f/2)*2:trunc(ih*%f/2)*2," ..
"gblur=sigma=%f," ..
"fade=t=in:st=0:d=%f:alpha=0," ..
"fade=t=out:st=%f:d=%f:alpha=0",
zoom_factor, zoom_factor,
blur_sigma,
fade_duration,
fade_out_start, fade_duration
)
-- "vf set" remplace tout d'un coup, sans besoin de clr séparé
local ok, err = pcall(function()
mp.commandv("vf", "set", vf_str)
end)
if ok then
mp.msg.info("Filtres appliqués: " .. vf_str)
else
mp.msg.warn("Échec application filtres: " .. tostring(err))
end
end
mp.register_event("file-loaded", function()
-- 0.5s de délai pour laisser mpv initialiser la piste vidéo
mp.add_timeout(0.5, apply_vf)
end)
mp.msg.info("crossfade_clean.lua actif")

