Just in

🏷️ Add Logo to Video Without Watermark: Safe Zones, FFmpeg

Put your own brand mark on video so it reads as branding, not stock-tool residue: platform safe zones, opacity numbers and a copy-paste ffmpeg recipe.

Tomás Rivera

Tomás Rivera · Film Editor & AI Cinematography Writer

· 11 min read

✓ Fact-checked & production-testedBased on our own paid generations and published videos. Last reviewed 2026-08-15.How we test →
⚡ TL;DR — quick answers
Does putting my logo on a video hurt its reach?
Your own logo does not. Instagram head Adam Mosseri addressed this directly: asked whether watermarking a Reel with your own logo affects reach, he said no, that is actually good to go. What gets demoted is a competing platform's bug, so a TikTok-native export with the TikTok watermark baked in is the pattern that costs you distribution when it lands on Reels.
Where should the logo go on a 1080x1920 vertical video?
Not the bottom-right, which is where every default tool puts it and where the like, comment and share rail lives. Keep the mark inside roughly x 60 to 880 and y 240 to 1440, and anchor it top-left at about 64 px in and 360 px down. That y value is deliberate: it survives a centred 4:5 crop, which slices 285 px off the top when the same file gets repurposed for a feed post.
How do I add a logo with ffmpeg without re-encoding the audio?
Add -c:a copy to the command. The overlay filter only touches the video stream, so the audio can be stream-copied straight through untouched. The video itself has to be re-encoded because you are changing pixels, which is why you should also set an explicit quality target rather than accepting whatever the default gives you.
A colourist's suite at night, a vertical phone-shaped frame on the reference monitor with a small brand mark glowing in the upper-left safe box while the platform's caption stack and engagement rail sit dark and empty below it.

Key takeaways

  1. The bottom-right corner is the worst place on a vertical video for a brand mark, because that is exactly where the caption stack and the engagement rail sit on every short-form platform.
  2. Your own logo carries no reach penalty on Instagram, according to Adam Mosseri on the record; it is competitor-platform and editor watermarks that get demoted in recommendations.
  3. YouTube's channel branding watermark is free, reversible and never burned into the file, but it is landscape-only and it does not travel with the video when someone reposts it.
  4. Burning a mark in forces a full re-encode, so hit YouTube's published bitrate targets on that pass and stream-copy the audio with -c:a copy so the sound is never touched.

Half the traffic on this phrase wants the opposite of what the other half wants. One group has a logo, has a video, and wants the first sitting cleanly on top of the second. The other group wants somebody else's mark gone. This post is for the first group.

If you came for the second thing, the answer is in our honest take on watermark removal, and it turns out to be a contract question more than a technical one.

For everyone else, "without watermark" is doing two jobs in that query, and both are real problems. The first is procedural: you want your export clean of the editor's branding. Clideo ranks near the top of this exact search and its own page states that Premium "offers bigger file upload limits, higher AI limits, longer storage period for their projects, and no watermark". Free tier, free logo, theirs. The second job is the craft one. You want your mark to read as a brand, not as leftover residue from a tool you never paid for.

Nobody on page one answers the second question. I opened eight ranking URLs and every one is a product page explaining which button to press inside that company's own editor. Not one of them gives a pixel margin.

Three objects wearing the same word

Three-column table comparing a brand bug, an anti-piracy mark and a tool watermark across job, width, opacity, placement and whether you control it.
Copying an anti-piracy watermark's transparency onto a brand bug is what makes a creator logo read as stock-tool residue.

Every ranking page collapses three different things into the word "watermark", and picking the wrong one is the root cause of a logo that looks cheap.

A brand bug is small, fairly opaque, sits in one corner, and exists so a viewer three seconds into a scroll knows whose video this is. An anti-piracy watermark is large or tiled, deliberately semi-transparent, and designed to be annoying to crop out of a screener. A tool watermark is a tax, applied by a company you did not pay, and you have no control over any of its properties.

VSDC's page on this query advises making your logo "nearly transparent to look like a watermark". That is precisely backwards. A brand bug that reads at 20% opacity is a brand bug nobody can identify, and the whole reason so many creator logos look like stock-tool residue is that people follow that advice.

By the numbers

