AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1459724
Accepted
Daniel Wagner
Daniel Wagner
Asked: 2019-07-15 11:10:13 +0800 CST2019-07-15 11:10:13 +0800 CST 2019-07-15 11:10:13 +0800 CST

Por que o FFmpeg escolhe 10+20+20 ms em vez de 16 ms para imagens GIF de 60 fps?

  • 772

Tenho um vídeo curto de 60 qps que gostaria de transformar em um arquivo GIF. eu corro

ffmpeg -i foo.flv foo.gif

e produz um arquivo GIF. Excelente!

O único problema é que o movimento no vídeo GIF produzido é inconsistente e desigual. Se eu usar outra ferramenta, posso ver que o FFmpeg criou um vídeo em que o primeiro quadro tem 10 ms, o segundo 20 ms, o terceiro 20 ms e depois repete assim: 10 ms, 20 ms, 20 ms. Se eu usar outra ferramenta para suavizar até 16 ms para cada quadro (sem alterar o conteúdo do quadro), o resultado ficará lindo.

Por que o FFmpeg está fazendo isso? Como posso pedir para gravar um arquivo GIF que solicita até 16 ms por quadro, para que eu não precise usar uma segunda ferramenta?

Eu já vi esta questão relacionada perguntando se existem vídeos GIF de 60 qps, mas ela não aborda a questão de como pedir ao FFmpeg para alterar seu comportamento. Além disso, levanta uma nova questão: se 16ms não é um tempo que o GIF pode representar, o que a outra ferramenta que estou usando está fazendo e por que funciona bem?

video ffmpeg
  • 1 1 respostas
  • 7764 Views

1 respostas

  • Voted
  1. Best Answer
    Daniel Wagner
    2019-07-15T11:53:24+08:002019-07-15T11:53:24+08:00

    Conforme discutido em Os GIFs de 60 FPS realmente existem? Ou é o máximo de 50 FPS? , a resolução dos tempos de quadro no GIF é de 10 ms, portanto, não é possível obter até mesmo 16 ms por quadro. Assim, as respostas para as perguntas, em ordem, são:

    Por que o ffmpeg está fazendo isso?

    Porque 10+20+20 dá a você 60 fps em média e é a aproximação mais precisa dessa propriedade que pode ser representada dentro das restrições do formato GIF.

    Como posso pedir para escrever um gif que solicita até 16 ms por quadro, para que eu não precise usar uma segunda ferramenta?

    Você não pode, porque o formato gif não pode representar isso. Mas descobri que pedir para fazer um vídeo de 50 fps - que pode ser representado exatamente no formato GIF - produz bons resultados suaves. Isso pode ser feito com:

    ffmpeg -i foo.flv -vf fps=50 foo.gif
    

    Isso usa a interpolação temporal do vizinho mais próximo para escolher qual quadro transferir para a saída.

    Se 16ms não é um tempo que o gif pode representar, qual é a outra ferramenta que estou usando e por que funciona bem?

    A outra ferramenta que eu estava usando era o GIMP, e sua escolha é arredondar cada quadro para o tamanho representável mais próximo, por isso estava alterando silenciosamente meus 16 ms/quadro solicitados para 20 ms/quadro. Provavelmente funciona bem porque meus pobres olhos humanos não conseguem dizer que tudo estava acontecendo um pouco devagar demais para estar correto; apenas que os movimentos estavam acontecendo suavemente em vez de em intervalos espaçados de forma incomum.

    • 84

relate perguntas

  • Como salvar o fluxo de vídeo TS com ffmpeg 2.0.2?

  • Extraia I-frames para imagens rapidamente

  • Os vídeos compactados podem ser decodificados de volta ao formato original não compactado?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve