Back to blog

How to Upload Video to Twitter Without Losing Quality

Learn how to upload video to Twitter on web and mobile, fix common upload errors, follow X's file specs, and schedule posts like a pro

15 min read
How to Upload Video to Twitter Without Losing Quality

You've exported a sharp video, attached it to a post, and watched the upload stall at the worst possible moment. Or it publishes successfully, but the picture looks soft, the opening frame is useless, and you're left re-encoding the same file for desktop, iPhone, Android, and a scheduling tool.

The reliable answer to how to upload video to Twitter, now X, is to stop treating it as one click. Use a three-part pipeline: export the right file, attach it on the right surface, then publish or schedule without creating unnecessary copies. X's limits vary by account tier, device, and upload path, so a file that works in one workflow can fail in another.

Table of Contents

What Twitter/X Actually Accepts Before You Upload

The export is the most important stage because it determines whether X can process the file cleanly. Start with an MP4 container, H.264 video, and AAC audio. X also supports MOV in common upload workflows, but MP4 is the safer default when you're trying to avoid compatibility surprises. The platform documents a minimum video duration of 0.5 seconds, a standard post-video file-size ceiling of 8 GB, and expanded limits for Premium or verified accounts through its developer documentation, while ordinary web and app uploads have more restrictive practical limits. See the current X video length guide before exporting a long clip.

For everyday posts, render at 1280×720 or 1920×1080, using 30 or 60 FPS. X's media guidance recommends a video bitrate of 5 to 8 Mbps, with a maximum frame rate of 60 FPS. A conservative 720p or 1080p export gives X a cleaner source to process than a huge, unusual master file. Keep the audio as AAC and avoid adding unsupported or unnecessary audio tracks.

The public posting ceiling depends on your account and surface. Non-Premium users can upload videos up to 140 seconds, while Premium subscribers can upload up to 4 hours on x.com and iOS, or 10 minutes on Android, according to X's current longer-video guidance. The API has separate categories and limits, including a standard post-video cap of 20 minutes and 8 GB, with Premium or verified accounts reaching 125 minutes and 16 GB in the documented conditions.

Practical rule: Export for the exact X account and surface that will publish the file. Don't export a long master and hope the composer will solve the mismatch.

Spec Standard Premium
Public upload duration Up to 140 seconds Up to 4 hours on x.com and iOS, or 10 minutes on Android
Recommended delivery MP4 or MOV, H.264 video, AAC audio Same baseline, with expanded upload access
Playback guidance Up to 720p playback Up to 1080p playback
Recommended bitrate 5 to 8 Mbps 5 to 8 Mbps
Maximum frame rate 60 FPS 60 FPS

If you want more context on using duration strategically rather than chasing the maximum, SuperX's guide to boost video engagement on X is a useful companion. For presets, HandBrake's Social preset, a lightly reduced Adobe Premiere Vimeo 1080p export, and Final Cut's Apple Devices preset are practical starting points. Check the resulting file before upload, because presets can still produce a file that exceeds your account's limit.

Uploading Video on X Web from Your Desktop

On desktop, open x.com and return to the Home timeline. The post composer sits in the feed, and the media icon opens your file picker. Choose the finished MP4 or MOV from your computer, then wait for the preview to appear inside the composer.

Screenshot from https://x.com/compose/post

Once X accepts the file, the composer shows playback controls and an upload progress indicator. The progress bar covers both transfer and server-side processing, so a file that has reached the browser may still need time before it's ready to publish. You can write the post copy while the video processes, but don't click Post until the preview plays and the attachment is visibly complete.

The standard public limit for a non-Premium account is 140 seconds, which equals two minutes and twenty seconds. If your clip runs longer, trim it in your editor first rather than relying on a last-second adjustment in the composer. For a short clip, X may offer an auto-loop behavior, but it's still worth watching the preview once to confirm that the beginning and ending don't create an awkward jump.

Review the attachment before publishing

Look at the video as a viewer would. Check the first frame, crop, audio, captions, and whether an accidental image or second file is attached. Remove any unwanted attachment directly from the composer before publishing, because X won't give you a dependable way to repair the media after the post goes live.

X's own documentation recommends common delivery sizes such as 1280×720 for horizontal, 720×1280 for portrait, and 720×720 for square, alongside MP4 or MOV, H.264, AAC, and 30 or 60 FPS. If processing keeps failing, compare the export against the X media API documentation rather than repeatedly uploading the same file.