Four number cards reading 150x150 minimum square size, 1 MB maximum file size, a 15 second end-of-video window, and landscape as the only display view.
The free overlay has a real spec sheet, and every limit on it is a reason to check before you re-encode anything.
  • 150x150 pixels, under 1 MB is the minimum size and file ceiling for YouTube's channel branding watermark, which must be square and in JPG, GIF, BMP or PNG format (YouTube Help).
  • Last 15 seconds is what the "End of video" display option means for that watermark; the other choices are a custom start time or the entire video (YouTube Help).
  • 8 Mbps and 12 Mbps are YouTube's recommended 1080p SDR upload bitrates at 24/25/30 fps and at 48/50/60 fps respectively, which are the targets to hit on the pass that burns in your logo (YouTube Help).
  • yuv420 is the default compositing format for ffmpeg's overlay filter, which is why saturated logo edges go soft unless you override it (FFmpeg filters documentation).
  • 10 pixels is the inset in ffmpeg's canonical corner example, overlay=main_w-overlay_w-10:main_h-overlay_h-10, which places the overlay 10 px from the bottom-right corner (FFmpeg filters documentation).
  • "That's actually good to go" is Adam Mosseri's on-the-record answer to whether watermarking a Reel with your own logo affects reach (Social Media Today).

Where the mark actually goes

Here is the admission. I once burned a bottom-right bug into 40 finished vertical episodes before anyone checked them on a handset. Every single mark sat under the caption stack, half-buried by the share rail. Re-exporting the batch cost a weekend and a second generation of compression on every file, and it taught me to build the safe box before the logo, not after.

On a 1080x1920 canvas, three regions are hostile. The bottom 400 to 460 px carries the caption, the handle, the audio credit and any CTA. The right-hand 180 to 200 px carries the like, comment, share and profile rail. The top 200 to 240 px carries platform navigation and the device status bar. Those numbers vary a little by app and by OS version, which is why I round them up rather than down.

That leaves a universal vertical safe box of roughly x 60 to 880, y 240 to 1440. Inside it, anchor a bug top-left at about x 64, y 360. The y value is not arbitrary. A centred 4:5 crop of a 1080x1920 file removes 285 px from the top, so anything above y ≈ 330 gets guillotined the moment that Short is repurposed as a feed post. Reframing is the single most common way a correctly placed logo becomes a wrong one, and it is absent from every page ranking on this query.

For 16:9 at 1920x1080, use a 48 px margin, which is 2.5% of frame width, and prefer the top corners. The bottom-right on YouTube is where player chrome and end-screen elements live. If you are building Shorts alongside long-form, design one mark that survives both boxes rather than two marks you have to remember to swap.

One more collision worth checking: burned-in subtitles and auto-captions often render higher than you expect on long lines. Test your logo against your wordiest caption frame, not your emptiest.

Size and opacity, as numbers

  • Horizontal (16:9): logo width 6 to 8% of frame width. At 1920 that is 115 to 154 px.
  • Vertical (9:16): logo width 10 to 14% of frame width. At 1080 that is 108 to 151 px.
  • Minimum legible height: 48 px for a full lockup at 1080p, or roughly 20 px of cap height for a wordmark. Below that a viewer sees a smudge.
  • Persistent bug opacity: 55 to 75%. Not 20%.
  • Intro or outro sting: 100%.
  • Genuine anti-piracy tiling: 8 to 15%, and only for screeners.

When the footage underneath is bright or busy, the fix is a mono variant with a subtle 1 to 2 px stroke or a soft drop shadow, not a lower opacity. Export a white version and a dark version of your mark and pick per video. Dropping opacity to solve a contrast problem makes the logo illegible everywhere instead of just in the bright corner.

Static bug, sting, or intermittent mark

TreatmentDurationUse it when
Intro sting0.8 to 1.5 s, landing before 0:03Long-form, or a Short with a strong cold open
Persistent bugEntire runtime16:9 long-form and tutorials
Intermittent bug3 s on, 15 to 20 s offShort-form vertical
End cardLast 4 to 6 sLong-form, if not using YouTube's own overlay

The opinion I will defend: on short-form, an intermittent bug beats a permanent one. A mark that appears, registers and leaves is read as production polish. A mark that never leaves becomes furniture the eye stops seeing by second four, which means you paid for the pixels and got nothing. An intro sting that runs past two seconds on a Short is an ad, and it will show up in your retention graph as a cliff.

YouTube's free overlay that never touches your file

Before you re-encode anything, consider not re-encoding anything. YouTube's channel branding watermark is applied at playback. Requirements are a square image, minimum 150x150 pixels, under 1 MB, in JPG, GIF, BMP or PNG. Display options are End of video, which shows it for the last 15 seconds, a custom start time, or the entire video.

