Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
freem
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Openai/69505485-7d60-8001-98fc-66951636b1d8
Add languages
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{DISPLAYTITLE:Generate fake 90min video}} ''This conversation was exported from ChatGPT''<ref>{{cite web|title=Generate fake 90min video|url=https://chatgpt.com/share/69505485-7d60-8001-98fc-66951636b1d8|publisher=ChatGPT|access-date=2025-12-27}}</ref> == gpt-5-2 == === User: I want to generate a 1MB mp4 file that Plex thinks is 90 minutes long === I want to generate a 1MB mp4 file that Plex thinks is 90 minutes long === Assistant: You can do this by lying to the container metadata duration / timescale while keeping almost no actual frames. === You can do this by lying to the container metadata (duration / timescale) while keeping almost no actual frames. Plex relies heavily on MP4 container metadata, not actual frame count. The most reliable approach is FFmpeg with a very low framerate + stretched duration metadata. ==== This produces a valid MP4 that Plex will see as ~90 minutes, while staying ~1 MB. ==== <syntaxhighlight lang="bash">ffmpeg -f lavfi -i color=c=black:s=16x16:r=0.000185 \ -c:v libx264 \ -pix_fmt yuv420p \ -t 5400 \ -movflags +faststart \ -profile:v baseline \ -level 1.0 \ -an \ 90min.mp4 </syntaxhighlight> ===== - 5400 seconds = 90 minutes ===== * 0.000185 fps → only ~1 frame per 90 minutes * Tiny resolution (16×16) * No audio * Baseline profile = Plex friendly Result: * ~500 KB – 1 MB * Plex reports 1h 30m duration * Plays instantly (or “ends” immediately depending on client) ==== If you want to keep exactly one frame and force duration metadata: ==== <syntaxhighlight lang="bash">ffmpeg -loop 1 -i black.png \ -c:v libx264 \ -t 5400 \ -video_track_timescale 1000 \ -movflags +faststart \ -an \ 90min.mp4 </syntaxhighlight> Where black.png is a single black pixel or tiny image. This relies on MP4 timing metadata, which Plex respects. ==== Run: ==== <syntaxhighlight lang="bash">ffprobe 90min.mp4 </syntaxhighlight> Look for: <syntaxhighlight>Duration: 01:30:00.00 </syntaxhighlight> If ffprobe sees it correctly, Plex almost certainly will. ==== - Plex does not validate frame density ==== * Plex trusts MP4 duration atom * Avoid MKV — Plex recalculates duration sometimes * No audio = smaller file and fewer playback issues ==== I can: ==== * Tune this to exactly 1.00 MB * Make Plex think it’s TV-episode length instead * Embed fake chapter markers * Make it seekable or non-seekable * Generate a version that never actually plays but still scans cleanly Just say the word. === User: Cam you comment that ffmpeg example to be able to modify it? === Cam you comment that ffmpeg example to be able to modify it? === Assistant: Absolutely — here’s the same FFmpeg command fully commented line-by-line, plus notes on what you can safely change. === Absolutely — here’s the same FFmpeg command fully commented line-by-line, plus notes on what you can safely change. ==== Commented FFmpeg command (90-minute, ~1MB MP4) ==== <syntaxhighlight lang="bash">ffmpeg \ -f lavfi \ # Use FFmpeg's built-in filter system as the input -i color=c=black:s=16x16:r=0.000185 \ # Generate a black video: # c=black → color # s=16x16 → resolution (smaller = smaller file) # r=0.000185 → frames per second (~1 frame per 90 min) -c:v libx264 \ # Encode video using H.264 (best Plex compatibility) -pix_fmt yuv420p \ # Pixel format Plex expects -t 5400 \ # Total duration in seconds (5400 = 90 minutes) -movflags +faststart \ # Move MP4 metadata to beginning of file (streaming-friendly) -profile:v baseline \ # Baseline profile for max device compatibility -level 1.0 \ # Very low H.264 level (fits tiny resolution) -an \ # Disable audio (saves space) 90min.mp4 # Output filename </syntaxhighlight> ==== Common modifications (safe to tweak) ==== ===== ⏱ Change the duration ===== <syntaxhighlight lang="bash">-t 3600 # 60 minutes -t 2700 # 45 minutes -t 10800 # 3 hours </syntaxhighlight> Formula: <syntaxhighlight>seconds = minutes × 60 </syntaxhighlight> ===== 📐 Change resolution ===== <syntaxhighlight lang="bash">s=8x8 # even smaller s=32x32 # still tiny s=64x64 # larger but still small file </syntaxhighlight> : ⚠️ Stick to multiples of 2 for H.264. ===== 🎞 Change “frame density” (size control) ===== <syntaxhighlight lang="bash">r=0.0001 # fewer frames → smaller file r=0.001 # more frames → larger file </syntaxhighlight> Approximate relationship: <syntaxhighlight>frames = duration × fps </syntaxhighlight> For 90 minutes: * 0.000185 ≈ 1 frame total * 0.001 ≈ 5 frames * 0.01 ≈ 54 frames ===== 📦 Targeting file size more precisely ===== Add a bitrate cap: <syntaxhighlight lang="bash">-b:v 1k # 1 kbps video bitrate </syntaxhighlight> Example: <syntaxhighlight lang="bash">-b:v 1k -maxrate 1k -bufsize 2k </syntaxhighlight> This lets you dial the file toward exact size targets (like exactly 1.00 MB). ==== Want audio but still tiny? ==== Add silent audio (Plex sometimes likes this): <syntaxhighlight lang="bash">-f lavfi -i anullsrc=channel_layout=mono:sample_rate=8000 \ -c:a aac -b:a 1k </syntaxhighlight> (Add before output filename.) ==== Quick validation ==== <syntaxhighlight lang="bash">ffprobe 90min.mp4 </syntaxhighlight> Expected: <syntaxhighlight>Duration: 01:30:00.00 Stream #0: Video: h264 </syntaxhighlight> ==== TL;DR — knobs you’ll actually touch ==== | Goal | Change | | ------------------ | -------------------------- | | Duration | -t | | File size | r=, s=, -b:v | | Plex compatibility | Keep libx264, yuv420p, MP4 | | Ultra-small | Lower r, lower s, no audio | If you want, I can: * Calculate exact FPS for exactly N frames * Produce a 1.00 MB ± 1 KB version * Make Plex think it’s HDR / 4K / Dolby Vision * Make it scan as movie vs episode Just tell me the constraints. == References == <references /> [[Category:ChatGPT Shares]] [[Category:openai]]
Summary:
Please note that all contributions to freem are considered to be released under the Creative Commons Attribution-ShareAlike 4.0 (see
Freem:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Cite web
(
edit
)
Module:Citation/CS1
(
edit
)
Module:Citation/CS1/COinS
(
edit
)
Module:Citation/CS1/Configuration
(
edit
)
Module:Citation/CS1/Date validation
(
edit
)
Module:Citation/CS1/Identifiers
(
edit
)
Module:Citation/CS1/Utilities
(
edit
)
Module:Citation/CS1/Whitelist
(
edit
)
Module:Citation/CS1/styles.css
(
edit
)