The web composer is useful for immediate publishing, but drafts aren't officially supported on the web in the same way creators often expect. If you need to prepare several posts without leaving them open in browser tabs, scheduling is the cleaner route.

Here's the upload and preview flow in motion:

Posting Video from iPhone and Android Apps

The mobile workflow starts the same way on both platforms. Open the X app, tap the compose icon, tap the media icon in the lower-left of the composer, and choose either Record Video or Library. Select the clip, let X load it into the composer, trim the beginning or end if needed, then add the caption and publish.

Screenshot from https://x.com/compose/post

The account and device distinction matters. X's current help guidance lists up to 4 hours on iOS for Premium subscribers, while Android Premium uploads can reach 10 minutes. Non-Premium public uploads remain limited to 140 seconds. Don't assume that a Premium entitlement on one device automatically gives the same duration on every upload path.

The cross-device codec problem

An iPhone clip recorded in 4K HEVC may sit in iCloud without trouble, then fail when you try to pull it into the Android app. That's usually a codec compatibility issue, not a problem with the camera or the account. Re-export the clip as H.264 in an MP4 container before moving it between devices.

The in-app trim handle is useful for a quick reduction. Drag the handles inward until the clip fits the account's duration limit, then watch the selected range before posting. Trimming inside X is fine for removing dead air, but it isn't a replacement for a proper editor when you need clean captions, intentional cuts, or a controlled first frame.

Upload progress can pause while the app processes the file. Keep the app open long enough to confirm that the preview is ready, and use a stable connection when the file is large. If you're working with multiple versions, a consistent draft workflow matters. This guide to finding Twitter drafts can help you avoid losing captions while switching between unfinished posts.

Fixes for the Most Common Upload Errors

Most failed uploads belong to one of three practical groups: spec mismatch, size or duration limits, and network or permissions problems. Diagnose the file before blaming the app. A retry with the same export usually wastes time.

A troubleshooting infographic illustrating common video upload errors and their solutions categorized into three main sections.

Start with the file, not the button

If the upload fails immediately, inspect the file in MediaInfo. Check the container, video codec, audio codec, frame rate, resolution, duration, and size. The safest baseline is MP4 with H.264 video and AAC audio, exported at a standard frame rate.

  • Unsupported codec: Re-encode the source in HandBrake or your editor using H.264 and AAC.
  • Odd container: Export an MP4 copy rather than repeatedly retrying a less common wrapper.
  • Variable frame rate: Create a constant-frame-rate export, especially for screen recordings and phone footage.
  • Unexpected audio track: Remove unusual or unnecessary tracks and keep a standard AAC mix.

The X upload best-practices documentation recommends a bitrate of 5 to 8 Mbps, a maximum frame rate of 60 FPS, and conservative 720p or 1080p delivery. Use those recommendations as a starting point when a file technically opens on your computer but fails during X processing.

Check size, duration, and entitlement

A standard public upload must stay within 140 seconds, and direct-message video has its own separate ceiling of 140 seconds and 512 MB for non-Premium accounts, according to X's developer documentation. Premium and verified accounts have expanded limits that differ by media category and upload path. If the file is too long or too large, trim it, lower the bitrate, or split the content before trying again.

A processing stall can also point to a corrupt export or a problematic keyframe structure. Re-export from the original project instead of compressing an already compressed social download. If the same clean export works in another account but not yours, check account status, app permissions, and whether the account has hit a posting restriction.

Treat network failures separately

A stalled transfer usually needs a stable connection, not another codec change. Retry from a reliable network, confirm that the X app can access your media library, and check whether the media button is missing because of account restrictions or an app state problem. Rapid-fire publishing can also trigger platform limits, so pause rather than repeatedly hammering the composer.

For workflows involving assets larger than ordinary post files, keep this reference on large file uploads with SleekPost available. It's easier to solve the limit before handoff than after a scheduled post fails.

Optimization Tips That Make Your Video Perform

A technically valid upload can still disappear in the feed. The viewer decides whether to continue from the opening image, the first movement, and the text visible before sound becomes relevant. Treat those elements as part of the upload pipeline, not as finishing touches.

Build for silent first impressions

Burn captions into the video when the spoken message matters. X's automatic captioning can misread names, product terms, and technical language, while burned-in text gives you control over timing and readability. Keep captions large enough for a phone screen and place them where the post interface won't cover them.

The thumbnail deserves the same attention. Choose a frame with a clear face, strong contrast, or a short readable statement instead of leaving X to select a black opening slate or a mid-blink frame. A thumbnail can't make a weak idea strong, but it can stop a good idea from looking accidental.

