O que é o FFmpeg?
O FFmpeg é um projecto gratuito que fornece uma colecção de programas para tratar dados como áudio, vídeo e imagens. É uma ferramenta que é utilizada para converter, gravar, transmitir e reproduzir ficheiros.
O FFmpeg suporta uma vasta gama de formatos e codecs e é utilizado para tarefas como transcodificação, redimensionamento de filtros, adição de marcas de água ou legendas , obtenção de áudio de vídeo e fusão de vários vídeos ou ficheiros de áudio. Também é possível criar um GIF utilizando o FFmpeg e combinar ficheiros MP4 utilizando o FFMPEG no Windows
O FFmpeg é amplamente utilizado na indústria dos media e está disponível na maioria dos sistemas operativos, incluindo Windows, macOS, Linux e Unix.
Como utilizar o FFmpeg?
Aqui estão alguns exemplos comuns de como utilizar o FFmpeg:
- Converter um ficheiro de vídeo de um formato para outro:
Código: ffmpeg -i input_video .mp4 output_video.avi
Este comando converterá
input_video.mp4
em
output_video.avi
. O FFmpeg seleccionará automaticamente os codecs apropriados para o formato de saída.
- Redimensionar um vídeo:
Código: ffmpeg -i input_video .mp4 -vf scale=640:480 output_video .mp4
Este comando irá redimensionar
input_video.mp4
para uma resolução de 640×480 pixéis e guardar o resultado em
output_video.mp4
.
- Extrair áudio de um vídeo:
Código: ffmpeg -i input_video .mp4 -vn output_audio .mp3
Este comando irá extrair a faixa de áudio de
input_video.mp4
e guardá-la em
output_audio.mp3
.
- Concatenar dois vídeos:
Código: ffmpeg -i input_video1 .mp4 -i input_video2 .mp4 -filter_complex concat output_video .mp4
Este comando concatena
input_video1.mp4
e
input_video2.mp4
e guarda o resultado em
output_video.mp4
.
- Adicionar uma marca de água a um vídeo:
Código: ffmpeg -i input_video .mp4 -i watermark.png -filter_complex “overlay=10:10” output_video .mp4
Este comando adicionará a imagem
watermark.png
ao canto superior esquerdo de
input_video.mp4
com um deslocamento de 10 pixels e guardará o resultado em
output_video.mp4
.
Estes são apenas alguns exemplos do que pode ser feito com o FFmpeg. Também é possível utilizar o FFmpeg no Android. Para mais informações, consulte os tutoriais em linha, as transmissões em vídeo ou os chatbots de IA, como o ChatGPT.
Quais são os comandos úteis de edição de vídeo do FFmpeg?
- Recortar um vídeo:
Código: ffmpeg -i input_video .mp4 -ss 00:00:05 -t 00:00:10 -c copy output_video .mp4
Este comando recortará
input_video.mp4
para começar na marca dos 5 segundos e terminar após 10 segundos e guardará o resultado em
output_video.mp4
.
- Adicionar uma imagem ou sobreposição de vídeo ao meu vídeo:
Código: ffmpeg -i input_video .mp4 -i overlay_image.png -filter_complex “overlay=10:10” output_video .mp4
Este comando adicionará o ficheiro
overlay_image.png
como uma sobreposição a
input_video.mp4
nas coordenadas (10, 10) e guardará o resultado em
output_video.mp4
.
- Alterar a resolução de vídeo:
Código: ffmpeg -i input_video .mp4 -vf scale=1280:720 -c:a copy output_video .mp4
Este comando altera a resolução de
input_video.mp4
para 1280×720 pixéis e guarda o resultado em
output_video.mp4
.
-
Adicionar as opções
textfile
ereload
para drawtext:
Código: ffmpeg -i input.mp4 -vf “drawtext=fontfile=/path/to/font.ttf:textfile=text.txt:reload=1:fontcolor=white:fontsize=24:box=1:boxcolor=black@0.5:boxborderw=5:x=(w-text_w)/2:y=(h-text_h)/2” -codec:a copy output.mp4
Como adicionar texto ao vídeo com o FFmpeg?
Para adicionar texto a um vídeo com o FFmpeg, utilize o filtro
drawtext
. O filtro
drawtext
permite-lhe especificar o tipo de letra, o tamanho, a cor e a posição do texto, entre outros parâmetros.
Aqui está um comando básico para adicionar texto a um vídeo utilizando o filtro
drawtext
:
Código: ffmpeg -i input_video .mp4 -vf “drawtext=text=’Hello World’:fontfile=/path/to/font.ttf:fontsize=50:fontcolor=white:x=100:y=100” -codec:a copy output_video .mp4
Neste comando:
-
-i input_video.mp4
especifica o ficheiro de vídeo de entrada. -
-vf "drawtext=..."
especifica o filtro de vídeo a aplicar, que, neste caso, é o filtrodrawtext
. -
text='Hello World'
especifica o texto a adicionar ao vídeo. -
fontfile=/path/to/font.ttf
especifica o ficheiro de tipo de letra a utilizar. -
fontsize=50
especifica o tamanho da fonte em pontos. -
fontcolor=white
especifica a cor do tipo de letra. -
x=100:y=100
especifica a posição do texto no vídeo, com o canto superior esquerdo a (100, 100) pixéis. -
-codec:a copy
especifica a cópia do fluxo de áudio do vídeo de entrada para o vídeo de saída sem o recodificar. -
output_video.mp4
especifica o ficheiro de vídeo de saída.
O que é o Fontfile?
A opção
fontfile
no FFmpeg é usada para especificar o caminho para um ficheiro de fonte que será usado para renderizar texto num vídeo ou imagem.
Quando utilizar o filtro
drawtext
no FFmpeg para adicionar texto a um vídeo, especifique a opção
fontfile
para escolher um tipo de letra específico a utilizar para o texto.
Como incluir fontes no comando FFmpeg sem usar a opção Fontfile?
Para utilizar um tipo de letra num comando FFMPEG sem especificar a opção fontfile, utilize um tipo de letra instalado no sistema.
Aqui está um exemplo de comando que utiliza uma fonte instalada no sistema:
Código: ffmpeg -i input_video .mp4 -vf “drawtext=text=’Hello World’:fontcolor=white:x=100:y=100:font=Arial” -codec:a copy output_video .mp4
O que é o GitHub?
O GitHub é uma plataforma baseada na Web que permite aos programadores alojar e gerir os seus projectos de software, colaborar com outros e acompanhar e gerir as alterações ao seu código. Fornece ferramentas para controlo de versões, acompanhamento de problemas, revisão de código e colaboração em equipa.
Como adicionar o texto “StackOverflow” com FFmpeg?
Código: ffmpeg -i input_video .mp4 -vf “drawtext=text=’StackOverflow’:fontfile=/path/to/font.ttf:fontsize=30:fontcolor=white:x=100:y=100” -codec:a copy output_video .mp4
Eis o que fazem as várias opções deste comando:
-
-i input_video.mp4
especifica o ficheiro de vídeo de entrada. -
-vf "drawtext=text='StackOverflow':fontfile=/path/to/font.ttf:fontsize=30:fontcolor=white:x=100:y=100"
define o gráfico de filtro de vídeo para desenhar o texto. Este comando desenha o texto “StackOverflow” no vídeo nas coordenadas (100, 100), utilizando um ficheiro de fonte localizado em/path/to/font.ttf
, com um tamanho de fonte de 30 e uma cor de fonte branca. -
-codec:a copy
copia o fluxo de áudio do vídeo de entrada para o vídeo de saída sem o recodificar. -
output_video.mp4
especifica o nome do ficheiro de vídeo de saída.
Como mostrar TimeCodes ou TimeStamps usando o filtro Drawtext do FFmpeg?
Código: ffmpeg -i input_video .mp4 -filter_complex “drawtext=fontfile=/path/to/font.ttf:text=’%{pts/:hms}’:fontsize=24:fontcolor=white:x=10:y=10” -codec:a copy output_video .mp4
Eis o que fazem as várias opções deste comando:
-
-i input_video.mp4
especifica o ficheiro de vídeo de entrada. -
-filter_complex
permite-lhe utilizar vários filtros no mesmo comando. -
drawtext
é o nome do filtro. -
fontfile=/path/to/font.ttf
especifica o caminho para o ficheiro da fonte que queremos utilizar. -
text='%{pts/:hms}'
define o texto a ser apresentado.%{pts/:hms}
é um espaço reservado que será substituído pelo timecode actual no formato horas:minutos:segundos. -
fontsize=24
define o tamanho da fonte para 24. -
fontcolor=white
define a cor da fonte para branco. -
x=10
ey=10
definem a posição do texto no vídeo. -
-codec:a copy
copia o fluxo de áudio do vídeo de entrada para o vídeo de saída sem o recodificar. -
output_video.mp4
especifica o nome do ficheiro de saída.