Supplier videos aren't ready for TikTok
Your supplier sends product videos. They're 16:9, have the supplier's watermark, inconsistent audio, and look like every other dropshipper's listing. Upload them raw to TikTok Shop and you'll blend into the sea of identical content.
The gap between supplier video and TikTok-ready content is where most dropshippers get stuck. They either post the raw video and get no traction, or spend $5-15 per video on freelance editing that eats into already-thin margins.
FFmpeg bridges this gap. Crop the watermark, add your brand, create variations, format for TikTok. All automated. If you're unfamiliar with FFmpeg commands, the FFmpeg command reference has the fundamentals.
The supplier video problems
Watermarks
Most suppliers watermark their product videos. Common positions: bottom-right corner, center overlay, top banner. You can't use the supplier's branding on your TikTok Shop. It looks unprofessional and some platforms flag it.
For more on watermark techniques (opacity, positioning, animation), the watermark guide goes deep.
Wrong format
Supplier videos are typically:
16:9 or 4:3 aspect ratio (TikTok needs 9:16)
1080p or 720p landscape
Often lower quality from phone recordings in warehouses
No branding
Generic supplier video with no brand identity means customers can't distinguish you from 50 other sellers with the same product.
Audio issues
Background noise from the factory or warehouse. No music. Inconsistent volume. Sometimes no audio at all.
Dropshipping video automation with FFmpeg
Step 1: Remove supplier watermark by cropping
For bottom-right watermarks (most common):
This removes the bottom 100 pixels. Adjust based on watermark size. Measure the watermark area by opening the video in any player and noting the pixel dimensions.
For corner watermarks, the delogo filter blurs a specific region instead of cropping:
delogo interpolates surrounding pixels to fill the watermark area. It works well on simple backgrounds but leaves visible smearing on detailed scenes. For those cases, cropping is cleaner.
For center watermarks (the hardest to deal with), you have two options. Crop above and below the watermark and join the pieces, or accept some content loss and crop to the portion of the frame that's clean:
Step 2: Convert to 9:16
TikTok's native format is 1080x1920 (9:16 portrait). Landscape supplier footage needs to be cropped and scaled:
The force_original_aspect_ratio=increase flag scales the video so the smaller dimension fills the target, then crop trims the excess. This avoids black bars, but you lose some content from the edges. For product videos, center-cropping usually works fine because the product is in the middle of the frame.
If your supplier sends vertical video already (some do for TikTok-aware suppliers), skip this step.
Step 3: Add your branding
This adds a semi-transparent logo in the top-right corner and your handle text in the bottom-left. The aa=0.5 sets 50% opacity on the logo so it doesn't overpower the product footage.
Step 4: Fix audio
Replace factory audio with music:
Or normalize existing audio and add music underneath:
The loudnorm filter normalizes volume to broadcast standards (-14 LUFS). Mixing the original audio with background music at 15% volume gives you a professional sound without drowning out product demos that have voiceover.
TikTok Shop video requirements
Before processing, know the platform specs:
Aspect ratio: 9:16 (1080x1920 preferred)
Max file size: 287MB (under 500MB for some regions)
Max duration: 10 minutes, but 15-60 seconds performs best
Codec: H.264 (libx264) is safest; H.265 support varies by device
Audio: AAC, 128kbps minimum
Frame rate: 30fps recommended (TikTok re-encodes to 30fps anyway)
If your supplier videos exceed 10 minutes, trim them before processing. The -t 15 flag in the audio step already handles duration, but explicit trimming gives you control over which 15 seconds to keep.
Combined pipeline
All steps in one command (assuming bottom watermark, no music replacement):
The -map_metadata -1 flag strips all metadata from the output. This matters for two reasons: it removes the supplier's identifying information, and it prevents TikTok from using metadata for duplicate detection. Read more about making video variations unique for the full picture on what TikTok checks.
Automate with RenderIO API
Single video
For the full submit-poll-download pattern, see the FFmpeg API guide.
Batch process supplier catalog
Create variations per product
After base processing, create 5 unique variations per product to post across multiple accounts. Each variation applies different visual filters so TikTok's fingerprinting system treats them as distinct uploads. The duplicate detection guide explains what TikTok checks and why these specific filters work.
200 products × (1 base + 5 variations) = 1,200 API calls. The Growth plan (99/mo, 20,000 commands) gives you plenty of headroom.
Troubleshooting
Cropped video looks stretched or squished: The force_original_aspect_ratio flag only works correctly when paired with crop or pad. If your output looks distorted, check that you have both scale and crop in the filter chain. Scale alone will stretch the video to fit the target dimensions.
Audio disappears after processing: The -map 0:a? flag (note the ?) makes audio optional. If the supplier video has no audio track, FFmpeg skips it instead of failing. But if you then try to mix in background music, the amix filter will fail because there's no input audio to mix. Check for audio first with ffprobe -v error -select_streams a:0 -show_entries stream=codec_name input.mp4.
TikTok rejects the upload: Usually a file size issue. TikTok Shop has a 287MB limit in most regions. Long supplier videos at CRF 20 can exceed this. Either trim the video shorter or increase CRF to 24-26 (smaller file, slightly lower quality).
Variations look identical to the eye: They're supposed to. The differences are in the encoding: different CRF values, pixel-level noise, minor color shifts. TikTok's system checks at the data level, not the visual level. If you want visually distinct versions, use more aggressive filters like hflip (mirror) or larger brightness shifts.
Dropshipping video economics
| Item | Cost |
| RenderIO Growth (1,000 commands/mo) | $29/mo |
| Storage (Cloudflare R2, 10GB) | ~$1/mo |
| Total | ~$30/mo |
For larger catalogs (200+ products with variations), the Business plan at $99/mo covers 20,000 commands, enough for thousands of variations.
Alternative approaches:
Freelance editor (200 videos): $1,000-3,000/mo
CapCut + manual work (200 videos): 40+ hours/mo of your time
Fiverr per video (600-1,000/mo
The API approach costs a fraction of freelance editing and saves 40+ hours of manual work per month.
FAQ
Can I process videos from any supplier platform (Alibaba, 1688, CJ Dropshipping)?
Yes. As long as you have a direct URL to the video file (or can download it first), the pipeline handles it. Some supplier platforms require logging in to access videos. In that case, download locally first and upload to your own storage (S3, R2, etc.) before sending to the API.
How do I handle different watermark positions across suppliers?
Adjust the crop/delogo filter parameters per supplier. If Supplier A always puts watermarks in the bottom-right and Supplier B uses a top banner, create two FFmpeg command templates and route videos to the right one based on supplier. A simple lookup table in your code handles this.
Will TikTok detect that these are the same product video?
The variation filters (different CRF, noise, brightness, pitch) change the video at the encoding level. TikTok's fingerprinting looks at perceptual hashes and encoding signatures. Small parameter changes are enough to pass as distinct content. For the full breakdown of what TikTok checks, see the duplicate detection guide.
What's the fastest way to process a large catalog?
Submit all API calls in parallel using Promise.all() as shown in the batch example above. RenderIO processes each command in its own sandbox, so 50 simultaneous requests finish in roughly the same time as one. The bottleneck is encoding time per video, not concurrency.
Can I add captions or product info text to the video?
Yes. Extend the drawtext filter in the combined pipeline command. For example, add a product name at the top: drawtext=text='Product Name':fontsize=36:fontcolor=white:x=(w-text_w)/2:y=40. You can also burn in subtitles from an SRT file. The watermark guide covers subtitle burn-in.