The first frame should explain why the viewer should stay, even with the audio muted.

Open with the payoff. Replace a slow greeting or setup with the claim, result, question, or visual change that gives the viewer a reason to continue. For a product demo, show the changed screen first. For a talking-head clip, put the central argument in the opening text rather than burying it after an introduction.

Match packaging to the feed

Use 16:9 when the content is designed for desktop viewing, presentations, or wide screen recordings. Use 9:16 when the clip is mobile-first and depends on a tall composition. The right choice preserves faces, interface details, and on-screen text without forcing viewers to interpret a badly cropped frame. This reference on vertical video dimensions is useful when you're adapting one master for several platforms.

Hashtags should clarify the topic, not fill the caption. A small number of specific tags is easier for a relevant viewer to understand than a block of generic labels. Native uploads also keep the viewing experience inside X, while an external video link sends the viewer away from the feed and adds another decision before playback.

If you're publishing the same campaign across several networks, read this guide to multi-platform posting without quality loss before creating separate exports. Keep a clean master, then make platform-specific copies where dimensions, captions, or duration require them.

Scheduling and Publishing Video Posts with SleekPost

Manual posting works for an occasional clip. It becomes inefficient when you're publishing a series, managing several accounts, or adapting one video for different channels. SleekPost can sit after the export stage as the publishing layer, so you don't have to re-upload the same finished file in multiple apps.

Connect the X account through OAuth, upload the approved video to the media library, and reuse that media entry when you create posts. Attach the file to a draft in the composer, write the X-specific copy, then place the post in a queue slot or recurring schedule. The important distinction is that you're reusing one approved asset rather than creating a new upload every time the caption changes.

A batch workflow for recurring video

A practical weekly routine looks like this:

  • Prepare the media: Export the X-ready MP4, inspect it, and upload the final version to the media library.
  • Create variations: Attach the same video to separate drafts with different hooks, context, or calls to reply.
  • Use the calendar: Place the posts across the queue rather than logging in for each individual publication.
  • Set recurring rules: For a weekly series, reuse the media library entry while refreshing the caption and supporting text.
  • Review before handoff: Check the preview, account, time, and attachment before scheduling.

The tool enforces supported formats and a 512 MB ceiling before handing the file to X. That validation is useful because it moves a basic failure earlier in the workflow, when you can still replace the asset instead of discovering the problem at publication time. You'll still need to respect X's account-specific duration and entitlement rules.

Screenshot from https://app.sleekpost.com/compose

The calendar view is particularly useful for batching. A social manager can prepare a week of clips in one sitting, assign queue slots, and let the publishing workflow handle the handoff. If you're comparing approaches, the Twitter scheduling workflow provides the relevant setup path.

SleekPost doesn't replace export quality control. It removes the repetitive attach, re-upload, and timing work after the file is ready. That separation keeps the process clean: the editor owns the render, the scheduler owns distribution, and X receives a file that has already passed your checks.

Your Repeatable Twitter Video Upload Checklist

Run the same checklist before every upload. It prevents the most expensive mistake, which isn't a failed post. It's publishing a flawed version, deleting it, re-exporting, and rebuilding the caption from memory.

Export

  • Codec: Use H.264 video with AAC audio.
  • Container: Choose MP4 as the default.
  • Dimensions: Select 1280×720, 720×1280, 720×720, or a suitable 1080p version for the composition.
  • Frame rate: Keep it at 30 or 60 FPS, with a consistent export.
  • Bitrate: Stay within X's recommended 5 to 8 Mbps range.
  • Duration and size: Verify the account tier, surface, duration, and file-size ceiling before upload.

Attach

Open the composer on x.com or in the mobile app, attach the finished file, and wait for processing. Review the crop, first frame, captions, audio, alt text, and thumbnail before you publish. The two checks creators skip most often are the export bitrate and the thumbnail frame, and both can make a technically successful post look poor.

Publish or schedule

Post immediately when timing matters. Otherwise, place the approved asset in a queue through your scheduler and reuse the media library entry for future caption variations. That approach reduces re-uploads and keeps the final file consistent across the publishing cycle.

Pin this checklist beside your editor. Run it during every render, not after an upload has already failed.


SleekPost lets you connect X, store approved video files in a media library, customize captions, and schedule or queue posts without repeating the same upload ritual. Visit SleekPost to set up a cleaner export-to-publish workflow and keep your X video calendar moving.