Thumbnail problems
Wrong cover on TikTok: it is a frame of your video
Short answer
TikTok's help does not document uploading a separate cover image for a video post. Its developer documentation describes the cover as a frame of the video: video_cover_timestamp_ms specifies which frame is used, and if it is not set or the value is invalid the cover is set to the first frame of the uploaded video. That is why a TikTok cover looks wrong when your first frame is a black frame, a fade-in or a busy transition, and why the fix is to make the first second of the clip carry the point.
Key takeaways
- The cover is a frame of your video, not an uploaded image.
- TikTok's API takes video_cover_timestamp_ms; unset or invalid means the first frame.
- Make frame zero a readable, centered title or face, not a fade-in.
- TikTok's making-a-post help documents an Edit cover option in the photo post flow.
- Text in the cover still has to clear the areas the interface covers.
Find your case
| What you see | What it usually means | Do this |
|---|---|---|
| Cover is black or a blurred frame | The first frame carries no information | Start the clip on a usable frame (step 2) |
| Cover shows a transition | The chosen frame lands mid-cut | Choose a frame with a steady composition (step 3) |
| Cover text is cut off | Text sits under the caption and button column | Move it into the safe zone (step 4) |
| You want to upload a separate image | No cover image upload is documented for video posts | Put the design in the first frame instead (step 2) |
| Cover differs from what you picked | The value was not valid, so the first frame was used | Use a millisecond value inside the clip's length (step 3) |
| Photo post cover is wrong | The photo flow has its own Edit cover option | Use Edit cover in that flow (step 5) |
Fix it step by step
Know what TikTok actually documents
TikTok's Content Posting API reference lists video_cover_timestamp_ms as an int32 that specifies which frame, measured in milliseconds, is used as the video cover, and states that if it is not set or the specified value is invalid the cover is set to the first frame of the uploaded video. The organic app flow documents the same idea rather than an image upload.
Design frame zero
Put your title, face or product in the first frame, centered and static. If the video opens with a fade or a title animation, the cover is that washed-out frame. Trim the empty head with
ffmpeg -i in.mp4 -ss 00:00:00 -t 0.5 -c copy trimmed.mp4, or hold the first frame longer with a freeze.Choose a steady frame, not a transition
A frame captured mid-cut has half of one shot and half of another. Render candidates and look at them as stills:
ffmpeg -i in.mp4 -ss 00:00:02 -frames:v 1 -q:v 2 frame.jpg. Any frame inside the clip's duration is valid; outside it, TikTok falls back to the first frame.Keep cover text clear of the interface
The cover is shown in contexts that carry captions and buttons. TikTok's ad help states the safe zone depends on the format and the caption length and offers downloadable safe-zone files; use them to check a placement before you commit to it.
Use Edit cover where TikTok documents it
TikTok's making-a-post help lists Edit cover in the photo post flow, between Next and Publish. For video posts the documented cover control is the frame of the clip, so the design has to be in the picture.
Add postPhotoUploadNextEdit cover
If the whole post needs a poster frame, composite one
ffmpeg -i in.mp4 -i poster.jpg -filter_complex "[0:v][1:v]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2:enable='lt(t,1)'" -c:a copy posterized.mp4overlays a still for the first second, so frame zero carries the design and the clip continues underneath.
Safe area for a 1080×1920 video
| Edge | Keep text out of | Pixels |
|---|---|---|
| Top | 12.5% | 240 px |
| Bottom | 34.4% | 660 px |
| Left | 11.1% | 120 px |
| Right | 11.1% | 120 px |
| Button column | x 72-89%, y 44-66% | 780-960 × 840-1260 px |
Official guidance. Source: TikTok Auction In-Feed Ads: Safe zone files (TikTok Ads Help), checked 2026-10-03. Published for TikTok In-Feed ads. Organic posts can differ, and the right-hand button column (shaded) is excluded as well.
TikTok cover behavior, as documented
| Cover source | A frame of the uploaded video · not an uploaded image |
|---|---|
| API field | video_cover_timestamp_ms |
| Default | First frame of the uploaded video |
| Invalid value | Falls back to the first frame |
| Photo posts | Edit cover is documented in the photo flow |
| Safe zone | Depends on format and caption length, with safe-zone files |
A cover checklist that takes a minute
- Look at frame zero as a still image. Is it readable at small size?
- Is the subject centered, given that crops differ by surface?
- Is any cover text inside the safe zone?
- Does the first second say what the post is about?
- Only then upload; the cover is whatever that frame is.
Frequently asked questions
How do I choose the cover on a TikTok video?
The cover is a frame of the video. TikTok's API takes video_cover_timestamp_ms to say which frame, and defaults to the first frame when it is unset or invalid, so make your first frame the one you want.
Can I upload a custom cover image on TikTok?
No cover image upload is documented for TikTok video posts. TikTok's making-a-post help lists Edit cover for photo posts, and its developer documentation treats a video cover as a frame of the video.
Why is my TikTok cover a black frame?
The first frame of your clip is probably a fade-in or an empty shot. TikTok falls back to the first frame when no cover frame is set, so start the clip on the frame you want shown.
Why does my TikTok cover text get covered?
The cover is shown in surfaces that carry captions and buttons. TikTok's ad help says the safe zone depends on the format and caption length and provides safe-zone files to check placement.
Sources
- TikTok for Developers: Content Posting API reference (video_cover_timestamp_ms) (official, checked 2026-10-07)
- TikTok Help: Making a post (official, checked 2026-10-07)
- TikTok Ads Help: Auction In-Feed Ads (formats, safe zone) (official, checked 2026-10-07)
- FFmpeg Documentation: Command line options (-map, -c copy, -itsoffset) (official, checked 2026-10-07)
- FFmpeg Documentation: Video filters (crop, pad, scale, setsar, subtitles) (official, checked 2026-10-07)
Reviewed 2026-10-07. Steps not attributed to a source are general video practice or computed above.