O guia completo para usar o ffmpeg no Linux

Este guia detalhado mostra como instalar o ffmpeg no Ubuntu e outras distribuições Linux. Ele também demonstra alguns comandos ffmpeg úteis para uso prático.

O guia completo para usar o ffmpeg no Linux

Este guia detalhado mostra como instalar o ffmpeg no Ubuntu e outras distribuições Linux. Ele também demonstra alguns comandos ffmpeg úteis para uso prático.

ffmpeg é um utilitário CLI (baseado em linha de comando) para processar arquivos de mídia. É uma estrutura com uma infinidade de recursos e, por causa de sua licença de código aberto, é a base para muitos aplicativos amplamente difundidos, como VLC, YouTube, iTunes e muitos mais. Vários editores de vídeo do Linux usam o ffmpeg sob a GUI.

O que eu amo ainda mais no ffmpeg é que ele pode ser usado sozinho para realizar muitas tarefas de processamento de uma maneira muito simples (com um ou dois comandos). No entanto, é um programa muito poderoso que pode ser usado de maneiras mais complexas e até mesmo substituir um fluxo de trabalho de edição.

Neste tutorial do ffmpeg, mostrarei como instalar o ffmpeg e cobrirei seus diferentes usos. Vou até entrar em alguns recursos mais complexos.

Aqui estão as seções deste guia:

Estarei explicando tudo em detalhes para que você possa entender o que está acontecendo, mesmo se você for novo no mundo Linux.

Usarei o Ubuntu 18.04, mas esses comandos também devem funcionar para outras distribuições.

Observação: Embora eu tenha pesquisado ffmpeg completamente e testado tudo o que mencionarei neste artigo, não edito vídeos (ou outra mídia) diariamente. Se você tiver alguma sugestão, dica ou correção, deixe-me saber nos comentários!

Vamos lá!

Guia completo para usar o ffmpeg no Linux

Instalando o ffmpeg no Ubuntu e outros Linux

Instalar o ffmpeg é um processo direto. É um aplicativo popular e está disponível na maior parte da distribuição Linux por meio do gerenciador de pacotes.

Instale o ffmpeg no Ubuntu

No Ubuntu, o ffmpeg está disponível no repositório Universe, portanto, certifique-se de ativar o repositório universe. e então atualize a lista de pacotes e instale o ffmpeg. Você pode fazer tudo isso usando os comandos abaixo em um terminal:

universo sudo add-apt-repository atualização apt sudo sudo apt install ffmpeg Deve ser isso! Você pode verificar a instalação simplesmente digitando:

ffmpeg Isso deve exibir algum texto descrevendo sua configuração ffmpeg (incluindo versão).

versão ffmpeg no Ubuntu versão ffmpeg no Ubuntu ffmpeg vversion Como você pode ver na imagem acima, a versão instalada é 3.4.4. No entanto, a versão mais recente de ffmpeg no momento em que este artigo foi escrito é 4.1. Para instalar qualquer versão 4.x, você precisará usar o ffmpeg ppa. Clique para expandir a próxima seção para ver os detalhes da instalação do ffmpeg via PPA.

Instale o ffmpeeg mais recente em distros baseadas no Ubuntu com PPA Há um [PPA] não oficial (/guia-ppa-guide) que você pode usar para instalar a versão mais recente do ffmpeg. Basta usar estes comandos:

sudo add-apt-repository ppa: jonathonf/ffmpeg-4 atualização apt sudo sudo apt install ffmpeg -y

Instalar ffmpeg em distribuições baseadas em Arch

Para instalar o ffmpeg em distribuições baseadas em Arch, use o seguinte comando:

sudo pacman -S ffmpeg

Instalar ffmpeg em distribuições baseadas em Fedora

Para instalar o ffmpeg em distribuições Linux baseadas em Fedora, você pode usar este comando:

sudo dnf install ffmpeg Como usar o ffmpeg: o básico

