<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://freemwiki.com/index.php?action=history&amp;feed=atom&amp;title=Openai%2F69505485-7d60-8001-98fc-66951636b1d8</id>
	<title>Openai/69505485-7d60-8001-98fc-66951636b1d8 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://freemwiki.com/index.php?action=history&amp;feed=atom&amp;title=Openai%2F69505485-7d60-8001-98fc-66951636b1d8"/>
	<link rel="alternate" type="text/html" href="https://freemwiki.com/index.php?title=Openai/69505485-7d60-8001-98fc-66951636b1d8&amp;action=history"/>
	<updated>2026-04-04T19:46:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://freemwiki.com/index.php?title=Openai/69505485-7d60-8001-98fc-66951636b1d8&amp;diff=594940&amp;oldid=prev</id>
		<title>Lukegao: by freem.ai...</title>
		<link rel="alternate" type="text/html" href="https://freemwiki.com/index.php?title=Openai/69505485-7d60-8001-98fc-66951636b1d8&amp;diff=594940&amp;oldid=prev"/>
		<updated>2025-12-28T05:41:25Z</updated>

		<summary type="html">&lt;p&gt;by freem.ai...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
{{DISPLAYTITLE:Generate fake 90min video}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;This conversation was exported from ChatGPT&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{cite web|title=Generate fake 90min video|url=https://chatgpt.com/share/69505485-7d60-8001-98fc-66951636b1d8|publisher=ChatGPT|access-date=2025-12-27}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== gpt-5-2 ==&lt;br /&gt;
=== User: I want to generate a 1MB mp4 file that Plex thinks is 90 minutes long ===&lt;br /&gt;
I want to generate a 1MB mp4 file that Plex thinks is 90 minutes long&lt;br /&gt;
&lt;br /&gt;
=== Assistant: You can do this by lying to the container metadata duration / timescale while keeping almost no actual frames. ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The most reliable approach is FFmpeg with a very low framerate + stretched duration metadata.&lt;br /&gt;
&lt;br /&gt;
==== This produces a valid MP4 that Plex will see as ~90 minutes, while staying ~1 MB. ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ffmpeg -f lavfi -i color=c=black:s=16x16:r=0.000185 \&lt;br /&gt;
-c:v libx264 \&lt;br /&gt;
-pix_fmt yuv420p \&lt;br /&gt;
-t 5400 \&lt;br /&gt;
-movflags +faststart \&lt;br /&gt;
-profile:v baseline \&lt;br /&gt;
-level 1.0 \&lt;br /&gt;
-an \&lt;br /&gt;
90min.mp4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== - 5400 seconds = 90 minutes =====&lt;br /&gt;
* 0.000185 fps → only ~1 frame per 90 minutes&lt;br /&gt;
* Tiny resolution (16×16)&lt;br /&gt;
* No audio&lt;br /&gt;
* Baseline profile = Plex friendly&lt;br /&gt;
&lt;br /&gt;
Result:&lt;br /&gt;
* ~500 KB – 1 MB&lt;br /&gt;
* Plex reports 1h 30m duration&lt;br /&gt;
* Plays instantly (or “ends” immediately depending on client)&lt;br /&gt;
&lt;br /&gt;
==== If you want to keep exactly one frame and force duration metadata: ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ffmpeg -loop 1 -i black.png \&lt;br /&gt;
-c:v libx264 \&lt;br /&gt;
-t 5400 \&lt;br /&gt;
-video_track_timescale 1000 \&lt;br /&gt;
-movflags +faststart \&lt;br /&gt;
-an \&lt;br /&gt;
90min.mp4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where black.png is a single black pixel or tiny image.&lt;br /&gt;
&lt;br /&gt;
This relies on MP4 timing metadata, which Plex respects.&lt;br /&gt;
&lt;br /&gt;
==== Run: ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ffprobe 90min.mp4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look for:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;Duration: 01:30:00.00&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If ffprobe sees it correctly, Plex almost certainly will.&lt;br /&gt;
&lt;br /&gt;
==== - Plex does not validate frame density ====&lt;br /&gt;
* Plex trusts MP4 duration atom&lt;br /&gt;
* Avoid MKV — Plex recalculates duration sometimes&lt;br /&gt;
* No audio = smaller file and fewer playback issues&lt;br /&gt;
&lt;br /&gt;
==== I can: ====&lt;br /&gt;
* Tune this to exactly 1.00 MB&lt;br /&gt;
* Make Plex think it’s TV-episode length instead&lt;br /&gt;
* Embed fake chapter markers&lt;br /&gt;
* Make it seekable or non-seekable&lt;br /&gt;
* Generate a version that never actually plays but still scans cleanly&lt;br /&gt;
&lt;br /&gt;
Just say the word.&lt;br /&gt;
&lt;br /&gt;
=== User: Cam you comment that ffmpeg example to be able to modify it? ===&lt;br /&gt;
Cam you comment that ffmpeg example to be able to modify it?&lt;br /&gt;
&lt;br /&gt;
=== Assistant: Absolutely — here’s the same FFmpeg command fully commented line-by-line, plus notes on what you can safely change. ===&lt;br /&gt;
Absolutely — here’s the same FFmpeg command fully commented line-by-line, plus notes on what you can safely change.&lt;br /&gt;
&lt;br /&gt;
==== Commented FFmpeg command (90-minute, ~1MB MP4) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ffmpeg \&lt;br /&gt;
  -f lavfi \                         # Use FFmpeg&amp;#039;s built-in filter system as the input&lt;br /&gt;
  -i color=c=black:s=16x16:r=0.000185 \  # Generate a black video:&lt;br /&gt;
                                      #   c=black   → color&lt;br /&gt;
                                      #   s=16x16   → resolution (smaller = smaller file)&lt;br /&gt;
                                      #   r=0.000185 → frames per second (~1 frame per 90 min)&lt;br /&gt;
&lt;br /&gt;
  -c:v libx264 \                     # Encode video using H.264 (best Plex compatibility)&lt;br /&gt;
  -pix_fmt yuv420p \                 # Pixel format Plex expects&lt;br /&gt;
  -t 5400 \                          # Total duration in seconds (5400 = 90 minutes)&lt;br /&gt;
&lt;br /&gt;
  -movflags +faststart \             # Move MP4 metadata to beginning of file (streaming-friendly)&lt;br /&gt;
  -profile:v baseline \              # Baseline profile for max device compatibility&lt;br /&gt;
  -level 1.0 \                       # Very low H.264 level (fits tiny resolution)&lt;br /&gt;
&lt;br /&gt;
  -an \                              # Disable audio (saves space)&lt;br /&gt;
  90min.mp4                          # Output filename&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Common modifications (safe to tweak) ====&lt;br /&gt;
&lt;br /&gt;
===== ⏱ Change the duration =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;-t 3600   # 60 minutes&lt;br /&gt;
-t 2700   # 45 minutes&lt;br /&gt;
-t 10800  # 3 hours&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Formula:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;seconds = minutes × 60&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 📐 Change resolution =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;s=8x8     # even smaller&lt;br /&gt;
s=32x32   # still tiny&lt;br /&gt;
s=64x64   # larger but still small file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: ⚠️ Stick to multiples of 2 for H.264.&lt;br /&gt;
&lt;br /&gt;
===== 🎞 Change “frame density” (size control) =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;r=0.0001   # fewer frames → smaller file&lt;br /&gt;
r=0.001    # more frames → larger file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Approximate relationship:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;frames = duration × fps&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For 90 minutes:&lt;br /&gt;
* 0.000185 ≈ 1 frame total&lt;br /&gt;
* 0.001 ≈ 5 frames&lt;br /&gt;
* 0.01 ≈ 54 frames&lt;br /&gt;
&lt;br /&gt;
===== 📦 Targeting file size more precisely =====&lt;br /&gt;
&lt;br /&gt;
Add a bitrate cap:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;-b:v 1k    # 1 kbps video bitrate&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;-b:v 1k -maxrate 1k -bufsize 2k&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This lets you dial the file toward exact size targets (like exactly 1.00 MB).&lt;br /&gt;
&lt;br /&gt;
==== Want audio but still tiny? ====&lt;br /&gt;
&lt;br /&gt;
Add silent audio (Plex sometimes likes this):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;-f lavfi -i anullsrc=channel_layout=mono:sample_rate=8000 \&lt;br /&gt;
-c:a aac -b:a 1k&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Add before output filename.)&lt;br /&gt;
&lt;br /&gt;
==== Quick validation ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ffprobe 90min.mp4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;Duration: 01:30:00.00&lt;br /&gt;
Stream #0: Video: h264&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TL;DR — knobs you’ll actually touch ====&lt;br /&gt;
&lt;br /&gt;
| Goal               | Change                     |&lt;br /&gt;
| ------------------ | -------------------------- |&lt;br /&gt;
| Duration           | -t                         |&lt;br /&gt;
| File size          | r=, s=, -b:v               |&lt;br /&gt;
| Plex compatibility | Keep libx264, yuv420p, MP4 |&lt;br /&gt;
| Ultra-small        | Lower r, lower s, no audio |&lt;br /&gt;
&lt;br /&gt;
If you want, I can:&lt;br /&gt;
* Calculate exact FPS for exactly N frames&lt;br /&gt;
* Produce a 1.00 MB ± 1 KB version&lt;br /&gt;
* Make Plex think it’s HDR / 4K / Dolby Vision&lt;br /&gt;
* Make it scan as movie vs episode&lt;br /&gt;
&lt;br /&gt;
Just tell me the constraints.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ChatGPT Shares]]&lt;br /&gt;
[[Category:openai]]&lt;/div&gt;</summary>
		<author><name>Lukegao</name></author>
	</entry>
</feed>