The trade-offs are honest ones. It displays in landscape view on computers and mobile devices and is not clickable on mobile. It does not show on custom chromeless players, and it is unavailable on videos set as made for kids. Most importantly for anyone cross-posting, it lives on YouTube's side, so it does not travel with the file. If your goal is attribution on reposts, this is not your tool, and you need the burned-in path. If your goal is channel identity on your own long-form, it is free and reversible, which pairs well with the rest of your YouTube metadata setup.

The ffmpeg cookbook

Six numbered steps for an ffmpeg overlay: prep the PNG, scale to the frame, set opacity, place in the safe box, override the format, copy the audio.
Each step maps to one flag in the command, and skipping the format override is what softens a coloured wordmark.

If you would rather watch the overlay filter being built than read the flags, this walks the same command through step by step:

How to Add a Watermark to Video Using FFmpeg

The documented corner formula, straight from the filter docs, placing the overlay 10 px from the bottom-right:

ffmpeg -i input.mp4 -i logo.png \
  -filter_complex "overlay=main_w-overlay_w-10:main_h-overlay_h-10" \
  -c:a copy output.mp4

main_w and main_h are the main video's dimensions, overlay_w and overlay_h are the logo's, so the placement is an expression rather than a hard-coded guess.

This is the version I actually run on vertical work. Logo scaled to 10% of a 1080-wide frame, 65% opacity, anchored in the safe box, audio untouched:

# 10% of 1080 = 108 px wide, height auto from the source aspect
ffmpeg -i input.mp4 -i logo.png -filter_complex \
"[1:v]scale=108:-1,format=rgba,colorchannelmixer=aa=0.65[lg];\
 [0:v][lg]overlay=64:360:format=auto:eval=init" \
  -c:v libx264 -preset slow -crf 18 -pix_fmt yuv420p \
  -c:a copy output.mp4

Three details earn their place. format=auto overrides the overlay filter's yuv420 default, which is what keeps a red or magenta wordmark from going soft at the edges. eval=init evaluates the position expression once instead of every frame, since the bug is not moving. -c:a copy means your audio is bit-identical to the source.

For the intermittent treatment from the table, add an enable expression. This shows the mark for 3 seconds out of every 20:

[0:v][lg]overlay=64:360:format=auto:enable='lt(mod(t,20),3)'

A note on frame-relative scaling. The clean-looking idiom is scale2ref, and you will find it copied everywhere as w=iw*0.10:h=ow/mdar. That mdar is the main video's aspect ratio, so it silently distorts any logo that is not the same shape as your frame, and scale2ref is deprecated in newer builds anyway. Doing the percentage arithmetic yourself and passing a real number is more reliable, and it takes four seconds.

The re-encode is the hidden cost

Four bars of recommended upload bitrate in Mbps: 8 and 12 for 1080p, then 35 to 45 and 53 to 68 for 2160p, with the 4K bars far taller.
Adding a logo costs a full generation of compression, so the pass that adds it should aim at the platform's published targets.

Burning in an overlay means every pixel is decoded, composited and encoded again. That is a full generation of loss on top of whatever your source already carried, and it is the reason to do the logo pass once, from your highest-quality master, rather than on an export of an export.

Aim at YouTube's own published targets on that pass: MP4 container, H.264 video, AAC-LC at 384 kbps stereo, 4:2:0 chroma, BT.709 colour. For SDR, 8 Mbps at 1080p 24/25/30 fps and 12 Mbps at 48/50/60 fps; 35 to 45 Mbps for 2160p at standard frame rate and 53 to 68 Mbps at high frame rate. Those are upload recommendations, not encoder ceilings, so -crf 18 with a slow preset will usually land above them and is fine.

Does your own logo hurt reach?

This is where the query's confusion does actual damage. Readers arrive believing any on-screen logo kills distribution, and that is wrong in a specific way.

Mosseri answered it plainly: asked whether watermarking a Reel with your own logo affects reach, he said no, that is actually good to go. He separately confirmed Instagram avoids recommending content that carries logos from competing platforms. So the penalty is not about marks, it is about whose mark. A TikTok-native export with the TikTok bug baked in, cross-posted to Reels, is the exact pattern that gets throttled. The same applies to CapCut and InVideo tags left on a free-tier export.

YouTube draws a related line on the money side. Its Shorts monetization policies list non-original Shorts, including reuploading other creators' content from YouTube or another platform, as ineligible. A burned-in third-party bug is the most visible evidence of that pattern that a reviewer can see.

Prep the file before you burn anything in

