Vilarejo PK2P
Bem-vindo ao fórum Vilarejo PK2P! O fórum oficial do canal Press Key to Play do Youtube!

Grupo para reunir as pessoas que acompanham os vídeos no canal Press Key to Play e discutir os assuntos abrangidos pelo Blog PK2P.


Você não está conectado. Conecte-se ou registre-se

[tutorial] convertendo e editando com ffmpeg

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

e ae galera o ffmpeg é um conversor de audio e video não grafico que é muito usado no sistema linux muito robusto e extremamente flexivel (embora ele exista para diversas outras plataformas tambem como windows e mac). pelo ffmpeg podemos converter um arquivo em um formato para outro com diversos tipos de codecs diferentes, podemos converter ou ate armazenar stream via rede ou enviar via stream por ele, podemos aplicar filtros especificos por ele ou seja ele tambem pode ser usado para edição de video via comando, podemos capturar tanto o audio quanto o video do computador, podemos manipular tanto o audio quanto o video dos arquivos separadamente. o ffmpeg vem instalado em boa distros linux, caso não venha instalado basta baixar ele direto pelo repositorio da sua distro (no caso das distros baseadas em debian podemos utilizar o apt-get)

Código:
apt-get install ffmpeg

para a gente listar todos os formatos de arquivo que podem ser manipulados pelo ffmpeg usamos o argumento -formats

Código:
ffmpeg -formats



para exibir os codecs usamos o parametro -codecs

Código:
ffmpeg -codecs

com o argumento -protocols exibimos os protocolos aceito tanto para entrada quanto para saida

Código:
ffmpeg -protocols

tambem podemos exibir os filtros aceitos com o argumento -filters

Código:
ffmpeg -filters

podemos exibir os dispositivos que podem ser manipulados pelo ffmpeg, para isso usamos o argumento -devices

Código:
ffmpeg -devices

para a gente converter um video de um formato para outro usamos o argumento -i indicando o arquivo de entrada que seria o video que vamos converter, seguido do arquivo de saida com a extensão do formato para qual vamos converter aquele video, exemplo um video em rmvb para mp4

Código:
ffmpeg -i zero_no_tsukaima.rmvb zero.mp4



podemos usar o argumento -f para especificar o formato

Código:
ffmpeg -i zero_no_tsukaima.rmvb -f mp4 zero.mp4

é possivel converter para varios formatos ao mesmo tempo bastando especificar eles um a um

Código:
ffmpeg -i zero_no_tsukaima.rmvb zero.mp4 zero.mkv

lembrando que o mesmo pode ser feito com audio, não necessariamente precisa ser um video

Código:
ffmpeg -i "steinsgate op.mp3" s.wmv

podemos converter um arquivo via stream tambem (nesse caso precisaria da url direto do arquivo)

Código:
ffmpeg -i "http://192.168.1.2/kodo/repositorio/anime/Spice%20and%20wolf/Spice-and-Wolf-01.mp4" spice.mkv



é possivel converter o stream do video da webcam no sistema linux bastando ler o arquivo /dev/videoX (o X é equivalente ao numero da webcam)

Código:
ffmpeg -i /dev/video0 nudes.mp4

no linux podemos gravar o desktop usando o formato x11grab e na entrada passamos o display da nossa janela atual

Código:
ffmpeg -s 1280x1024 -f x11grab -r 20 -i :0.0 desktop.mp4

podemos converter de um formato de video para formato de audio para extrair apenas o audio daquele video

Código:
ffmpeg -i another01.rmvb another01.mp3

é possivel desativar o video usando o argumento -vn, com isso vai gerar o formato de video apenas com audio dele

Código:
ffmpeg -i another01.rmvb -vn another01.mp4

tambem podemos desativar o audio com o argumento -an

Código:
ffmpeg -i another01.rmvb -an another01.mp4

com o argumento -ss a gente inicia apartir daquele ponto, no proximo exemplo ele vai gerar o video mp4 apartir do 5:00

Código:
ffmpeg -i another01.rmvb -ss 5:00 another01.mp4

temos que nos atentar a uma coisa dependendo da onde voce coloca o -ss ou qualquer outro argumento voce vai esta manipulando o arquivo de entrada ou o arquivo de saida, se voce colocar o -ss antes do -i no exemplo anterior vai iniciar apartir daquele ponto quase instantaneamente porem se colocar o -ss depois do -i como no exemplo anterior o ffmpeg vai ler todo o video ate aquele determinado momento e apartir dele que vai começar a converter

Código:
ffmpeg -ss 5:00 -i another01.rmvb another01.mp4

para especificar o tempo que ele vai parar usamos o argumento --to, no proximo exemplo ele vai gerar o video ate o 1:00 do video de entrada

Código:
ffmpeg -i another01.rmvb -to 1:00 another01.mp4

outro exemplo agora recortando a opening do anime another que começa em 1:31 e termina em 3:01

Código:
ffmpeg -i another01.rmvb -ss 1:31 -to 3:01 anotherop.mp4



tambem existe o parametro -t que seria a duração para parar, como eu sei que a opening do anime another tem 1:30 e começa em 1:31, posso recortar ela especificando 1:30 no -t e 1:31 no -ss, com isso vai comçear em 1:31 e ter como duração 1:30 de video/audio

Código:
ffmpeg -i another01.rmvb -ss 1:31 -t 1:30 anothermusica.mp3

outra forma de parar o video é por frames convertido, a cada segundo de video existe uma quantidade de frames (os famosos fps), para a gente parar o video em uma quantidade de frames especifica, usamos o argumentos -frames seguido da quantidade frames maxima que ffmpeg ira converter

