{"id":4875,"date":"2026-01-06T16:16:58","date_gmt":"2026-01-06T08:16:58","guid":{"rendered":"https:\/\/imastudio.com\/?p=4875"},"modified":"2026-01-06T16:17:31","modified_gmt":"2026-01-06T08:17:31","slug":"mp4-to-webp-macos-ffmpeg-script","status":"publish","type":"post","link":"https:\/\/imastudio.com\/pt\/blog\/mp4-to-webp-macos-ffmpeg-script","title":{"rendered":"Script para macOS com um clique para transformar MP4 em anima\u00e7\u00f5es em loop no estilo WebP GIF."},"content":{"rendered":"<p class=\"wp-block-paragraph\">Para trabalhos de desenvolvimento de aplicativos e para clientes, muitas vezes preciso de <strong>visualizar conte\u00fado de v\u00eddeo rapidamente<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pr\u00e9-visualiza\u00e7\u00e3o de anima\u00e7\u00f5es para gerentes de produto<\/li>\n\n\n\n<li>Clipes de demonstra\u00e7\u00e3o para documentos ou PRDs<\/li>\n\n\n\n<li>Anima\u00e7\u00f5es leves para posts em redes sociais ou p\u00e1ginas de destino.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Nesses casos, <strong>Extraindo alguns quadros-chave de um arquivo MP4 e transformando-os em uma anima\u00e7\u00e3o WebP em loop.<\/strong> Geralmente \u00e9 suficiente \u2014 e muito mais leve do que enviar um v\u00eddeo completo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"533\" src=\"https:\/\/imastudio.com\/wp-content\/uploads\/2026\/01\/mac-os-video-to-webp-gif.jpg\" alt=\"\" class=\"wp-image-4877\" srcset=\"https:\/\/imastudio.com\/wp-content\/uploads\/2026\/01\/mac-os-video-to-webp-gif.jpg 800w, https:\/\/imastudio.com\/wp-content\/uploads\/2026\/01\/mac-os-video-to-webp-gif-300x200.jpg 300w, https:\/\/imastudio.com\/wp-content\/uploads\/2026\/01\/mac-os-video-to-webp-gif-768x512.jpg 768w, https:\/\/imastudio.com\/wp-content\/uploads\/2026\/01\/mac-os-video-to-webp-gif-18x12.jpg 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Este artigo compartilha um <strong>Script de shell de um clique para macOS<\/strong> que:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Extrai de 6 a 12 quadros uniformemente espa\u00e7ados de um arquivo MP4.<\/li>\n\n\n\n<li>redimensiona-os para 720px de largura.<\/li>\n\n\n\n<li>Cria uma anima\u00e7\u00e3o WebP em loop.<\/li>\n\n\n\n<li>e instala automaticamente <code>ffmpeg<\/code> se estiver faltando<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Tudo isso \u00e9 executado a partir de um \u00fanico comando no Terminal.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. O que o roteiro faz<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No macOS, o script <code>extrair_quadros_pares_webp.sh<\/code> fornece:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Autom\u00e1tico <code>ffmpeg<\/code> detec\u00e7\u00e3o e instala\u00e7\u00e3o<\/strong>\n<ul class=\"wp-block-list\">\n<li>Verifica se <code>ffmpeg<\/code> est\u00e1 dispon\u00edvel<\/li>\n\n\n\n<li>Caso contr\u00e1rio, instale o Homebrew (se necess\u00e1rio) e depois instale o <code>ffmpeg<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Extra\u00e7\u00e3o de quadros uniforme<\/strong>\n<ul class=\"wp-block-list\">\n<li>Calcula a dura\u00e7\u00e3o do v\u00eddeo.<\/li>\n\n\n\n<li>Amostras uniformes <strong>6\u201312 quadros<\/strong> ao longo de todo o clipe<\/li>\n\n\n\n<li>O padr\u00e3o \u00e9 de 6 quadros, mas voc\u00ea pode personalizar o n\u00famero.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Gera\u00e7\u00e3o de anima\u00e7\u00e3o WebP<\/strong>\n<ul class=\"wp-block-list\">\n<li>Combina os quadros PNG extra\u00eddos em um <strong>WebP em loop<\/strong><\/li>\n\n\n\n<li>A largura de sa\u00edda \u00e9 <strong>720px<\/strong> Por padr\u00e3o (a altura \u00e9 dimensionada proporcionalmente)<\/li>\n\n\n\n<li>A qualidade \u00e9 ajust\u00e1vel atrav\u00e9s de <code>-q:v<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Limpeza autom\u00e1tica<\/strong>\n<ul class=\"wp-block-list\">\n<li>Armazena quadros intermedi\u00e1rios em um diret\u00f3rio tempor\u00e1rio.<\/li>\n\n\n\n<li>Exclui o diret\u00f3rio tempor\u00e1rio ap\u00f3s a gera\u00e7\u00e3o do WebP.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Funciona tanto com v\u00eddeos curtos quanto longos.<\/strong>\n<ul class=\"wp-block-list\">\n<li>Se o v\u00eddeo for muito curto, a contagem de quadros \u00e9 reduzida automaticamente.<\/li>\n\n\n\n<li>Em v\u00eddeos mais longos, os frames s\u00e3o sempre espa\u00e7ados uniformemente ao longo de toda a dura\u00e7\u00e3o.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Como funciona por baixo do cap\u00f4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Eis a l\u00f3gica b\u00e1sica por tr\u00e1s do script.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.1 Verificar depend\u00eancias<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O script primeiro verifica se <code>ffmpeg<\/code> est\u00e1 instalado:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Usos <code>comando -v ffmpeg<\/code><\/li>\n\n\n\n<li>Caso n\u00e3o seja encontrado, verifica se... <code>cerveja<\/code>\n<ul class=\"wp-block-list\">\n<li>Se o Homebrew estiver faltando, ele o instala.<\/li>\n\n\n\n<li>Em seguida, usa <code>brew install ffmpeg<\/code> para instalar <code>ffmpeg<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2.2 Recuperar a dura\u00e7\u00e3o do v\u00eddeo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Usando <code>ffprobe<\/code>, o roteiro l\u00ea o <strong>dura\u00e7\u00e3o total do v\u00eddeo em segundos<\/strong>.<br>Com base nisso e na quantidade de quadros desejada, calcula o intervalo de tempo entre os quadros.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.3 Amostrar uniformemente os quadros<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para cada \u00edndice de quadro, ele:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Calcula o carimbo de data\/hora = <code>\u00edndice \u00d7 intervalo<\/code><\/li>\n\n\n\n<li>Usos <code>ffmpeg -ss<\/code> para saltar para essa posi\u00e7\u00e3o temporal<\/li>\n\n\n\n<li>Extrai exatamente um quadro.<\/li>\n\n\n\n<li>Dimensiona-o com <code>escala=720:-1<\/code> Portanto, a largura \u00e9 de 720px e a altura \u00e9 proporcional.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2.4 Criar a anima\u00e7\u00e3o WebP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Assim que todos os frames forem salvos como PNGs, o script chama <code>ffmpeg<\/code> novamente para:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Leia-os em ordem (<code>%03d.png<\/code>)<\/li>\n\n\n\n<li>Codifique-os como um WebP animado.<\/li>\n\n\n\n<li>Definir <code>-loop 0<\/code> assim a anima\u00e7\u00e3o se repete indefinidamente<\/li>\n\n\n\n<li>Controle a qualidade com <code>-q:v 70<\/code> (menor = maior qualidade, arquivo maior)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2.5 Limpeza<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Todos os arquivos PNG intermedi\u00e1rios s\u00e3o armazenados em um diret\u00f3rio tempor\u00e1rio criado por <code>mktemp -d<\/code>.<br>Ap\u00f3s a gera\u00e7\u00e3o do WebP, esse diret\u00f3rio \u00e9 removido com <code>rm -rf<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Script shell completo: extract_even_frames_webp.sh<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea pode salvar o seguinte script como <code>extrair_quadros_pares_webp.sh<\/code> No seu Mac:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\n# Usage: .\/extract_even_frames_webp.sh input.mp4 output.webp &#91;frames]\n# frames is optional, default 6, maximum 12\n\nINPUT=\"$1\"\nOUTPUT=\"$2\"\nFRAMES=\"${3:-6}\"\n\n# Cap maximum frames at 12\nif &#91; \"$FRAMES\" -gt 12 ]; then\n    FRAMES=12\nfi\n\nif &#91; -z \"$INPUT\" ] || &#91; -z \"$OUTPUT\" ]; then\n    echo \"Usage: $0 input.mp4 output.webp &#91;frames]\"\n    exit 1\nfi\n\n# ---------------------------------\n# 1\ufe0f\u20e3 Check ffmpeg\n# ---------------------------------\nif ! command -v ffmpeg &gt;\/dev\/null 2&gt;&amp;1; then\n    echo \"\u26a0\ufe0f ffmpeg not found, starting installation...\"\n    if ! command -v brew &gt;\/dev\/null 2&gt;&amp;1; then\n        echo \"\u26a0\ufe0f Homebrew not found, installing Homebrew...\"\n        \/bin\/bash -c \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh)\"\n        echo \"\u2705 Homebrew installed\"\n    else\n        echo \"\u2705 Homebrew already installed\"\n    fi\n    brew update\n    brew install ffmpeg\n    if ! command -v ffmpeg &gt;\/dev\/null 2&gt;&amp;1; then\n        echo \"\u274c ffmpeg installation failed, please check manually\"\n        exit 1\n    fi\n    echo \"\ud83c\udf89 ffmpeg installed successfully!\"\nelse\n    echo \"\u2705 ffmpeg is already installed\"\nfi\n\n# ---------------------------------\n# 2\ufe0f\u20e3 Get video duration\n# ---------------------------------\nDURATION=$(ffprobe -v error -show_entries format=duration -of csv=p=0 \"$INPUT\")\nif &#91;&#91; -z \"$DURATION\" ]]; then\n    echo \"\u274c Failed to get video duration\"\n    exit 1\nfi\nDURATION=${DURATION%.*}  # integer seconds\n\n# If video is shorter than requested frames, match frame count to duration\nif &#91; \"$DURATION\" -lt \"$FRAMES\" ]; then\n    FRAMES=$DURATION\nfi\n\necho \"\ud83d\udcf9 Video length: ${DURATION}s, extracting $FRAMES frames evenly\"\n\n# ---------------------------------\n# 3\ufe0f\u20e3 Create temporary directory\n# ---------------------------------\nTMPDIR=$(mktemp -d)\n\n# ---------------------------------\n# 4\ufe0f\u20e3 Calculate interval\n# ---------------------------------\nINTERVAL=$(echo \"scale=6; $DURATION\/$FRAMES\" | bc)\necho \"\u23f1 Frame interval: $INTERVAL seconds\"\n\n# ---------------------------------\n# 5\ufe0f\u20e3 Extract frames\n# ---------------------------------\nfor i in $(seq 0 $(($FRAMES-1))); do\n    TIME=$(echo \"$i * $INTERVAL\" | bc)\n    printf -v FILENAME \"%03d.png\" $((i+1))\n    ffmpeg -ss \"$TIME\" -i \"$INPUT\" -frames:v 1 -vf \"scale=720:-1\" \\\n        \"$TMPDIR\/$FILENAME\" -hide_banner -loglevel error\ndone\n\n# ---------------------------------\n# 6\ufe0f\u20e3 Generate animated WebP\n# ---------------------------------\nffmpeg -y -i \"$TMPDIR\/%03d.png\" -vcodec libwebp -lossless 0 -q:v 70 \\\n    -loop 0 -preset picture \"$OUTPUT\" -hide_banner -loglevel error\n\n# ---------------------------------\n# 7\ufe0f\u20e3 Clean up\n# ---------------------------------\nrm -rf \"$TMPDIR\"\n\necho \"\ud83c\udf89 Done! Generated file: $OUTPUT\"\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Como usar o script no macOS<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Salve o script<\/strong> Salve o conte\u00fado acima como <code>extrair_quadros_pares_webp.sh<\/code>, por exemplo, no seu diret\u00f3rio pessoal.<\/li>\n\n\n\n<li><strong>Conceda permiss\u00e3o de execu\u00e7\u00e3o.<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod +x extract_even_frames_webp.sh\n<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Uso b\u00e1sico<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>.\/extract_even_frames_webp.sh input.mp4 output.webp\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Isto ir\u00e1:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verifique ou instale <code>ffmpeg<\/code><\/li>\n\n\n\n<li>Extraia 6 quadros com espa\u00e7amento uniforme.<\/li>\n\n\n\n<li>Gerar <code>sa\u00edda.webp<\/code> com 720px de largura<\/li>\n<\/ul>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Especifique o n\u00famero de quadros (6\u201312)<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>.\/extract_even_frames_webp.sh input.mp4 output.webp 8\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Isso extrair\u00e1 8 quadros em vez dos 6 padr\u00e3o.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Por que esse fluxo de trabalho \u00e9 \u00fatil<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Comparado com a abertura manual de um editor de v\u00eddeo ou o uso de um conversor com interface gr\u00e1fica, este script apresenta algumas vantagens:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Configura\u00e7\u00e3o manual zero<\/strong>\n<ul class=\"wp-block-list\">\n<li>Instala-se automaticamente <code>ffmpeg<\/code> (e cerveja caseira, se necess\u00e1rio)<\/li>\n\n\n\n<li>N\u00e3o precisa procurar instaladores nem memorizar comandos.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Amostragem de quadros inteligentes<\/strong>\n<ul class=\"wp-block-list\">\n<li>Para v\u00eddeos curtos, ele reduz automaticamente a contagem de quadros.<\/li>\n\n\n\n<li>Em v\u00eddeos mais longos, os frames s\u00e3o sempre espa\u00e7ados uniformemente ao longo da dura\u00e7\u00e3o.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Controle de qualidade e tamanho<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>-q:v<\/code> Permite ajustar a qualidade do WebP em rela\u00e7\u00e3o ao tamanho do arquivo.<\/li>\n\n\n\n<li><code>escala=720:-1<\/code> Oferece uma largura adequada para a web e uma propor\u00e7\u00e3o consistente.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Repeti\u00e7\u00e3o por padr\u00e3o<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>-loop 0<\/code> faz com que a anima\u00e7\u00e3o WebP entre em loop infinito.<\/li>\n\n\n\n<li>Ideal para pr\u00e9-visualiza\u00e7\u00f5es, demonstra\u00e7\u00f5es e anima\u00e7\u00f5es sutis em documentos ou sites.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Limpeza do uso do disco<\/strong>\n<ul class=\"wp-block-list\">\n<li>Os frames PNG tempor\u00e1rios s\u00e3o armazenados em uma pasta tempor\u00e1ria e exclu\u00eddos posteriormente.<\/li>\n\n\n\n<li>Sem ac\u00famulo de arquivos residuais ao longo do tempo.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6. Exemplo: converter um MP4 de 20 segundos em uma pr\u00e9-visualiza\u00e7\u00e3o WebP.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine que voc\u00ea tem um <strong>V\u00eddeo de demonstra\u00e7\u00e3o do recurso com 20 segundos de dura\u00e7\u00e3o<\/strong> e executar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.\/extract_even_frames_webp.sh demo.mp4 demo-preview.webp 6\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O roteiro ir\u00e1:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Calcule um intervalo de aproximadamente <strong>3,33 segundos<\/strong><\/li>\n\n\n\n<li>Extraia 6 quadros em <code>0s, 3,33s, 6,66s, 10s, 13,33s, 16,66s<\/code><\/li>\n\n\n\n<li>Redimensione-os para 720px de largura.<\/li>\n\n\n\n<li>Construa um <strong>WebP em loop<\/strong> anima\u00e7\u00e3o<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Em seguida, voc\u00ea pode inserir este WebP em:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Documentos de produto ou documentos Feishu\/Notion como um <strong>pr\u00e9-visualiza\u00e7\u00e3o leve<\/strong><\/li>\n\n\n\n<li>Postagens em redes sociais ou p\u00e1ginas de destino como um <strong>miniatura de movimento com reprodu\u00e7\u00e3o autom\u00e1tica<\/strong><\/li>\n\n\n\n<li>Apresenta\u00e7\u00f5es em PowerPoint e demonstra\u00e7\u00f5es internas onde um v\u00eddeo completo seria excessivo.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">7. Ideias para extens\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Este script \u00e9 um ponto de partida \u2014 voc\u00ea pode facilmente adapt\u00e1-lo ao seu pr\u00f3prio fluxo de trabalho:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Contagem de quadros din\u00e2mica<\/strong>\n<ul class=\"wp-block-list\">\n<li>Sele\u00e7\u00e3o autom\u00e1tica entre 6 e 12 quadros com base na dura\u00e7\u00e3o do v\u00eddeo.<\/li>\n\n\n\n<li>Por exemplo, mais frames para clipes mais longos para mostrar mais estados.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Tamanhos personalizados<\/strong>\n<ul class=\"wp-block-list\">\n<li>Mudar <code>escala=720:-1<\/code> para qualquer largura que sua equipe de produto preferir.<\/li>\n\n\n\n<li>Ou exponha a largura como um par\u00e2metro: <code>.\/script.sh in.mp4 out.webp 8 1080<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Processamento em lote<\/strong>\n<ul class=\"wp-block-list\">\n<li>Envolva este script em outro loop para processar tudo. <code>.mp4<\/code> arquivos em uma pasta<\/li>\n\n\n\n<li>\u00datil quando voc\u00ea exporta um lote de demonstra\u00e7\u00f5es de recursos de uma s\u00f3 vez.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Nota do autor<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Este script faz parte do meu fluxo de trabalho real de desenvolvimento para macOS, que consiste em converter v\u00eddeos MP4 em pr\u00e9-visualiza\u00e7\u00f5es WebP leves. Eu o utilizo diariamente no desenvolvimento de projetos para clientes, gerando anima\u00e7\u00f5es de demonstra\u00e7\u00e3o para documenta\u00e7\u00e3o e publica\u00e7\u00f5es em redes sociais. O GPT foi usado apenas para auxiliar na tradu\u00e7\u00e3o, estrutura\u00e7\u00e3o e aprimoramento da vers\u00e3o em ingl\u00eas deste artigo \u2014 a l\u00f3gica do script, os detalhes de implementa\u00e7\u00e3o e os padr\u00f5es de uso s\u00e3o todos baseados na minha pr\u00f3pria experi\u00eancia em projetos.<\/p>","protected":false},"excerpt":{"rendered":"<p>Para trabalhos de desenvolvimento de aplicativos e para clientes, frequentemente preciso visualizar conte\u00fado de v\u00eddeo rapidamente: nesses casos, extrair alguns quadros-chave de um MP4 e transform\u00e1-los em uma anima\u00e7\u00e3o WebP em loop geralmente \u00e9 suficiente \u2014 e muito mais leve do que fazer o upload de um v\u00eddeo completo. Este artigo compartilha um script de shell para macOS que permite: [\u2026]<\/p>","protected":false},"author":8,"featured_media":4877,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"MP4 to WebP on macOS: One-Click ffmpeg Script Guide","rank_math_description":"Use a one-click macOS shell script with ffmpeg to convert MP4 to looping WebP animations, with auto-install, even frame extraction and clean temp files.","footnotes":""},"categories":[35],"tags":[],"class_list":["post-4875","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knowledge-hub"],"_links":{"self":[{"href":"https:\/\/imastudio.com\/pt\/wp-json\/wp\/v2\/posts\/4875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imastudio.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imastudio.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imastudio.com\/pt\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/imastudio.com\/pt\/wp-json\/wp\/v2\/comments?post=4875"}],"version-history":[{"count":2,"href":"https:\/\/imastudio.com\/pt\/wp-json\/wp\/v2\/posts\/4875\/revisions"}],"predecessor-version":[{"id":4878,"href":"https:\/\/imastudio.com\/pt\/wp-json\/wp\/v2\/posts\/4875\/revisions\/4878"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imastudio.com\/pt\/wp-json\/wp\/v2\/media\/4877"}],"wp:attachment":[{"href":"https:\/\/imastudio.com\/pt\/wp-json\/wp\/v2\/media?parent=4875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imastudio.com\/pt\/wp-json\/wp\/v2\/categories?post=4875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imastudio.com\/pt\/wp-json\/wp\/v2\/tags?post=4875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}