Com ffmpeg instalado, examinarei os comandos básicos para você começar a usar esta ferramenta poderosa.

0. Comandos ffmpeg

A forma básica um comando ffmpeg é:

ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ... Você deve ter em mente que todas as opções de arquivo se aplicam apenas para o arquivo que os segue (você terá que gravá-los novamente para o próximo arquivo).

Qualquer arquivo não precedido por - i é considerado um arquivo de saída. Ffmpeg usa quantas entradas e saídas você fornecer. Você também pode usar o mesmo nome para um arquivo de entrada e saída, mas terá que adicionar a tag - y antes do nome do arquivo de saída.

Nota

  • Você não deve misturar entradas e saídas; especifique os arquivos de entrada primeiro e, a seguir, especifique os arquivos de saída. *

1. Obtenha informações do arquivo de mídia

O primeiro uso de ffmpeg é exibir informações sobre um arquivo de mídia. Isso pode ser feito não inserindo nenhum arquivo de saída. Basta digitar:

ffmpeg -i file_name Isso funciona para arquivos de áudio e vídeo:

ffmpeg -i video_file.mp4 ffmpeg -i audio_file.mp3! Exibir informações sobre um arquivo de mídia com ffmpeg Exibir informações sobre um arquivo de mídia com ffmpeg Exibir informações sobre um arquivo de mídia com ffmpeg Embora útil, este comando irá exibe muitas informações que não são relevantes para o seu arquivo (informações sobre o ffmpeg). Para omitir isso, adicione o sinalizador - hide_banner:

ffmpeg -i video_file.mp4 -hide_banner ffmpeg -i audio_file.mp3 -hide_banner! Exibir informações relevantes sobre um arquivo de mídia com ffmpeg. Exibir informações relevantes sobre um arquivo de mídia com ffmpeg. Exibir informações de um arquivo de mídia usando ffmpeg Como você pode ver, o comando agora exibe apenas detalhes sobre o arquivo de mídia especificado (codificador, fluxos, etc.).

2. Converter arquivos de mídia

Outra maneira muito útil de usar ffmpeg é para conversão sem complicações entre formatos de mídia diferentes. Você só precisa especificar os arquivos de entrada e saída, já que ffmpeg obterá o formato necessário das extensões de arquivo. Isso funciona para conversões de vídeo para vídeo e áudio para áudio.

aqui estão alguns exemplos:

ffmpeg -i video_input.mp4 video_output.avi ffmpeg -i video_input.webm video_output.flv ffmpeg -i audio_input.mp3 audio_output.ogg ffmpeg -i audio_input.wav audio_output.flac Você pode ainda especificar mais arquivos de saída:

ffmpeg -i audio_input.wav audio_output_1.mp3 audio_output_2.ogg Isso converterá os arquivos de entrada para todos os formatos especificados.

Para ver uma lista de todos os formatos suportados, use:

ffmpeg -formats Novamente, você pode adicionar - hide_banner para omitir informações sobre o aplicativo.

Você pode especificar o parâmetro - qscale 0 antes do arquivo de saída para preservar a qualidade de um arquivo de vídeo:

ffmpeg -i video_input.wav -qscale 0 video_output.mp4 Além disso, você pode especificar codecs que deseja usar, adicionando - c: a (para áudio) e -c: v (para vídeo ) seguido do nome dos codecs, ou copie** se você quiser usar os mesmos codecs do arquivo original:

ffmpeg -i video_input.mp4 -c: v copy -c: um vídeo libvorbis_output.avi Nota: isso pode tornar a extensão do arquivo um tanto enganosa, então tome cuidado.

3. Extraia áudio do vídeo

Para extrair áudio de um arquivo de vídeo, você faz uma conversão simples e adiciona o sinalizador - vn:

ffmpeg -i video.mp4 -vn audio.mp3 Observe que este comando utilizará a taxa de bits do arquivo original. É uma boa ideia configurar você mesmo; você pode usar - ab (taxa de bits de áudio):

ffmpeg -i video.mp4 -vn -ab 128k audio.mp3 Algumas taxas de bits comuns são 96k, 128k, 192k, 256k, 320k (a maior taxa de bits suportada por mp3).

Outras opções comuns são - ar (frequência de áudio: 22050, 441000, 48000), - ac (número de canais de áudio), - f (formato de áudio, embora normalmente detectado automaticamente). - ab também pode ser substituído por - b: a. Por exemplo:

ffmpeg -i video.mov -vn -ar 44100 -ac 2 -b: a 128k -f mp3 audio.mp3

4. Silenciar o áudio no vídeo

Semelhante à última tarefa, para realizar isso, adicionaremos uma tag simples: - an (em vez de - vn).

ffmpeg -i video_input.mp4 -an -video_output.mp4 Nota: A tag - an tornará todas as opções de áudio para esse arquivo de saída inúteis, uma vez que não haverá áudio no resultado da operação.

5. Extraia imagens do vídeo

Isso pode ser útil para muitas pessoas. Por exemplo, você pode ter uma série de imagens (por exemplo, uma apresentação de slides) e deseja obter todas as imagens dela. Basta inserir:

ffmpeg -i video.mp4 -r 1 -f image2 imagem-% 3d.png Vamos desmontar por um segundo.