Código:
ffmpeg -i another01.rmvb -frames 3000 another.mp4

podemos inserir uma legenda em um video usando o -i tambem

Código:
ffmpeg -i yosuga.mp4 -i kodo.srt kodo.mp4



pelo ffmpeg tambem podemos converter legendas srt para ass

Código:
ffmpeg -i kodo.srt kodo.ass

para inserir legendas ass temos que fazer via filtro de video usando o argumento -vf ass (a vantagem das legendas ass que podemos customizar fonte, tamanho, cor, posição e ate efeito)

Código:
ffmpeg -i yosuga.mp4 -vf ass=kodo.ass yosuga.mp4

podemos especificar a dimensão da tela com o argumento -s seguido da dimesão da tela para qual vamos converter, o bom que isso diminui o tamanho final do arquivo o problema que isso vai diminuir tambem a qualidade do video ja que a quantidade de pixeis para ser manipulado sera menor (outro problema que não é possivel fazer o oposto aumentando a tela para melhorar a qualidade ja que é impossivel recuperar os dados originais perdido tendo como resultado final um video mais pixelado)

Código:
ffmpeg -i toaru.mp4 -s 300x200 toaru300x200.mp4

combinando a dimensão da tela junto com o frame e com o tempo inicial, podemos pegar uma imagem do video que pode ser usado para criar aqueles thumbnail (podemos tambem colocar outro numero no frames para pegar varias imagens em sequencia de video)

Código:
ffmpeg -ss 07:21 -i toaru.mp4 -s 400x300 -frames 1 mini.png



podemos juntar um arquivo de video com um arquivo de audio usado o argumento -i nos dois, para que funcione corretamente temos que especificar a saida com o video e o audio usando o argumento -map, sendo que no argumento map a gente passa a ordem que entramos com os arquivos pelo -i, seguido de dois pontos e a letra "a" para indicar que a saida sera o audio daquele arquivo ou "v" caso seja o video daquele arquivo

Código:
ffmpeg -i video.mp4 -i "Trip-Innocent Of D.mp3" -map 0:v -map 1:a amv.mp4

se no exemplo anterior a ordem do arquivo fosse a musica antes do video a ordem no map seria invertida sendo o 0 para o audio e o 1 para o video

Código:
ffmpeg -i "Trip-Innocent Of D.mp3" -i video.mp4 -map 1:v -map 0:a amv.mp4

tambem podemos junta um video com o audio de outro video

Código:
ffmpeg -i video1.mp4 -i video2.mp4 -map 0:v -map 1:a saida.mp4

podemos aplicar alguns filtros com o ffmpeg tanto em audio quanto em video, para aplicar um filtro no video usamos o argumento -vf, para aplicar um filtro no audio usamos o argumento -af, um filtro que podemos aplicar no audio é o areverse que inverte o som

Código:
ffmpeg -i xuxa.mp3 -af areverse dilma.mp3

podemos aplicar esse filtro direto no video tambem para inverter o audio do video

Código:
ffmpeg -i deathnote.mp4 -af areverse saida.mp4

um filtro para o video é o negate que mostra o video todo em negativo

Código:
ffmpeg -i toradora.mp4 -vf negate tigresa.mp4



com o filtro rotate a gente rotaciona a tela

Código:
ffmpeg -i toradora.mp4 -vf rotate=0.6 tigresa.mp4

se a gente passar um numero negativo para o rotate sera rotacionado para outro lado

Código:
ffmpeg -i toradora.mp4 -vf rotate=-1.2 tigresa.mp4

outro filtro para video é o scale que permite a gente redimensionar o video

Código:
ffmpeg -i toradora.mp4 -vf scale=400:300 tigresa.mp4

podemos escrever um texto com o filtro drawtext, alguns dos argumentos dele são text para especificar o texto, x e y para a posição, box seria uma caixa, boxcolor a cor da caixa, font seria o nome da fonte, fontcolor seria a cor da fonte, fontsize o tamanho da fonte, enable='between' seria o tempo que vai aparecer e desaparecer

Código:
ffmpeg -i "no game no life.mp4" -vf drawtext="text=by kodo no kami: x=5: y=10: box=1: boxcolor=white: font=arial: fontcolor=black: fontsize=18: enable='between(t,10,1200)'" nogame.mp4



podemos inclusive juntar dois ou mais videos rodando ao mesmo tempo dividindo a mesma tela, para fazer isso temos que usar um filtro complexo, pegamos o primeiro video redimensionamos ele com scale, depois juntamos ele com o segundo usando o overlay

Código:
ffmpeg -i "no game no life.mp4" -i Seto.mp4 --filter_complex "[0] scale=300:200[kodo];[1][kodo]overlay=50:50" saida.mp4



bom galera como podemos ver que o ffmpeg é uma excelente ferramenta que alem de permitir a conversão do video tambem permite a edição dele, tudo direto pelo terminal. como são comandos podemos imprementar eles em qualquer linguagen seja bash script ou ate mesmo linguagens que permite o uso do terminal como a função system em C, Perl ou ate PHP (embora tambem exista bibliotecas e libs proprias do ffmpeg). bom galera esse tutorial mostra apenas o basico do uso dessa ferramenta sendo que tem muito mais coisas que poderia ser feito por ela que não daria para citar nesse tutorial, tambem existe o ffplay que é um player que vem junto com o ffmpeg que permite aplicar filtros, o ffserver que é um servidor que permite enviar stream de videos e audios aplicando filtro e encodando ele, ffprobe exibe que informações de determinado video ou audio entre outros ^^

by kodo no kami

Ver perfil do usuário https://eofclub.in/forum

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum