TikTok's technical specs are similar to YouTube Shorts but with key differences: longer duration limits, stricter audio requirements (music is core to the platform), and slightly different behavior when you upload non-native formats. TikTok also has its own in-app compression that varies by device — uploading the right source quality reduces the chance of getting muddy or over-compressed results.
TikTok video specifications
Per TikTok's creator documentation:
- Aspect ratio: 9:16 (recommended vertical). 1:1 and 16:9 are accepted but get less promotion in the For You feed.
- Resolution: 1080 × 1920 px recommended. Minimum 720 × 1280 px (TikTok upscales and adds compression).
- Container: MP4 or MOV (both recommended). WebM and AVI are accepted but with more re-encoding.
- Video codec: H.264 (AVC) preferred. H.265/HEVC accepted from mobile uploads but may not be accepted via desktop.
- Frame rate: 23.98, 24, 25, 29.97, 30, 50, or 60 fps. Constant frame rate (CFR) strongly recommended.
- Max duration: 15 seconds (old short clips), 60 seconds (standard), up to 10 minutes via desktop upload. Carousel photo format supports 2–35 images.
- Max file size: 287.6 MB per clip via app; 4GB via desktop.
- Audio codec: AAC-LC preferred. MP3 accepted. Stereo 44.1 kHz or 48 kHz.
- Audio bitrate: 192 kbps minimum recommended. 256–320 kbps for music-forward content.
- Color space: BT.709 (standard HD). HDR content is accepted on supported devices.
Recommended source-to-target pairs
| Source | Situation | Target | Notes |
|---|---|---|---|
| MP4 landscape (16:9) | Repurposing horizontal content | MP4 vertical (9:16) | Center-crop or blur-pad; 9:16 gets more FYP reach |
| MOV from iPhone | iPhone recorded in vertical | MP4 | MOV works but MP4 has more predictable behavior; transcode HEVC to H.264 |
| Screen recording (MOV/MP4) | App demos, tutorials | MP4 | Screen recordings are often VFR — convert to CFR 30fps |
| GIF | Short loops for meme content | MP4 | TikTok doesn't accept GIF uploads; convert to MP4 loop first |
| WebM | Browser exports | MP4 | WebM is not reliably accepted by TikTok upload |
| MKV (gameplay) | Repurposed gaming content | MP4 | MKV may contain subtitles/multiple audio tracks; strip and transcode |
Conversion commands (curl + Python)
# curl — convert MOV to MP4 for TikTok
curl -X POST https://changethisfile.com/v1/convert \
-H "Authorization: Bearer ctf_sk_your_key_here" \
-F "file=@raw-clip.mov" \
-F "target=mp4" \
-o tiktok-ready.mp4
import requests
from pathlib import Path
API_KEY = "ctf_sk_your_key_here"
def convert_for_tiktok(in_path: str, out_path: str) -> None:
"""Convert video to TikTok-compatible MP4."""
with open(in_path, "rb") as f:
resp = requests.post(
"https://changethisfile.com/v1/convert",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"file": f},
data={"target": "mp4"},
timeout=300,
)
resp.raise_for_status()
out = Path(out_path)
out.write_bytes(resp.content)
print(f"{out.name}: {len(resp.content) / 1e6:.1f} MB")
convert_for_tiktok("raw-clip.mov", "tiktok-ready.mp4")
For precise control over audio loudness (critical for music-forward TikToks):
# FFmpeg: convert + normalize audio to -14 LUFS (TikTok standard)
ffmpeg -i input.mov \
-vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2" \
-c:v libx264 -crf 18 -preset fast \
-c:a aac -b:a 192k -ar 48000 \
-af loudnorm=I=-14:LRA=11:TP=-1 \
-r 30 -vsync cfr \
output-tiktok.mp4
Batch script: convert clip folder for TikTok
#!/usr/bin/env bash
# Usage: ./convert_tiktok_batch.sh ./raw-clips ./tiktok-ready
API_KEY="ctf_sk_your_key_here"
INPUT_DIR="${1:-.}"
OUTPUT_DIR="${2:-./tiktok-ready}"
mkdir -p "$OUTPUT_DIR"
success=0; failed=0
for vid in "$INPUT_DIR"/*.{mp4,mov,avi,mkv,wmv,webm,gif,MP4,MOV}; do
[ -f "$vid" ] || continue
base=$(basename "$vid" | sed 's/\.[^.]*$//')
out="$OUTPUT_DIR/${base}.mp4"
printf "%-50s" "Converting $(basename $vid)..."
code=$(curl -s -o "$out" -w "%{http_code}" \
-X POST https://changethisfile.com/v1/convert \
-H "Authorization: Bearer $API_KEY" \
-F "file=@$vid" \
-F "target=mp4")
if [ "$code" = "200" ]; then
mb=$(du -m "$out" | cut -f1)
echo "OK (${mb}MB)"
((success++))
else
echo "FAILED (HTTP $code)"
rm -f "$out"
((failed++))
fi
done
echo ""
echo "Results: $success OK, $failed failed — output: $OUTPUT_DIR"
TikTok-specific gotchas
- TikTok compresses everything aggressively. Even a perfect H.264 source gets re-compressed by TikTok's servers. Upload at the highest quality you can — use CRF 18 rather than CRF 23 for better post-compression results. The extra file size is worth it.
- Audio must be in sync before upload. TikTok doesn't fix drift on upload. VFR footage (iPhone screen recordings, some Android recordings) causes progressive sync issues. Convert to CFR 30fps before upload.
- GIFs are not accepted. TikTok's upload UI shows an error for GIF files. Convert to MP4 loop before uploading.
- TikTok's own sounds vs. external audio. If you add TikTok sounds in-app, the audio is managed by the platform. If your clip has licensed music baked in from a video editor, TikTok may mute or remove it. Either use royalty-free audio or TikTok's sound library in-app.
- Desktop vs. mobile upload quality differs. TikTok's desktop upload (creator.tiktok.com) applies less aggressive compression than the mobile app. For repurposed long-form content or high-quality edits, upload via desktop.
- Captions and text on-screen. TikTok renders captions on the bottom ~20% of the frame. If you have text overlays in your video, keep them between 15% and 80% of frame height to avoid being covered by platform UI elements.
TikTok for Business / ads specs
TikTok ads have slightly tighter specs than organic content:
- In-feed ads: MP4 or MOV, H.264, 9:16 or 1:1, 5–60 seconds, min 540×960 px (1080×1920 recommended), max 500MB
- TopView ads: MP4 or MOV, 5–60 seconds, 1080×1920 px required
- Branded effects: Separate submission process, not a simple video upload
The same conversion workflow applies for ads — the key difference is duration (ads are typically 15–30 seconds) and the need for a clean first 3 seconds (shown before the skip button appears).
TikTok's technical bar is achievable with any decent encoder. The real craft is in the first 3 seconds and audio quality — those are what the platform rewards algorithmically. For format conversions, stick to MP4 + H.264. Free tier covers 1,000 conversions/month.