<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: videocompress</title>
    <description>The latest articles on DEV Community by videocompress (@videocompress).</description>
    <link>https://dev.to/videocompress</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4121579%2F53243b52-1101-43e9-85d2-65f6320b2364.png</url>
      <title>DEV Community: videocompress</title>
      <link>https://dev.to/videocompress</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/videocompress"/>
    <language>en</language>
    <item>
      <title>How to convert iPhone HEIC photos to JPG without uploading them</title>
      <dc:creator>videocompress</dc:creator>
      <pubDate>Thu, 01 Oct 2026 13:01:49 +0000</pubDate>
      <link>https://dev.to/videocompress/how-to-convert-iphone-heic-photos-to-jpg-without-uploading-them-af</link>
      <guid>https://dev.to/videocompress/how-to-convert-iphone-heic-photos-to-jpg-without-uploading-them-af</guid>
      <description>&lt;p&gt;You AirDrop or email a few iPhone photos to a Windows laptop, and the files end in &lt;code&gt;.heic&lt;/code&gt;. Photos won't open them, the upload form on some website rejects them, and the colleague you forwarded them to asks what format that is.&lt;/p&gt;

&lt;p&gt;HEIC is Apple's default camera format. It's efficient, but outside Apple's own apps support is patchy. The usual fix is an "online HEIC converter," which means sending your personal photos to someone's server. You don't need to. Here's how to do it in the browser with the files staying on your machine, and how to come out with much smaller files while you're at it.&lt;/p&gt;

&lt;p&gt;For this walkthrough I used three full-resolution iPhone photos (shot on an iPhone X, 12 Pro Max and 13 Pro, CC0 on Wikimedia Commons), saved as HEIC: 4032×3024 pixels, 3.1 MB, 4.1 MB and 4.7 MB.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Open the converter and drop in your HEIC files
&lt;/h2&gt;

&lt;p&gt;Go to the &lt;a href="https://pixsip.com/heic-to-jpg" rel="noopener noreferrer"&gt;HEIC to JPG converter on PixSip&lt;/a&gt;. No account needed. Drag your &lt;code&gt;.heic&lt;/code&gt; files onto the drop area, or click it to pick them. The free plan takes up to 20 files at a time, each up to 10 MB, so full-size iPhone photos fit.&lt;/p&gt;

&lt;p&gt;The decoding happens in the tab (WebAssembly), so nothing gets uploaded. If you want to check that yourself, load the page, switch off Wi-Fi, and then drop the files. It still works.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ta8lfg707hlrjnhbjt9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ta8lfg707hlrjnhbjt9.png" alt="PixSip HEIC to JPG page with the drop area" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Pick your output formats: JPG, plus WebP and AVIF if you can use them
&lt;/h2&gt;

&lt;p&gt;Below the drop area there's a "Convert my images automatically" switch with a row of formats. On this page JPG is already selected. There's no quality slider: PixSip encodes at one quality setting that it tuned against TinyPNG, and that setting is what does the shrinking.&lt;/p&gt;

&lt;p&gt;I also ticked &lt;strong&gt;WebP&lt;/strong&gt; and &lt;strong&gt;AVIF&lt;/strong&gt;. The free plan writes up to three formats side by side, so you get all three versions of each photo from one drop and can keep whichever is smallest. Use JPG if the file is going somewhere picky (an old upload form, a printer, an email to someone on an old PC). WebP is fine for most websites and chat apps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn6pp06arka0aluay7uyz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn6pp06arka0aluay7uyz.png" alt="Convert switch on, with JPG, WebP and AVIF selected" width="798" height="136"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Check the results
&lt;/h2&gt;

