Introdução aos parâmetros comuns do ffmpeg para sintetizar imagens em vídeos

Diretório de artigos da série FFmpeg



Prefácio

Use ffmpeg para sintetizar imagens em vídeos e introduza alguns parâmetros de comando comuns.


Use ffmpeg para sintetizar imagens em vídeos

Este artigo apresenta como usar o ffmpeg para unir um grande número de imagens em um vídeo e apresenta o significado de alguns parâmetros comuns.

Antes de usar o ffmpeg para unir imagens em um vídeo, você precisa pré-processar os nomes dos arquivos de imagem. Deve haver números nos nomes dos arquivos para marcar sua ordem. Aqui eu uso diretamente o nome do arquivo + carimbo de data/hora para renomear as imagens, da seguinte maneira: diretamente use o
Insira a descrição da imagem aquicomando ffmpeg -f image2 -i %d.jpeg output.mp4 pode convertê-lo em vídeo mp4. O %d no comando é um espaço reservado numérico. O ffmpeg carregará *.jpeg como entrada em ordem. Não especificamos nenhum outro parâmetro aqui, então o ffmpeg usou os parâmetros padrão, como a taxa de quadros é 25fps, o vídeo é codificado com h264 e a resolução usa diretamente a resolução original da imagem...

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.76.100
  Duration: 00:00:10.00, start: 0.000000, bitrate: 28144 kb/s
  Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown), 2816x2160 [SAR 1:1 DAR 176:135], 28141 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]

Podemos ajustar seus parâmetros para gerar vídeos que melhor atendam às nossas necessidades. Aqui estão alguns parâmetros comuns.

-r ajustar a taxa de quadros

Se a taxa de quadros não for especificada, o ffmpeg usará os 25 quadros padrão, o que significa que 25 imagens serão unidas em 1 segundo. Podemos controlar a duração do vídeo final gerado ajustando a taxa de quadros.

ffmpeg -r 10 -f image2 -i %d.jpeg output1.mp4

O comando acima irá unir 10 imagens por segundo e 250 imagens irão eventualmente gerar um vídeo de 25 segundos.
Aqui você precisa prestar atenção à posição do parâmetro -r 10. O efeito antes de -i %d.jpeg é diferente daquele depois de -i %d.jpeg. Colocá-lo depois de -i alterará apenas a taxa de quadros do vídeo de saída, mas a entrada ainda terá o valor padrão de 25, como ffmpeg -f image2 -i% d.jpeg -r 10 output1.mp4, 250 imagens ainda serão geradas apenas um vídeo de 10s, mas a taxa de reprodução do vídeo será reduzida para 10.

-b:v ajusta a taxa de bits do vídeo

-b:v taxa de bits do vídeo. Se a imagem original for maior, o tamanho do vídeo gerado pelos parâmetros padrão será maior. Por exemplo, as imagens que usei acima são todas imagens de alta definição de 2k, e o vídeo final gerado de 10s tem 35MB, com uma taxa de bits de quase 30Mb/s (a taxa de bits é a quantidade de dados transmitidos em apenas 1s, observe que a unidade aqui é pequena b).

ffmpeg -r 10 -f image2 -i %d.jpeg -b:v 4M output2.mp4

Um lembrete adicional aqui é que alterar a taxa de bits afetará a definição do vídeo, mas não significa que um vídeo com taxa de bits alta deva ter uma definição mais alta do que um vídeo com taxa de bits baixa. Isso também depende do formato de codificação do vídeo. Por exemplo, A codificação h265 pode ser usada. Uma taxa de bits menor produz a mesma qualidade de vídeo que h264, e codificações como av1, v8, v9 também são melhores que h264.

-crf ajustar a qualidade do vídeo

-crf Constant Rate Factor, um parâmetro usado para equilibrar a qualidade do vídeo e o tamanho do arquivo. O intervalo de valores no FFMPEG é de 0 a 51. Quanto maior o valor, mais conteúdo será perdido e a qualidade do vídeo será pior. O valor padrão de ffmpeg é 23 e o intervalo de valores recomendado é 17-28.

ffmpeg -r 10 -f image2 -i %d.jpeg output3.mp4

-c:v ajusta o formato de codificação do vídeo

-c:v codec de vídeo. Atualmente, o ffmpeg usa h264 por padrão para mp4. Você pode usar -c:v libx265 para gerar vídeos h265 com a mesma qualidade, mas arquivos menores.

ffmpeg -f image2 -i %d.jpeg -c:v libx265 output4.mp4

Comparado com o output.mp4 gerado acima, o tamanho do arquivo de vídeo do output4.mp4 é reduzido em 60%, mas a qualidade do vídeo permanece inalterada. Você também pode usar -c:v libvpx -c:v libvpx-vp9 para gerar arquivos webm codificados em v8 e v9, respectivamente.

ffmpeg -f image2 -i %d.jpeg -c:v libvpx output-v8.webm #Observe que o webm gera vídeos de baixa qualidade por padrão. Você pode usar os parâmetros -crf ou -b:v para ajustar a qualidade do vídeo.

escala -vf ajusta a resolução do vídeo

escala -vf: Escala de filtro de vídeo

ffmpeg -f image2 -i %d.jpeg -s 640x480 output5.mp4

O comando acima ajustará diretamente o vídeo para uma resolução de 640 x 480. Se a imagem original não for 4: 3, a imagem original será definitivamente esticada. Você pode usar o seguinte comando para dimensionar proporcionalmente

ffmpeg -f image2 -i %d.jpeg -vf scale=-1:480 output5.mp4 #-1表示比例缩放,也可-vf scale=640:-1固定宽度缩放高度

Acima estão alguns parâmetros comumente usados. Esses parâmetros não se limitam apenas à conversão de imagens em vídeos, mas também podem ser usados ​​​​na conversão de vídeos em vídeos.


Acho que você gosta

Origin blog.csdn.net/zyq880625/article/details/129554078
Recomendado
Clasificación