- r especifica a taxa de quadros (quantos quadros são extraídos nas imagens em um segundo, padrão: 25), - f especifica o formato de saída (imagem2 na verdade significa sequência da imagem2.

O último parâmetro (o arquivo de saída) tem uma nomenclatura um tanto interessante: ele usa % 3d no final. Isso simplesmente numera suas imagens com 3 dígitos (000, 001, etc.). Você também pode usar% 2d (formato de 2 dígitos) ou mesmo% 4d (formato de 4 dígitos) se desejar. Sinta-se à vontade para experimentar e usar o que funcionar para você!

Nota: Também existe uma maneira de transformar um conjunto de imagens em um vídeo/apresentação de slides. Vou cobrir isso na seção Uso avançado .

6. Alterar resolução de vídeo ou proporção de aspecto

Outra tarefa simples para ffmpeg. Tudo o que você precisa fazer para redimensionar um vídeo é especificar uma nova resolução após o sinalizador - s:

ffmpeg -i video_input.mov -s 1024x576 video_output.mp4 Além disso, você pode querer especificar - c: a para garantir que os codecs de áudio do arquivo de saída sejam os corretos:

ffmpeg -i video_input.h264 -s 640x480 -c: a video_output.mov Você também pode alterar a relação de aspecto usando - aspecto:

ffmpeg -i video_input.mp4 -aspect 4: 3 video_output.mp4 Observação: Mais uma vez, outro método um pouco mais poderoso será mencionado na seção Uso avançado.

7. Adicionar imagem de pôster ao áudio

Esta é uma ótima maneira de transformar áudio em vídeo, usando uma única foto (como a capa de um álbum) para o áudio. Este é um recurso muito útil quando você deseja enviar arquivos de áudio para sites que não permitem nada além de vídeos/imagens (YouTube e Facebook são dois exemplos de tais sites).

Aqui está um exemplo:

ffmpeg -loop 1 -i image.jpg -i audio.wav -c: v libx264 -c: a aac -strict experimental -b: a 192k -shortest output.mp4 Basta alterar os codecs (- c : v especifica codecs de vídeo , - c: a especifica codecs de áudio) e os nomes** de seus arquivos.

Observação: Você não precisa usar - estritamente experimental se estiver usando uma versão mais recente (4.x).

8. Adicionar legendas ao vídeo

Tão útil e simples de fazer com ffmpeg é adicionar legendas a um vídeo (por exemplo, um filme). Digite o seguinte:

ffmpeg -i video.mp4 -i subtitles.srt -c: v cópia -c: uma cópia -preset veryfast -c: s mov_text -map 0 -map 1 output.mp4 Claro, você pode especificar qualquer codec que desejar deseja (e quaisquer outras opções adicionais relacionadas a áudio/vídeo). Você pode ler este artigo sobre editar legendas no Linux, graficamente.

9. Compactar arquivos de mídia

A compactação de arquivos reduz muito o tamanho do arquivo, economizando muito espaço. Isso pode ser importante para a transferência de arquivos. Com ffmpeg, existem vários métodos para reduzir o tamanho do arquivo.

Observação: compactar demais os arquivos reduzirá visivelmente a qualidade do arquivo resultante.

Em primeiro lugar, para arquivos de áudio, simplesmente reduza a taxa de bits (usando - b: a ou - ab):

ffmpeg -i audio_input.mp3 -ab 128k audio_output.mp3 ffmpeg -i audio_input.mp3 -b: a 192k audio_output.mp3 Novamente, alguns valores de taxa de bits diferentes são: 96k, 112k, 128k, 160k , 192k, 256k, 320k. Quanto maior for a taxa de bits, maior será o tamanho do arquivo e a qualidade.

Para arquivos de vídeo, você tem mais opções. Uma maneira seria reduzir a taxa de bits de vídeo (usando - b: v):

ffmpeg -i video_input.mp4 -b: v 1000k -bufsize 1000k video_output.mp4 Nota: As taxas de bits de vídeo são diferentes das taxas de bits de áudio (valores muito mais altos).

Você pode definir o sinalizador - crf (Fator de taxa constante). Um crf mais baixo significa uma taxa de bits mais alta. Além disso, usar libx264 como codec de vídeo ajuda. Aqui está uma redução de tamanho muito eficiente com uma redução muito pequena na qualidade:

ffmpeg -i video_input.mp4 -c: v libx264 -crf 28 video_output.mp4 Um crf de 20 a 30 é comum, mas fique à vontade para brincar com o valor específico.

Reduzir a taxa de quadros pode funcionar em alguns casos (embora possa facilmente tornar o vídeo lento):

ffmpeg -i video_input.mp4 -r 24 video_output.mp4 - r especifica a taxa de quadros (neste caso 24).

Você também pode tentar reduzir o tamanho do vídeo (já explicado como fazer para isso). Uma dica adicional é compactar o áudio também, tornando-o estéreo e reduzindo a taxa de bits. Por exemplo:

ffmpeg -i video_input.mp4 -c: v libx264 -ac 2 -c: a aac -strict -2 -b: a 128k -crf 28 video_output.mp4 Nota: - estrito - 2 e - ac 2 cuidam da parte estéreo. Já falei sobre a parte que reduz a taxa de bits.

10. Arquivos de mídia cortada (básico)

Para cortar arquivos do início, você deve especificar uma duração usando - t:

ffmpeg -i input_video.mp4 -t 5 output_video.mp4 ffmpeg -i input_audio.wav -t 00:00:05 output_audio.wav Como você pode ver, isso funciona para arquivos de vídeo e áudio. Ambos os comandos acima fazem a mesma coisa: salvar os primeiros 5 segundos do arquivo de entrada no arquivo de saída. Eu usei várias maneiras de inserir a duração: um único número (número de segundos) e HH: MM: SS (horas, minutos, segundos). A segunda versão funciona mais como um horário de término.

Você pode ir ainda mais longe especificando um horário de início com - ss e até mesmo um horário de término com - a:

ffmpeg -i input_audio.mp3 -ss 00:01:14 output_audio.mp3 ffmpeg -i input_audio.wav -ss 00:00:30 -t 10 output_audio.wav ffmpeg -i input_video.h264 -ss 00:01:30 -a 00:01:40 output_video.h264 ffmpeg -i input_audio.ogg -ss 5 output_audio.ogg Você pode ver hora de início (- ss HH: MM: SS), duração (- t duração) em segundos, hora de término (- para HH: MM: SS) e hora de início (- s duração) em segundos (começando após duração segundos).

Todos esses são comandos válidos e você pode trabalhar com qualquer parte de um arquivo de mídia usando-os.

Como usar o ffmpeg: uso avançado

Agora, abordarei recursos um pouco mais avançados (como transmissão de tela, uso de dispositivos etc.). Vamos direto ao primeiro ponto!

1. Dividir arquivos de mídia

Já abordei arquivos de corte. O que você precisa fazer para dividir um arquivo em várias partes é especificar vários cortes (especificando horários de início, horários de término ou duração antes de cada arquivo de saída).

Observe este exemplo:

ffmpeg -i video.mp4 -t 00:00:30 video_1.mp4 -ss 00:00:30 video_2.mp4 A sintaxe é bastante simples. Especifiquei - t 00: 00: 30 como duração para a primeira parte (a primeira parte consistirá nos primeiros 30 segundos do vídeo original). Em seguida, especifiquei que gostaria que o resto fizesse parte de um segundo vídeo (começando do final da última parte, 00: 00: 30).

Isso pode ser feito para quantas peças você quiser! Divirta-se brincando com este recurso, pois é muito poderoso. Lembre-se de que também funciona com áudio.

2. Concatenar arquivos de mídia

ffmpeg também pode fazer o processo oposto: colocar várias partes juntas.

Para fazer isso, você terá que criar um novo arquivo de texto e começar a editá-lo usando seu editor preferido.

Como gosto de usar o terminal, usarei touch e vim. Não importa como você chama este arquivo. Vou chamar o meu join.txt e criar o arquivo usando touch:

touch videosto join.text Agora, irei editá-lo usando vim:

vim videos_to_join.txt Você pode usar as ferramentas que quiser (nano, gedit, etc.), é exatamente o que é mais fácil de usar.

Aqui, insira os caminhos completos para todos os arquivos que deseja juntar (eles serão reunidos na ordem em que você os escrever aqui), um por linha. Certifique-se de que eles tenham a mesma extensão (por exemplo, mp4). Aqui está o meu:

/home/ubuntu/Desktop/video_1.mp4 /home/ubuntu/Desktop/video_2.mp4 /home/ubuntu/Desktop/video_3.mp4 Salve o arquivo que acabou de editar. Este método funciona para qualquer arquivo de áudio ou vídeo.

Agora digite o seguinte:

ffmpeg -f concat -i join.txt output.mp4 Nota: * Meu arquivo de saída é output.mp4, mas isso é porque todos os meus arquivos de entrada têm a extensão mp4 *. **

Isso deve juntar todos os arquivos que você anotou em join.txt (ou como você nomeou esse arquivo) em um único arquivo de saída.

3. Junte imagens em um vídeo

É assim que você pode montar uma apresentação de slides ou algo semelhante. Vou mostrar como adicionar áudio também.

A primeira coisa que recomendo fazer é verificar se as fotos que você deseja juntar estão localizadas no mesmo diretório. Vou colocar o meu em um diretório chamado my_photos. As extensões recomendadas para as fotos são . Png e. Jpg . Seja qual for a sua escolha, certifique-se de que todas as imagens tenham a mesma extensão (caso contrário, usar ffmpeg pode ter efeitos indesejados). Você pode simplesmente converter os arquivos . Png em. Jpg ou vice-versa (consulte Uso básico ).

O formato (- f) de nossa conversão deve ser image2pipe. Para a entrada, você terá que fornecer um hífen (-). O que image2pipe permite que você faça é canalizar (usando | no terminal) os resultados de um comando como cat em ffmpeg em vez de inserir todos os nomes um por um. Isso é exatamente o que vou fazer. Para que isso funcione, também teremos que mencionar que queremos que os codecs de vídeo sejam copiados (- c: v copy) (para usar corretamente as imagens):

cat my_photos/* | ffmpeg -f image2pipe -i - -c: v copiar vídeo.mkv Se você reproduzir este arquivo, pode pensar que apenas algumas imagens foram adicionadas à apresentação de slides. Na verdade, todas as suas fotos foram adicionadas, mas ffmpeg as percorre o mais rápido possível. Isso significa 1 quadro por foto; ffmpeg (por padrão) é executado em torno de 23 fps.

Para mudar isso, você terá que especificar a frame rate (- framerate) desejada:

cat my_photos/* | ffmpeg -framerate 1 -f image2pipe -i - -c: v copiar video.mkv No meu exemplo, eu defini a taxa de quadros para 1, o que significa que cada quadro (isso também significa cada imagem) aparece por 1 segundo.

Para adicionar áudio, como uma música de fundo, teremos que especificar o arquivo de áudio como arquivo de entrada (- i audo_file) e copiar os codecs de áudio ( - c: uma cópia). Para os codecs, você pode copiar os codecs de áudio e vídeo ao mesmo tempo com -c copy. Certifique-se de definir os codecs antes de especificar o arquivo de saída. Você também pode definir a taxa de quadros para que todas as suas fotos sejam sincronizadas com a duração do áudio que deseja usar. Para fazer isso, divida o número de fotos pela duração do áudio (em segundos)**. Para meu exemplo, tenho um arquivo de áudio de 22 segundos e 9 imagens. 22/9 é aproximadamente 0,40, então é isso que usarei para minha taxa de quadros:

cat my_photos/* | ffmpeg -framerate 0.40 -f image2pipe -i - -i audio.wav -c copy video.mkv

4. Grave sua tela

Screencasting com ffmpeg não é um trabalho difícil. O formato (- f) que você precisa usar é x11grab. Isso irá capturar seu XSERVER. Como entrada, você terá que especificar o número de exibição da tela (a tela principal normalmente deve ser 0: 0). No entanto, isso irá capturar apenas uma parte superior esquerda da tela. Você deve adicionar um tamanho de tela (- s). O meu é 1920 × 1080. O tamanho da tela deve ser mencionado antes da entrada:

ffmpeg -f x11grab -s 1920x1080 -i: 0.0 output.mp4 Pressione q ou CTRL + C a qualquer momento para parar o screencast.

Truque bônus: você pode fazer o tamanho do arquivo de saída tela inteira inserindo isso depois para tamanho (em vez de 1920 × 1080 ou qualquer outra resolução definida):

-s $ (xdpyinfo | grep dimenss | awk {print $ 2;}) Aqui está o comando completo:

ffmpeg -f x11grab -s $ (xdpyinfo | dimensões grep | awk {print $ 2;}) -i: 0.0 output.mp4

5. Grave sua webcam

A entrada de gravação de sua webcam (ou outro dispositivo, como uma câmera USB) é ainda mais fácil. No Linux, dispositivos são armazenados em /dev como/dev/video0,/dev/video1, etc. :

ffmpeg -i/dev/video0 output.mkv Novamente, q ou CTRL + C para parar a gravação.

6. Grave seu áudio

O Linux lida com áudio principalmente por meio de ALSA e pulseaudio. ffmpeg pode gravar ambos, mas vou cobrir pulseaudio, uma vez que as distribuições baseadas em Debian incluem por padrão. A sintaxe é um pouco diferente para os dois métodos.

Para pulseaudio, você deve forçar (- f) alsa e especificar default como input (- i default) :

ffmpeg -f alsa -i default output.mp3 Nota: Nas configurações de distribuição de som, certifique-se de que o dispositivo de gravação padrão seja o que você deseja gravar.

Eu toco bastante guitarra e tenho uma interface de áudio para poder gravar. Tive uma surpresa agradável quando ffmpeg gravou minha guitarra sem problemas.

Dicas bônus sobre gravação

Para qualquer tipo de gravação, você também pode especificar codecs, é claro (já abordado). Você pode escolher uma taxa de quadros específica (- r). Você pode combinar a gravação de áudio com a gravação de webcam/tela também!

ffmpeg -i/dev/video0 -f alsa -i padrão -c: v libx264 -c: a flac -r 30 output.mkv Em vez de gravar áudio, você pode facilmente adicionar um *arquivo de áudio * como entrada a ser gravada no topo do seu screencast/webcam:

ffmpeg -f x11grab -s $ (xdpyinfo | dimensões grep | awk {print $ 2;}) -i: 0.0 -i audio.wav -c: uma saída de cópia.mp4 Nota: ffmpeg* registros em pedaços pequenos, então uma gravação muito pequena pode não ser salva. Eu recomendo gravar um pouco mais e cortá-lo depois (se você quiser apenas alguns segundos), apenas para ter certeza de que o arquivo será realmente gravado em seu disco.

Uso básico de filtros no ffmpeg

Filtros são um recurso incrivelmente poderoso do ffmpeg. Há uma quantidade absurda de filtros disponíveis para você usar, tornando o ffmpeg completamente capaz de lidar com qualquer edição necessária. Visto que existem tantos filtros e este artigo já é abrangente, abordarei apenas alguns filtros simples.

A estrutura básica para usar um filtro é:

ffmpeg -i input.mp4 -vf filter = configuração_1 = valor_1: configuração_2 = valor_2, etc output.mp4 ffmpeg -i input.wav -af filter = configuração_1 = valor_1: configuração_2 = valor_2, etc output.wav Como você pode ver, estou especificando filtros de vídeo (- vf, abreviação de - filtro: v) e filtros de áudio (- af, abreviação de - filtro: a). Os filtros reais são escritos entre aspas (**) e podem ser encadeados separando-os com vírgulas (, ). Você pode especificar quantos filtros desejar (escrevi etc** para observar filtros adicionais, na verdade não faz parte do comando).

A forma geral de um filtro é:

filtro = configuração_2 = valor_2: configuração_2 = valor_2 As diferentes configurações de filtro e seus valores são separados por dois pontos.

Você também pode executar operações matemáticas como valores para as diferentes configurações.

Nota: Uma cobertura mais detalhada de diferentes constantes a serem usadas em expressões e diferentes configurações pode ser encontrada na [documentação do filtro ffmpeg] oficial (https://ffmpeg.org/ffmpeg-filters.html) .

Abordarei os filtros de vídeo e áudio. Vamos ver alguns exemplos!

1. Dimensionamento de vídeo

Este é um filtro muito simples. As únicas configurações são largura e altura:

ffmpeg -i input.mp4 -vf scale = w = 800: h = 600 output.mp4 Mencionei que você também pode usar operações matemáticas para valores:

ffmpeg -i input.mkv -vf scale = w = 1/2 in_w: h = 1/2 in_h output.mkv Este comando define o tamanho da saída para metade ( 1/2 ) do tamanho de entrada (em_w, em_h**).

2. Corte de vídeo

Quanto ao filtro de escala, as configurações são a largura e a altura do arquivo resultante. Opcionalmente, você pode especificar coordenadas para o canto superior esquerdo do corte (padrão: centro do vídeo de entrada):

ffmpeg -i input.mp4 -vf crop = w = 1280: h = 720: x = 0: y = 0 output.mp4 ffmpeg -i input.mkv -vf crop = w = 400: h = 400 output.mkv Conforme observado, o segundo corte cortará no centro do arquivo de entrada (já que não especifiquei x e y coordenadas para o canto superior esquerdo). O primeiro comando cortará do canto superior esquerdo (x = 0: y = 0).

Aqui está um exemplo que usa expressões matemáticas como valores:

ffmpeg -i input.mkv -vf crop = w = 3/4 in_w: h = 3/4 in_h output.mkv Este comando define o tamanho da saída para 3/4 do tamanho de entrada (em_w, em_h).

3. Rotação de vídeo

Você também pode girar um vídeo no sentido horário por um valor (em radianos). Para facilitar as coisas, você pode especificar um valor em graus e convertê-lo em radianos multiplicando esse valor por PI/180:

ffmpeg -i input.avi -vf rotate = 90 * PI/180 ffmpeg -i input.mp4 -vf rotate = PI O primeiro comando girará o vídeo no sentido horário 90 graus. O segundo comando virará o vídeo de cabeça para baixo (PI rad = 180 graus).

4. Remapeamento de canal de áudio

Isso pode ser útil se você, de alguma forma, conseguir apenas áudio no ouvido direito ou algo semelhante. Você pode tornar o áudio audível de ambos os ouvidos (neste caso específico) desta forma:

ffmpeg -i input.mp3 -af channelmap = 1-0 | 1-1 output.mp3 Isso mapeia o canal de áudio direito (1) para ambos os esquerdo ( 0) e o canal de áudio direito (1). (o número esquerdo representa entrada, o número direito representa saída).

5. Multiplicando o volume do áudio

Você pode multiplicar o volume de áudio por qualquer número real (inteiro ou não). Você só precisa especificar o multiplicador:

ffmpeg -i input.wav -af volume = 1.5 output.wav ffmpeg -i input.ogg -af volume = 0,75 output.ogg O primeiro comando amplifica o volume 1,5 vezes. O segundo comando torna o áudio 1/4 (0,25) vezes mais silencioso.

Dica bônus: ajustes de velocidade de reprodução

Incluirei os filtros de vídeo (não afeta o áudio) e áudio para esta tarefa.

1. Vídeo

O filtro para vídeo é setpts (PTS = registro de hora da apresentação). Isso funciona de uma maneira um tanto interessante. Uma vez que realmente modificamos o PTS , um coeficiente maior significa um resultado mais lento e vice-versa:

ffmpeg -i input.mkv -vf setpts = 0,5 PTS output.mkv ffmpeg -i input.mp4 -vf setpts = 2 saída PTS, mp4 Como acabei de explicar, o primeiro comando dobra a velocidade de reprodução e o segundo comando diminui o vídeo a 1/2 da velocidade . A**

2. Áudio

O filtro para isso é atempo. Há uma pequena advertência: ele só pode assumir valores entre 0,5 (metade da velocidade) e 2 (o dobro da velocidade). Para contornar isso, você pode encadear filtros atempo:

ffmpeg -i input.wav -af atempo = 0,75 output.wav ffmpeg -i input.mp3 -af atempo = 2.0, atempo = 2.0 ouutput.mp3 O primeiro comando desacelera o áudio em 1/4 da velocidade original. O segundo comando acelera o áudio 4 vezes (2 * 2).

Observação: Para alterar a velocidade de reprodução de vídeo e áudio com o mesmo comando, você terá que olhar em gráficos de filtro.

Conclusão

Neste guia abrangente, cobri a instalação, uso básico, uso avançado e noções básicas de filtros.

Espero que este possa ser um recurso útil para quem procura experimentar ffmpeg, para alguém que deseja usar ffmpeg para várias tarefas ou mesmo apenas para alguém que é disposto a se familiarizar mais com os extensos recursos deste incrível utilitário.

Deixe-nos saber se você achou este artigo útil nos comentários abaixo e diga-nos para que você está usando ffmpeg! Estamos ansiosos para qualquer adição de qualquer tipo. Obrigado por ler nosso blog e fique atento para um artigo que cobre mais filtros complexos. Apreciar!

Via itsfoss.com. Você pode conferir o post original em inglês:

The Complete Guide for Using ffmpeg in Linux

Última atualização deste artigo: 29 de outubro de 2020

PROPAGANDA
PROPAGANDA