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 / 1754548
Accepted
GPWR
GPWR
Asked: 2022-11-25 11:44:48 +0800 CST2022-11-25 11:44:48 +0800 CST 2022-11-25 11:44:48 +0800 CST

Como melhorar o desempenho do FFmpeg em uma configuração mais antiga ao dimensionar imagens

  • 772

Estou executando o Debian GNU/Linux 11 (bullseye) x86_64 em um PC HP Compaq 8000 Elite CMT e ele tem uma CPU antiga (Intel Core 2 Duo E8400 (2) @ 3.000 GHz) e uma GPU (GeForce GT 730) que não 'não suporta codificação de vídeo, então nem considere o fato de eu ter uma GPU.

Tenho cento e nove imagens JPEG de 5184 * 3888px que desejo reduzir em FFmpeg. Executar este comando resulta em bugs do meu computador completamente:

ffmpeg -i *.JPG -vf scale=1296:972 *.JPG

Não consigo mexer o mouse, sair do programa, nada. Isso acontece depois que confirmo que desejo substituir arquivos com os mesmos nomes.

Como pude ver que nenhum arquivo foi alterado depois que reiniciei meu computador, estou assumindo que o FFmpeg não produziu nada antes de parar. Tentei o procedimento várias vezes e sempre travava o computador.

Como digo ao FFmpeg para "ir devagar" em vez de encher minha CPU e você poderia estimar uma boa configuração que devo usar para obter o desempenho ideal?

linux
  • 2 2 respostas
  • 72 Views

2 respostas

  • Voted
  1. Best Answer
    Giacomo1968
    2022-11-26T08:07:53+08:002022-11-26T08:07:53+08:00

    Use ImageMagic em vez de FFmpeg.

    Por que você está usando o FFmpeg para processar imagens? Você está usando uma ferramenta usada principalmente para processar vídeo para processar imagens estáticas.

    Sim, eu sei que o FFmpeg pode fazer o que você está tentando fazer, mas essa não é a ferramenta que muitos usariam em um caso como este.

    Basta instalar o ImageMagick e executar este comando:

    find -E * - maxdepth 1 -type f -iregex '.*\.(JPG|JPEG|PNG|PSD|TIF|TIFF|HEIC)$' |\
        while read FULL_IMAGE_PATH
        do
            convert -density 72 -units PixelsPerInch -resize "1296x972>" -quality 100 "${FULL_IMAGE_PATH}" "${FULL_IMAGE_PATH}";
        done
    

    Este é um findscript básico que uso para redimensionar imagens e funciona muito bem!

    E se esse script ainda sufocar seu sistema, use sleeppara pausar cada loop do comando. Aqui está uma versão modificada do comando acima que adiciona uma pausa simples de 1 segundo entre cada loop.

    find -E * - maxdepth 1 -type f -iregex '.*\.(JPG|JPEG|PNG|PSD|TIF|TIFF|HEIC)$' |\
        while read FULL_IMAGE_PATH
        do
            convert -density 72 -units PixelsPerInch -resize "1296x972>" -quality 100 "${FULL_IMAGE_PATH}" "${FULL_IMAGE_PATH}";
        sleep 1;
        done
    

    Ou, se esse material parecer muito complicado de usar - é simplesmente mais robusto e flexível na minha humilde opinião - você pode simplesmente usar esta variante do forloop que está usando, mas com o ImageMagick assim:

    for i in *.JPG;
    do
        convert -density 72 -units PixelsPerInch -resize "1296x972>" -quality 100 "$i" "$i"-scaled.jpg;
    done
    
    • 2
  2. GPWR
    2022-11-26T07:28:10+08:002022-11-26T07:28:10+08:00

    Uma maneira de corrigir isso é usar um for-loop Bash simples de linha única, da seguinte maneira:

    for i in *.JPG; do ffmpeg -i "$i" -vf scale=1296:972 "$i"-scaled.jpg; done
    

    A for i in *.JPG;parte pode ser traduzida para o inglês como: "para todos os arquivos que terminam em '.JPG' (aliás, atribua o restante do nome à variável i )". O do ffmpeg -i "$i"pode ser traduzido como: "faça o seguinte: chame ffmpeg e insira todos os arquivos com um nome que corresponda ao valor de i , ou seja, todos os arquivos que terminam em .JPG." A -vf scale=1296:972parte se traduz em: "aplique o filtro de vídeo 'escala', usando as dimensões 1296 por 972 (em pixels, por padrão)." A "$i"-scaled.jpgparte se traduz em "todos os arquivos de saída devem ser nomeados com seu nome original, seguido pela string '-scaled.jpg'." A parte final, done, não deve ser deixada de fora, pois é ela que encerra o loop for, resultando no término da execução do comando Bash.

    • 1

relate perguntas

  • Como eu faria minha máquina Linux parecer que está executando o Windows?

  • Existe um equivalente a cd - para cp ou mv?

  • execute o contêiner do docker como root

  • Como ativar o sensor de impressão digital no domínio e no diretório ativo do Linux

  • Como alterar permanentemente Ctrl + C para Ctrl + K no CentOS 7?

Sidebar

Stats

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

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 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

    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
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +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
    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