Last updated
TikTok Video Specifications — Examples and Reference
Creating TikTok videos that look professional requires meeting the platform's technical specifications. Here is a complete reference with examples for all key video requirements.
Recommended Video Specifications
- Aspect ratio: 9:16 (vertical, portrait mode)
- Resolution: 1080x1920 pixels (Full HD vertical)
- Frame rate: 30fps (standard) or 60fps (smooth motion)
- Video codec: H.264
- Audio codec: AAC
- File formats: MP4 or MOV
- Maximum file size: 287.6 MB (iOS), 72 MB (Android)
- Bitrate: 516 kbps minimum, 2–4 Mbps recommended
- Audio bitrate: 128 kbps or higher
Video Length Guidelines
- Minimum: 1 second
- Maximum: up to 10 minutes for most accounts
- Best for engagement: 15–60 seconds for entertainment content
- Best for tutorials/education: 1–3 minutes
- Stories/Reels-style: 15–30 seconds
Checking Video Dimensions with FFmpeg
# Check video dimensions and specs using FFmpeg
ffprobe -v quiet -print_format json -show_streams video.mp4
# Quick check of resolution and duration
ffprobe -v error -select_streams v:0 \
-show_entries stream=width,height,r_frame_rate,duration \
-of default=noprint_wrappers=1 video.mp4
Converting Video to TikTok Format with FFmpeg
# Convert a landscape video to TikTok vertical format (9:16)
# Adds black bars on top and bottom (letterbox)
ffmpeg -i input.mp4 \
-vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2" \
-c:v libx264 -crf 23 -preset medium \
-c:a aac -b:a 128k \
output_tiktok.mp4
# Crop and scale to fill 9:16 (no black bars, may crop sides)
ffmpeg -i input.mp4 \
-vf "scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920" \
-c:v libx264 -crf 23 \
-c:a aac -b:a 128k \
output_tiktok_cropped.mp4
Resize to 1080x1920
# Resize a vertical video to exactly 1080x1920
ffmpeg -i input.mp4 \
-vf "scale=1080:1920" \
-c:v libx264 -b:v 4M \
-c:a aac -b:a 128k \
output_1080x1920.mp4
# Convert MOV to MP4 (TikTok-compatible)
ffmpeg -i input.mov \
-c:v libx264 -c:a aac \
output.mp4
Checking Aspect Ratio in Python
# Python — check if a video meets TikTok specs
# Requires: pip install opencv-python
import cv2
from math import gcd
def check_tiktok_specs(video_path):
cap = cv2.VideoCapture(video_path)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = cap.get(cv2.CAP_PROP_FPS)
frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
duration = frames / fps if fps > 0 else 0
cap.release()
# Calculate aspect ratio
common = gcd(width, height)
ratio = f"{width // common}:{height // common}"
issues = []
if width != 1080 or height != 1920:
issues.append(f"Resolution {width}x{height} — recommended 1080x1920")
if fps not in (30, 60):
issues.append(f"Frame rate {fps:.1f}fps — recommended 30 or 60fps")
if duration > 600:
issues.append(f"Duration {duration:.1f}s — max 600s (10 minutes)")
return {
"resolution": f"{width}x{height}",
"aspect_ratio": ratio,
"fps": round(fps, 1),
"duration_seconds": round(duration, 1),
"issues": issues,
"tiktok_ready": len(issues) == 0
}
result = check_tiktok_specs("my_video.mp4")
print(result)
Cover Image Recommendations
- Select a frame that clearly shows the video's content
- Avoid frames with motion blur
- Use a frame with a clear, readable subject
- The cover appears at 540x960 pixels in feeds — ensure it's readable at that size
- Custom cover images: 1080x1920 pixels, JPEG or PNG
Audio Requirements
# Check and fix audio for TikTok
# Normalize audio levels
ffmpeg -i input.mp4 \
-af "loudnorm=I=-16:TP=-1.5:LRA=11" \
-c:v copy \
-c:a aac -b:a 128k \
output_normalized.mp4
# Add stereo audio if mono
ffmpeg -i input.mp4 \
-af "pan=stereo|c0=c0|c1=c0" \
-c:v copy \
-c:a aac -b:a 128k \
output_stereo.mp4
Quick Spec Checklist
- Aspect ratio is 9:16 (vertical)
- Resolution is 1080x1920 or close to it
- Frame rate is 30fps or 60fps
- Video codec is H.264
- Audio codec is AAC at 128kbps+
- File format is MP4 or MOV
- File size is under 287.6 MB
- Duration is between 1 second and 10 minutes
Meeting TikTok's technical specifications ensures your video is displayed at full quality without black bars, blurriness, or upload errors. The 1080x1920 resolution at 30fps with H.264/AAC encoding is the safe default for all content types.