Use a transparent PNG, or rasterise your SVG at twice the final on-screen width so it stays sharp if you ever push to 4K. A JPEG logo has no alpha, so you get a white or black box; running it through automatic background removal gives you a halo of grey fringe pixels around every curve, which is worse because it looks almost right. Export two versions, light and dark, from the same source file. Keep the source at least 2x your largest target size.

Which path is right for you

PathWatermark-free exportQuality costRepeatable at volumeCost
YouTube branding overlayYesNone, never re-encodedChannel-wide, set onceFree
Desktop NLEYesOne re-encodeManual per projectLicence
Browser toolOften paid-tier onlyOne re-encode, opaque settingsPoorSubscription
ffmpeg scriptYesOne re-encode, you control itExcellentFree

If you are marking more than about five videos a month, the browser tools stop making sense. You are uploading footage to a stranger's server, accepting encoder settings you cannot see, and often paying to avoid a watermark you only encountered because you wanted to add your own. A ten-line shell script does the same job at a quality you set, and it runs on a folder. Anyone already running a desktop edit stack can skip straight to that.

The check before you publish

Preview the finished file against a real device UI template, not a bare rectangle. Reframe it to 4:5 and 1:1 and confirm the mark survives both. Scrub to your brightest frame and your busiest frame and confirm the mark is still readable in each. Check it against your longest caption line. Then open the export and confirm no editor stamped anything of its own on your work.

Sources & further reading

Outside figures cited above. First-hand test results are our own and noted as such in the text.

  1. overlay filter documentation (v6.0)FFmpeg filters documentation
  2. Add a channel branding watermark to your videosYouTube Help (Google)
  3. Recommended upload encoding settingsYouTube Help (Google)
  4. YouTube Shorts monetization policiesYouTube Help (Google)
  5. Instagram clarifies including your own logo on a Reel is OKSocial Media Today
  6. Add a logo to videoClideo

Frequently asked questions

Does putting my logo on a video hurt its reach?

Your own logo does not. Instagram head Adam Mosseri addressed this directly: asked whether watermarking a Reel with your own logo affects reach, he said no, that is actually good to go. What gets demoted is a competing platform's bug, so a TikTok-native export with the TikTok watermark baked in is the pattern that costs you distribution when it lands on Reels.

Where should the logo go on a 1080x1920 vertical video?

Not the bottom-right, which is where every default tool puts it and where the like, comment and share rail lives. Keep the mark inside roughly x 60 to 880 and y 240 to 1440, and anchor it top-left at about 64 px in and 360 px down. That y value is deliberate: it survives a centred 4:5 crop, which slices 285 px off the top when the same file gets repurposed for a feed post.

How do I add a logo with ffmpeg without re-encoding the audio?

Add -c:a copy to the command. The overlay filter only touches the video stream, so the audio can be stream-copied straight through untouched. The video itself has to be re-encoded because you are changing pixels, which is why you should also set an explicit quality target rather than accepting whatever the default gives you.

Why does my coloured logo look soft or fringed after the overlay?

FFmpeg's overlay filter composites in yuv420 by default, and that chroma subsampling is what softens and shifts saturated logo edges. The filter's format option also accepts yuv422, yuv444, rgb, gbrp and auto. Adding format=auto to the overlay is usually enough to keep a red or magenta wordmark crisp.

Is YouTube's branding watermark a real alternative to burning one in?

For long-form landscape uploads, yes, and it costs nothing. It is a square image, minimum 150x150 pixels and under 1 MB, in JPG, GIF, BMP or PNG, and you can set it to show for the last 15 seconds, from a custom start time, or for the entire video. The limits are real though: it only displays in landscape view, it is not clickable on mobile, it does not appear on made-for-kids videos, and because it is an overlay at playback it does not travel with the file if someone downloads and reposts it.

The 5 best AI video finds, every week

New models, tested prompts, and what actually worked in our production — one short email a week. No spam, unsubscribe anytime.

Tomás Rivera

Written by Tomás Rivera

Film Editor & AI Cinematography Writer

Cut commercials and short films for two decades before AI video existed, and now grades every generator the way he graded dailies. Cares about continuity, coverage, and where the cut breaks — not demo reels.

Explore these topics

Every guide, comparison and prompt library we have on each.

#add logo to video without watermark#video logo placement safe zones#ffmpeg overlay logo command#youtube branding watermark#brand bug vs watermark
Next in Faceless YouTubeSynthesia AI Review 2026: Credits, Avatars & Verdict

Keep learning