&lt;p&gt;Each photo gets a row with one box per format: the new size, the percentage saved, and a download button. A check mark sits on the smallest version of each photo. My three photos came out like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Photo&lt;/th&gt;
&lt;th&gt;HEIC&lt;/th&gt;
&lt;th&gt;JPG&lt;/th&gt;
&lt;th&gt;WebP&lt;/th&gt;
&lt;th&gt;AVIF&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;IMG_7364 (4032×3024)&lt;/td&gt;
&lt;td&gt;3.1 MB&lt;/td&gt;
&lt;td&gt;806.5 KB (−74%)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;684.2 KB (−78%)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;896.5 KB (−71%)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IMG_8097 (3024×4032)&lt;/td&gt;
&lt;td&gt;4.1 MB&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;786.6 KB (−81%)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;879.5 KB (−79%)&lt;/td&gt;
&lt;td&gt;1.4 MB (−66%)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IMG_MILAN (3024×4032)&lt;/td&gt;
&lt;td&gt;4.7 MB&lt;/td&gt;
&lt;td&gt;645.5 KB (−86%)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;548.7 KB (−88%)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;728.6 KB (−85%)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Taking the smallest file for each photo, the batch went from 11.9 MB to about 2 MB (PixSip's summary: "Saved 9.9 MB total · 83% smaller"). I didn't resize anything, and PixSip doesn't have a resize option. The outputs are still 4032×3024. All of the saving comes from re-encoding at that calibrated quality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ln4bnz09jw7vgty3xro.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ln4bnz09jw7vgty3xro.png" alt="Three HEIC photos converted to JPG, WebP and AVIF, each 66–88% smaller" width="799" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A caveat so you know what to expect: how much you save depends on how heavily the HEIC was compressed to begin with. In an earlier run with small (1440×960) HEIC samples that were already tightly compressed, the JPGs came out only 1–42% smaller. A full-size iPhone HEIC can also come out &lt;em&gt;bigger&lt;/em&gt; as a JPG, because HEIC is the more efficient format. If that happens, try the WebP version.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Compare before you download (optional)
&lt;/h2&gt;

&lt;p&gt;Click &lt;strong&gt;Compare&lt;/strong&gt; on any row to get a slider view: the decoded original on one side, the smallest output on the other (here the 684 KB WebP against the 3.1 MB original). Drag the divider, or use &lt;strong&gt;Zoom 1:1&lt;/strong&gt;, to check fine detail like text, skies and skin tones before you send the file to anyone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5k19t6vljonyzeovwukv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5k19t6vljonyzeovwukv.png" alt="Before/after slider: 3.1 MB original vs 684.2 KB WebP" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Download one file or the whole batch
&lt;/h2&gt;

&lt;p&gt;Click the button in any format box to save just that file, or &lt;strong&gt;Download 3 as ZIP&lt;/strong&gt; (the number matches your batch) to grab everything. The ZIP is put together in the browser too, with every format you picked, named like &lt;code&gt;IMG_7364-compressed.jpg&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Metadata such as GPS location is stripped automatically. That's usually what you want before posting a photo publicly, but keep the original HEIC if you need the date and location later.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you only need to &lt;em&gt;view&lt;/em&gt; HEIC on Windows
&lt;/h2&gt;

&lt;p&gt;Converting isn't always the answer. If you just want to open the photos on your own PC, Microsoft's HEIF/HEVC extensions or an iPhone camera setting might suit you better. This &lt;a href="https://pixsip.com/blog/how-to-open-heic-on-windows" rel="noopener noreferrer"&gt;walkthrough of the three ways to open HEIC files on Windows&lt;/a&gt; compares them. And if you're curious why the tool runs locally instead of on a server, the team explains it in &lt;a href="https://pixsip.com/blog/privacy-by-default" rel="noopener noreferrer"&gt;why PixSip doesn't upload your photos&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>iphone</category>
      <category>tutorial</category>
      <category>images</category>
      <category>privacy</category>
    </item>
    <item>
      <title>H.264 vs H.265: which codec when the size target still fails</title>
      <dc:creator>videocompress</dc:creator>
      <pubDate>Mon, 21 Sep 2026 02:23:31 +0000</pubDate>
      <link>https://dev.to/videocompress/h264-vs-h265-which-codec-when-the-size-target-still-fails-4l1l</link>
      <guid>https://dev.to/videocompress/h264-vs-h265-which-codec-when-the-size-target-still-fails-4l1l</guid>
      <description>

&lt;p&gt;You already set a megabyte cap and the clip is still too big—or too slow to finish in a browser tab. That is when codec choice matters. Use H.264 when recipients must play it everywhere; switch to H.265 only when both ends support it and you need another size cut.&lt;/p&gt;

&lt;p&gt;This walkthrough uses &lt;a href="https://vidsmaller.com" rel="noopener noreferrer"&gt;VidSmaller&lt;/a&gt;, a cloud compressor that hits an exact output size (Advanced mode unlocks H.265 on paid plans).&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Upload once, keep the laptop cool
&lt;/h2&gt;

&lt;p&gt;Open &lt;a href="https://vidsmaller.com" rel="noopener noreferrer"&gt;vidsmaller.com&lt;/a&gt;. Drop MP4, MOV, MKV, WebM, or another supported format. Guest accounts have per-file limits and limited &lt;a href="https://vidsmaller.com/pricing" rel="noopener noreferrer"&gt;credits&lt;/a&gt;. There is no watermark; uploads are deleted after processing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7eqwoy1vu665aa3i11my.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7eqwoy1vu665aa3i11my.png" alt="VidSmaller cloud upload drop zone" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Long 4K timelines belong here—not in a browser tab that can OOM mid-encode.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Hit the size first, then choose the codec
&lt;/h2&gt;

&lt;p&gt;In &lt;strong&gt;Basic&lt;/strong&gt;, set &lt;strong&gt;Output file size&lt;/strong&gt; or tap Email / WhatsApp / Discord / Reddit so the two-pass job aims at a real number.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv598irgha6bh9xq2h1yo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv598irgha6bh9xq2h1yo.png" alt="Size presets and Advanced codec options" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then open &lt;strong&gt;Advanced&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;H.264 + MP4&lt;/strong&gt; — default. Widest phone, chat app, and browser playback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;H.265&lt;/strong&gt; — smaller file at the same quality, slower encode, and older devices may refuse it.&lt;/li&gt;
&lt;li&gt;Drop resolution (4K → 1080p or 720p) &lt;strong&gt;before&lt;/strong&gt; you flip codecs if the source is huge.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For hard caps (forms, WhatsApp comfort), target about 1MB under the published limit so overhead does not push you over.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Download and verify playback
&lt;/h2&gt;

&lt;p&gt;Start compression, wait for the cloud job, download. You can close the tab; the result link stays until it expires.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdzhu4p3adg6v861hzusw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdzhu4p3adg6v861hzusw.png" alt="Compressed result ready to download" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Spot-check on the device that will receive the file. If H.265 fails to play, re-run the same size target with H.264 (or one resolution step lower).&lt;/p&gt;

&lt;h2&gt;
  
  
  Sensitive short clips that fit in device memory can stay local: &lt;a href="https://videocompress.dev" rel="noopener noreferrer"&gt;videocompress.dev&lt;/a&gt;.
&lt;/h2&gt;

</description>
      <category>video</category>
      <category>compression</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Shrink a 4K phone video for WhatsApp or email</title>
      <dc:creator>videocompress</dc:creator>
      <pubDate>Sun, 20 Sep 2026 10:42:36 +0000</pubDate>
      <link>https://dev.to/videocompress/shrink-a-4k-phone-video-for-whatsapp-or-email-4ig3</link>
      <guid>https://dev.to/videocompress/shrink-a-4k-phone-video-for-whatsapp-or-email-4ig3</guid>
      <description>&lt;p&gt;4K clips blow past WhatsApp and mailbox limits fast. Knock resolution down first, then set an exact megabyte target in the cloud so a long encode does not kill the browser tab.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Upload the 4K source
&lt;/h2&gt;

&lt;p&gt;Open &lt;a href="https://vidsmaller.com" rel="noopener noreferrer"&gt;vidsmaller.com&lt;/a&gt;. Drop MP4, MOV, or another supported file. Guests get large per-file limits and limited &lt;a href="https://vidsmaller.com/pricing" rel="noopener noreferrer"&gt;credits&lt;/a&gt;. No watermark; uploads are removed after the job.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy45gpwrr4qtq9sor35tn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy45gpwrr4qtq9sor35tn.png" alt="VidSmaller upload drop zone" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Cap the size, then fix resolution
&lt;/h2&gt;

&lt;p&gt;In &lt;strong&gt;Basic&lt;/strong&gt;, tap WhatsApp or Email, or drag &lt;strong&gt;Output file size&lt;/strong&gt; (often ~16MB for WhatsApp comfort, ~18–20MB toward a 25MB mailbox).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk8e9pc7gdikm19zzuxkf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk8e9pc7gdikm19zzuxkf.png" alt="Size presets and slider" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Advanced&lt;/strong&gt;, set 1080p (or 720p) before chasing codecs. Prefer H.264 + MP4 for playback. H.265 can go smaller but older phones may fail.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Download and send
&lt;/h2&gt;

&lt;p&gt;Start the job, wait, download. You can leave the page; the result link stays until it expires.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fny5m5ct4ny6q5axe3z5k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fny5m5ct4ny6q5axe3z5k.png" alt="Compressed result ready" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Still too big? Drop one more resolution step and re-run before switching codecs.&lt;/p&gt;

&lt;p&gt;Short private clips that fit in memory can stay local: &lt;a href="https://videocompress.dev" rel="noopener noreferrer"&gt;videocompress.dev&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>video</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Make an Instagram-ready square without cropping faces</title>
      <dc:creator>videocompress</dc:creator>
      <pubDate>Sun, 20 Sep 2026 08:42:17 +0000</pubDate>
      <link>https://dev.to/videocompress/make-an-instagram-ready-square-without-cropping-faces-1b1l</link>
      <guid>https://dev.to/videocompress/make-an-instagram-ready-square-without-cropping-faces-1b1l</guid>
      <description>&lt;p&gt;Feed posts want 1:1. A hard crop on a wide shot often clips a shoulder or forehead. Pad instead: keep the whole photo centered and fill the empty bands.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Drop the photo in the browser
&lt;/h2&gt;

&lt;p&gt;Open &lt;a href="https://squareimage.dev" rel="noopener noreferrer"&gt;squareimage.dev&lt;/a&gt;. Add JPEG, PNG, WebP, GIF, or BMP. Encoding stays in the tab — no account, no upload.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwg6yltiwt1k5qici1lf1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwg6yltiwt1k5qici1lf1.png" alt="SquareImage drop zone" width="799" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Pad first, crop only if you mean it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Blur background&lt;/strong&gt; — subject stays intact; empty sides are a blurred copy. Adjust scale/blur in the &lt;a href="https://squareimage.dev/blurredframe/" rel="noopener noreferrer"&gt;blurred frame editor&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solid color&lt;/strong&gt; — same padding with a flat fill; good for products and logos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resize&lt;/strong&gt; — stretches to square; use only when distortion is fine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crop 1:1&lt;/strong&gt; — when you &lt;em&gt;want&lt;/em&gt; to cut edges. Also at &lt;a href="https://squareimage.dev/squarecrop/" rel="noopener noreferrer"&gt;square crop&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;People and landscapes: start with blur. Clean studio backgrounds: solid color usually looks cleaner.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp6pyo8aife74m0y356gn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp6pyo8aife74m0y356gn.png" alt="Blur padding to 1:1" width="800" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Export at Instagram’s square size
&lt;/h2&gt;

&lt;p&gt;Default is 1200×1200. For the feed, &lt;a href="https://squareimage.dev/instagram-square-guide.html" rel="noopener noreferrer"&gt;1080×1080 is the usual Instagram square&lt;/a&gt;. JPEG for photos, PNG if you need transparency, WebP for a smaller file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0tqbcvjhrmv0ig8mwdbq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0tqbcvjhrmv0ig8mwdbq.png" alt="Export controls" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Close the tab and the file is gone from the session. More on sizes: &lt;a href="https://squareimage.dev/square-image-guide-en.html" rel="noopener noreferrer"&gt;1:1 size guide&lt;/a&gt;. Profile-style full frames: &lt;a href="https://squareimage.dev/full-dp/" rel="noopener noreferrer"&gt;full DP&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>tutorial</category>
      <category>unsplash</category>
    </item>
    <item>
      <title>Email says the video is too large — shrink it to ~25MB in the browser</title>
      <dc:creator>videocompress</dc:creator>
      <pubDate>Sat, 19 Sep 2026 01:40:17 +0000</pubDate>
      <link>https://dev.to/videocompress/email-says-the-video-is-too-large-shrink-it-to-25mb-in-the-browser-17cm</link>
      <guid>https://dev.to/videocompress/email-says-the-video-is-too-large-shrink-it-to-25mb-in-the-browser-17cm</guid>
      <description>&lt;p&gt;Gmail, Outlook, and a lot of corporate mail reject video attachments once the message crosses their size line. The number people quote is usually &lt;strong&gt;25MB&lt;/strong&gt;, but Base64 wrapping eats headroom, so a file that shows 24.8MB on disk can still bounce.&lt;/p&gt;

&lt;p&gt;If you do not want that clip on a random “online compressor” server, re-encode it in the tab instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Drop the file into a local compressor
&lt;/h2&gt;

&lt;p&gt;Open &lt;a href="https://videocompress.dev" rel="noopener noreferrer"&gt;videocompress.dev&lt;/a&gt;. Drag in MP4, MOV, WebM, or MKV. Decoding and encoding stay in the browser — no signup, no upload, no watermark.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0mxf17w6i79uv18ve8sz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0mxf17w6i79uv18ve8sz.png" alt="In-browser drop zone on videocompress.dev" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Aim under the mailbox cap, not at it
&lt;/h2&gt;

&lt;p&gt;Pick &lt;strong&gt;Target size&lt;/strong&gt;. For email, type &lt;code&gt;25&lt;/code&gt;, or use &lt;a href="https://videocompress.dev/compress-video-to-target-size" rel="noopener noreferrer"&gt;compress video to a target size&lt;/a&gt; and set 25 there.&lt;/p&gt;

&lt;p&gt;If past sends failed at “almost 25,” try &lt;strong&gt;18–20MB&lt;/strong&gt; so headers and encoding still fit. Discord-style paths such as &lt;a href="https://videocompress.dev/compress-mp4-for-discord" rel="noopener noreferrer"&gt;compress MP4 for Discord&lt;/a&gt; target a lower ceiling; email can keep more bits.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqjdhsm46zjob67a1ezkk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqjdhsm46zjob67a1ezkk.png" alt="Target size control for an email-sized MP4" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keep resolution on a &lt;a href="https://videocompress.dev/compress-screen-recording" rel="noopener noreferrer"&gt;screen recording&lt;/a&gt; with readable text unless the preview looks blocky — then drop one step (1080 → 720) and run again.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Download H.264 MP4 and attach
&lt;/h2&gt;

&lt;p&gt;When the job finishes, download the MP4 (H.264 + AAC) and attach it to the draft.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi8022exda47jzxmzyyoy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi8022exda47jzxmzyyoy.png" alt="Compressed MP4 ready to download" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Still rejected? Lower resolution once more, or read the &lt;a href="https://videocompress.dev/video-compression-guide" rel="noopener noreferrer"&gt;video compression guide&lt;/a&gt; for bitrate tradeoffs. Tighter caps: &lt;a href="https://videocompress.dev/compress-video-to-10mb" rel="noopener noreferrer"&gt;compress video to 10MB&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Long 4K that kills the tab? Move that job to the &lt;a href="https://vidsmaller.com" rel="noopener noreferrer"&gt;exact-size cloud compressor&lt;/a&gt; instead.&lt;/p&gt;

</description>
      <category>video</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to compress a video to an exact file size (email, WhatsApp, Discord)</title>
      <dc:creator>videocompress</dc:creator>
      <pubDate>Sat, 12 Sep 2026 09:42:56 +0000</pubDate>
      <link>https://dev.to/videocompress/how-to-compress-a-video-to-an-exact-file-size-email-whatsapp-discord-953</link>
      <guid>https://dev.to/videocompress/how-to-compress-a-video-to-an-exact-file-size-email-whatsapp-discord-953</guid>
      <description>&lt;p&gt;A lot of “25MB email limits” actually bounce around 18–20MB once the message wrapper is counted. WhatsApp is often happier near 15–16MB. Discord’s free tier is in the same neighborhood.&lt;/p&gt;

&lt;p&gt;If the clip is short and you care about privacy, compress it in the browser. If it is long, 4K, or your laptop fans are already loud, &lt;a href="https://vidsmaller.com" rel="noopener noreferrer"&gt;compress the video to an exact size&lt;/a&gt; in the cloud — type the number, wait for the job.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Upload the file
&lt;/h2&gt;

&lt;p&gt;Go to &lt;a href="https://vidsmaller.com" rel="noopener noreferrer"&gt;vidsmaller.com&lt;/a&gt;. Drag in MP4, MOV, MKV, WebM, or any of the other 33 formats. Signed-out you get 500MB per file and a handful of &lt;a href="https://vidsmaller.com/pricing" rel="noopener noreferrer"&gt;free credits&lt;/a&gt;. Nothing is watermarked. Uploads are deleted after the job.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fldmluw591l1lv796dfh7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fldmluw591l1lv796dfh7.png" alt="VidSmaller upload box" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Type the size, or tap a preset
&lt;/h2&gt;

&lt;p&gt;Use &lt;strong&gt;Basic&lt;/strong&gt;. Drag &lt;strong&gt;Output file size&lt;/strong&gt;, or tap Email / WhatsApp / Discord / Reddit. Those presets are the usual ceilings so you do not do the arithmetic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdhfcywl68k4mrhjdrhy3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdhfcywl68k4mrhjdrhy3.png" alt="Output file size slider and Email / WhatsApp / Discord presets" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://vidsmaller.com" rel="noopener noreferrer"&gt;cloud video compressor&lt;/a&gt; is two-pass: it aims at the number you asked for, not “about 3× over.” It is still an encode, not a guarantee to the last kilobyte — if a form is strict, aim a megabyte under the published cap (18MB for a 25MB mailbox is the usual move).&lt;/p&gt;

&lt;p&gt;Need more control? &lt;strong&gt;Advanced&lt;/strong&gt; has H.264 vs H.265, CRF, and resolution. H.264 + MP4 is what you want if someone else has to play the file. H.265 is smaller and slower, and older phones may refuse it.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Download and send
&lt;/h2&gt;

&lt;p&gt;Start compression, wait for the cloud job, download. You can close the tab; the result stays on the link until it expires.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg845ti2fj03huri7lcvh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg845ti2fj03huri7lcvh.png" alt="Compressed file ready to download" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the output is still too big, drop resolution one step (4K → 1080p is usually the largest win) and run it again. Do not jump to H.265 first unless both ends can play it.&lt;/p&gt;

&lt;p&gt;Short clip, and you do not want an upload at all? &lt;a href="https://dev.to/videocompress/how-to-compress-a-video-to-10mb-for-discord-in-the-browser-284g"&gt;Compress a video to 10MB for Discord in the browser&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>ffmpeg</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How to make a photo square without cropping the subject</title>
      <dc:creator>videocompress</dc:creator>
      <pubDate>Sat, 12 Sep 2026 09:40:44 +0000</pubDate>
      <link>https://dev.to/videocompress/how-to-make-a-photo-square-without-cropping-the-subject-3jm6</link>
      <guid>https://dev.to/videocompress/how-to-make-a-photo-square-without-cropping-the-subject-3jm6</guid>
      <description>&lt;p&gt;Instagram, profile photos, and a lot of marketplaces expect a 1:1 image. A wide landscape or a tall portrait gets the sides or the head cut off if you just hit crop.&lt;/p&gt;

&lt;p&gt;You do not have to lose those pixels. &lt;a href="https://squareimage.dev" rel="noopener noreferrer"&gt;Make the image square&lt;/a&gt; by padding it: keep the whole photo in the center, and fill the empty bands with a blur or a solid color.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Open the tool
&lt;/h2&gt;

&lt;p&gt;Go to &lt;a href="https://squareimage.dev" rel="noopener noreferrer"&gt;squareimage.dev&lt;/a&gt;. No account, no watermark. Drop in a JPEG, PNG, WebP, GIF, or BMP. The file is processed in the browser and is not uploaded.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff9zzi2vagyx4w4t4weye.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff9zzi2vagyx4w4t4weye.png" alt="Drop a photo into SquareImage" width="799" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Pick blur or a solid color — not crop
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Blur background&lt;/strong&gt; — best for portraits and landscapes. The full photo stays visible; the empty sides are a blurred copy of the same image. Need more control over scale and blur strength? Use the &lt;a href="https://squareimage.dev/blurredframe/" rel="noopener noreferrer"&gt;blurred frame editor&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solid color&lt;/strong&gt; — best for products and logos. Same idea, with a flat color instead of a blur.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resize&lt;/strong&gt; — stretches the picture to 1:1. Only use this when distortion is acceptable (patterns, some graphics).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crop 1:1&lt;/strong&gt; — use this last, when the subject already fills the frame and you &lt;em&gt;want&lt;/em&gt; to throw away the edges. That path also lives as a dedicated &lt;a href="https://squareimage.dev/squarecrop/" rel="noopener noreferrer"&gt;square crop&lt;/a&gt;.
Default download is 1200×1200. &lt;a href="https://squareimage.dev/instagram-square-guide.html" rel="noopener noreferrer"&gt;1080×1080 is the usual Instagram square&lt;/a&gt;. JPEG for photos, PNG if you need a lossless file or transparency, WebP if you want a smaller web file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fssahnj363bvyv9rvkxgs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fssahnj363bvyv9rvkxgs.png" alt="Export size and download" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Download it to your device. Closing the tab clears the session.&lt;/p&gt;

&lt;p&gt;If you later need a tight close-up, run crop on a copy — do not start there on a wide photo you wanted to keep whole. For which pixel size to pick, see the &lt;a href="https://squareimage.dev/square-image-guide-en.html" rel="noopener noreferrer"&gt;1:1 size guide&lt;/a&gt;.&lt;br&gt;
Start with blur. If the subject is a product on a clean background, switch to a matching solid color.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr66b7rphltygzyrrgs73.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr66b7rphltygzyrrgs73.png" alt="Wide photo padded to a square with a blur background" width="800" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Export at 1080 or 1200
&lt;/h2&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>design</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How to compress a video to 10MB for Discord (in the browser)</title>
      <dc:creator>videocompress</dc:creator>
      <pubDate>Sat, 12 Sep 2026 03:31:30 +0000</pubDate>
      <link>https://dev.to/videocompress/how-to-compress-a-video-to-10mb-for-discord-in-the-browser-284g</link>
      <guid>https://dev.to/videocompress/how-to-compress-a-video-to-10mb-for-discord-in-the-browser-284g</guid>
      <description>&lt;p&gt;Discord's free upload limit is 10MB. A two-minute screen recording or a phone clip is usually bigger than that, so the upload fails and you start hunting for an "online compressor."&lt;/p&gt;

&lt;p&gt;Most of those sites upload the file to a server. If the clip is a client call, a game session, or anything you do not want sitting on someone else's disk, that is the wrong tool.&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://videocompress.dev/compress-video-to-10mb" rel="noopener noreferrer"&gt;compress a video to 10MB&lt;/a&gt; in the browser instead. The file never leaves the tab.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Open the compressor
&lt;/h2&gt;

&lt;p&gt;Go to &lt;a href="https://videocompress.dev" rel="noopener noreferrer"&gt;videocompress.dev&lt;/a&gt;. There is no account and no watermark. Pick the video (MP4, MOV, WebM, MKV, and other formats your browser can decode). It stays on your machine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fus1pl7ov4s50ccqbyzty.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fus1pl7ov4s50ccqbyzty.png" alt="The in-browser compressor drop zone on videocompress.dev" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Set the target to 10MB
&lt;/h2&gt;

&lt;p&gt;Choose &lt;strong&gt;Target size&lt;/strong&gt; and enter &lt;code&gt;10&lt;/code&gt;. That is the Discord free-tier cap. The &lt;a href="https://videocompress.dev/compress-mp4-for-discord" rel="noopener noreferrer"&gt;Discord MP4 compressor&lt;/a&gt; does the same job with the target already set near 9MB so you slip under the cap.If the clip is a &lt;a href="https://videocompress.dev/compress-screen-recording" rel="noopener noreferrer"&gt;screen recording&lt;/a&gt; with a lot of text, keep the original resolution first. Dropping to 720p only helps when the encode is starving for bits. On a test screen recording (10.70MB → target 10MB) the output was 5.61MB at the same 1280×720, and the on-page text stayed readable.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Download the MP4 and send it
&lt;/h2&gt;

&lt;p&gt;Output is MP4 (H.264 + AAC), which Discord plays without a fight. Upload that file in the channel.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb16wz0z2zi7km6on2t99.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb16wz0z2zi7km6on2t99.png" alt="Compressed file ready to download" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If it is still too big: set resolution to 720p and run it again. If your phone runs out of memory on a long 4K clip, use a desktop — there is no server quota, but there is a device-memory quota.&lt;/p&gt;

&lt;p&gt;For why a target works (and when it goes soft), see the &lt;a href="https://videocompress.dev/video-compression-guide" rel="noopener noreferrer"&gt;video compression guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this does not do
&lt;/h2&gt;

&lt;p&gt;It does not upload the video. It does not promise a specific look at 10MB on every source. A 45-second noisy 1080p clip will look softer than a talking-head clip of the same size. Judge the preview before you send.&lt;/p&gt;

&lt;p&gt;Need a hard cap on a file that is too large for the browser tab? &lt;a href="https://dev.to/videocompress/how-to-compress-a-video-to-an-exact-file-size-email-whatsapp-discord-953"&gt;Compress the video to an exact file size&lt;/a&gt; in the cloud instead.&lt;/p&gt;

&lt;p&gt;The tool picks a bitrate from the duration and leaves a safety margin, so the download usually lands &lt;em&gt;under&lt;/em&gt; 10MB rather than slightly over.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1sa6n2p3w8tblq0njs0m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1sa6n2p3w8tblq0njs0m.png" alt="Target size set to 10MB" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>ffmpeg</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I built a cloud video compressor that hits an exact file size</title>
      <dc:creator>videocompress</dc:creator>
      <pubDate>Sat, 12 Sep 2026 01:57:21 +0000</pubDate>
      <link>https://dev.to/videocompress/i-built-a-cloud-video-compressor-that-hits-an-exact-file-size-1oc8</link>
      <guid>https://dev.to/videocompress/i-built-a-cloud-video-compressor-that-hits-an-exact-file-size-1oc8</guid>
      <description>&lt;p&gt;Sometimes in-browser compression is the wrong tool: a 4K timeline, a machine without spare CPU, or you just need &lt;strong&gt;this file to be 8MB&lt;/strong&gt; and you don't want to guess CRF.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vidsmaller.com" rel="noopener noreferrer"&gt;VidSmaller&lt;/a&gt; encodes in the cloud to a target size. You pick the MB (or a Discord / WhatsApp / email / Reddit preset). No watermark.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Exact target file size&lt;/li&gt;
&lt;li&gt;33 input formats&lt;/li&gt;
&lt;li&gt;Advanced mode: H.264 / H.265, CRF, resolution&lt;/li&gt;
&lt;li&gt;Files deleted after processing&lt;/li&gt;
&lt;li&gt;Free to try (small files / limited credits). Pro unlocks larger files and H.265&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How it's different from videocompress.dev
&lt;/h2&gt;

&lt;p&gt;I also maintain &lt;a href="https://videocompress.dev" rel="noopener noreferrer"&gt;videocompress.dev&lt;/a&gt;, which never uploads — everything stays in the tab. VidSmaller is the opposite tradeoff: you upload, the server encodes, your laptop stays cool, and the size target is exact.&lt;/p&gt;

&lt;p&gt;If your clip is sensitive, use the in-browser one. If you need a hard size cap or a format the browser stack doesn't like, use VidSmaller.&lt;/p&gt;

&lt;p&gt;Site: &lt;a href="https://vidsmaller.com" rel="noopener noreferrer"&gt;vidsmaller.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>showdev</category>
      <category>saas</category>
      <category>ffmpeg</category>
    </item>
    <item>
      <title>I built a free in-browser video compressor — the file never leaves your device</title>
      <dc:creator>videocompress</dc:creator>
      <pubDate>Sat, 12 Sep 2026 01:54:55 +0000</pubDate>
      <link>https://dev.to/videocompress/i-built-a-free-in-browser-video-compressor-the-file-never-leaves-your-device-52pk</link>
      <guid>https://dev.to/videocompress/i-built-a-free-in-browser-video-compressor-the-file-never-leaves-your-device-52pk</guid>
      <description>&lt;p&gt;I wanted a compressor I could trust with client footage. Most "online video compressor" sites upload the file to a server. That's slow, and it's a privacy problem.&lt;/p&gt;

&lt;p&gt;So I built &lt;a href="https://videocompress.dev" rel="noopener noreferrer"&gt;VideoCompress&lt;/a&gt;: compression runs in the browser. The video is not uploaded.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Drop in MP4, MOV, WebM, MKV, AVI, and similar&lt;/li&gt;
&lt;li&gt;Set a &lt;strong&gt;target size in MB&lt;/strong&gt; (Discord 10, email 25) or pick High / Balanced / Small&lt;/li&gt;
&lt;li&gt;Optional downscale to 1080p / 720p / 480p&lt;/li&gt;
&lt;li&gt;Output is a widely compatible MP4 (H.264 + AAC)&lt;/li&gt;
&lt;li&gt;No account, no watermark, no file-size paywall&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;When the browser supports it, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/WebCodecs_API" rel="noopener noreferrer"&gt;WebCodecs&lt;/a&gt; does the heavy lifting. If not, it falls back to FFmpeg compiled to WebAssembly. Either way, processing stays on the device. The practical limit is your machine, not a server quota.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why not just use HandBrake?
&lt;/h2&gt;

&lt;p&gt;HandBrake is great. This is for the case where you already have a browser tab open and need a 10MB clip for Discord in two minutes — without installing anything and without sending the file to a random encoder.&lt;/p&gt;

&lt;p&gt;Try it: &lt;a href="https://videocompress.dev" rel="noopener noreferrer"&gt;videocompress.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy to answer questions about the WebCodecs / ffmpeg.wasm path.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>ffmpeg</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
