Capacitação realizada através de parceria entre o
Núcleo de Tecnologia Educacional Municipal - NTM
Núcleo de Tecnologia Educacional Estadual - NTE
de Volta Redonda
Aula2: Utilizando o
Aula2: Utilizando o
Canivete Suíço Mencoder
Canivete Suíço Mencoder
Capacitação 2010
O MEncoder é uma ferramenta em linha de
comando para encodação de vídeos sob a Licença
Pública Geral (GPL). O MEncoder é distribuído
juntamente com o MPlayer e permite converter
todos os formatos de vídeo aceitos pelo MPlayer
para um grande número de outros players. Possui
diversos filtros de áudio e vídeo para a
manipulação dos arquivos.
Devido a enorme quantidade de opções o
MEncoder pode parecer pouco amigável no
começo, mas ele é uma ferramenta
extremamente poderosa para conversão de vídeo.
Alguns frontends foram desenvolvidos para
Um mal entendido muito comum é o de que o MPlayer, por ser capaz de reproduzir diversos containers e codecs de áudio e
vídeo, seria também capaz de codificar arquivos nestes
mesmos formatos. A lista de codecs para codificação de mídia é muito longa, mas alguns de código livre não estão inclusos
(FLAC e Theora, por exemplo).
Mas não é algo com o que se preocupar, ainda restam diversas opções, até mesmo se você deseja codificar um arquivo para
reprodução em Windows ou Mac.
Antes de entrar em detalhes, vamos observar o funcionamento básico num processo de re-codificação de um arquivo em um
formato que o MPlayer não pode reproduzir, para o formato MPEG4:
mencoder arquivo.wmv -o arquivo.avi -ovc lavc -oac pcm
-arquivo.wmv: nome do arquivo de vídeo original que
você deseja recodificar. Por exemplo arquivos realplayer,
windows, mpeg, avi, divx, xvid, theora, matroska e etc.
-o arquivo.avi: O nome do arquivo de saída, o qual será
dado ao arquivo após a recodificação, no caso,
arquivo.avi;
-ovc <codec_de_video>: OVC significa "Output video
codec". Biblioteca que você deseja utilizar para a
codificação do vídeo;
-oac <audio_codec> OAC significa "Output audio codec"
Biblioteca que você deseja utilizar para a codificação do
áudio.
Acredite ou não, isto é tudo o que você
precisa saber para recodificar arquivos. O
exemplo acima irá codificar o vídeo para DivX
(mpeg4) e a trilha de áudio para pcm (WAV).
Se você deseja verificar como um
determinado arquivo foi codificado, execute o
comando file arquivo.avi no arquivo gerado
para obter uma saída resumida.
Caso você tenha o programa transcode
instalado você poderia usar o comando
tcprobe -i arquivo.avi.
Eliminando possíveis confusões, codecs e formatos não são a mesma coisa.
MPEG-4 é um formato de vídeo. Você pode criar arquivos de vídeo MPEG-4 com alguns codecs opcionais. DivX, XviD e lavc
são codecs que criam os vídeos realmente para você. MPEG-2 é um outro formato de vídeo. Vídeos DVDs são armazenados neste formato. É por isto que você pode ripar
um DVD com qualidade similar e tamanho reduzido em formato MPEG-4.
Antes de você começar a codificar os seus arquivos, é uma boa ideia decidir o formato que você vai desejar.
MPEG-4 será utilizado como padrão aqui, pois resulta em arquivos altamente comprimidos e com qualidade muito boa.
Um container multimídia é onde você coloca seu áudio e vídeo codificados. Alguns exemplos de containers multimídia são: AVI, ASF, OGG, Matroska, e MOV. Eles são chamados de
containers porque você pode colocar (na teoria) qualquer coisa dentro deles.
Por exemplo, o fato de um arquivo ter uma extensão .avi não significa que ele é um MPEG4. Pode ser qualquer tipo de
arquivo que o container AVI tenha suporte para áudio e vídeo. É por isso que você pode codificar filmes com tantos
codecs e ainda colocá-los no mesmo container.
Vamos dar uma rápida olhada em alguns containers multimídia. Novamente, embora o MPlayer seja capaz de
reproduzir uma diversidade destes, ele não é capaz de codificar todos eles. De qualquer forma, dispondo do
MEncoder, isto não se torna uma limitação.
O AVI (Audio Video Interleave)
foi criado pela Microsoft, apesar
de não ser aberto e bem
suportado.
O MPlayer e o MEncoder, podem
reproduzi-lo e codificá-lo.
O AVI é muito comum, e por isso
você verá o verá em diversos dos
nossos exemplos.
É um container multimídia de código
aberto, similar ao AVI, exceto pelo fato
de que ele possui opções e configurações
muito mais avançadas que podem ser
inclusas no meta-dado.
O MPlayer e o MEncoder também são
capazes de reproduzi-lo, porém não é
capaz de codificá-lo.
Os arquivos de áudio e vídeo matroska
possuem as extensões .mka e .mkv,
respectivamente.
O ASF (Advanced Streaming Format) é
mais um container multimídia ,
desenvolvido pela Microsoft, mais
utilizado para streaming (reprodução
on-line) multimídia. Tecnicamente, tudo que
pode ser colocado dentro de um
container AVI também pode ser colocado
em um container ASF, mas de maneira
geral, são utilizados os codecs Windows
Media Vídeo (WMV) e Windows Media
Áudio (WMA).
O container OGG é também um
container multimídia de código
livre, parte do projeto Xiph.
OGM é uma extensão do OGG
para suportar alguns codecs de
vídeo proprietários. Assim como
o Matroska, o MPlayer é capaz de
reproduzir, mas não de criar
vídeos OGG e OGM.
Formatos suportados pelo Mplayer:
http://www.mplayerhq.hu/DOCS/HTML/en/video-formats.html
Limitações do container AVI:
http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-dvd-mpeg4.html#menc-feat-dvd-mpeg4-muxing-avi-limitations
Comparação entre diversos containers:
http://en.wikipedia.org/wiki/Comparison_of_container_formats
A primeira coisa a fazer é verificar quais codecs
podemos utilizar para codificação. O seguinte
comando lhe dará uma lista de opções:
mencoder -ovc help
"ovc" significa output video codec
A saída deste comando depende de como você tenha
compilado o MPlayer. Já que há vários à disposição.
Nós iremos analisar brevemente alguns deles.
Se você não sabe qual utilizar, utilize -ovc lavc com
as opções padrão.
copy - frame copy, without re-encoding. Doesn't work with
filters.
frameno - special audio-only file for 3-pass encoding, see
DOCS.
raw - uncompressed video. Use fourcc option to set format
explicitly.
nuv - nuppel video
lavc - libavcodec codecs - best quality!
vfw - VfW DLLs, read DOCS/HTML/en/encoding-guide.html. qtvideo - QuickTime DLLs, currently only SVQ1/3 are
supported.
libdv - DV encoding with libdv v0.9.5 xvid - XviD encoding
x264 - H.264 encoding
O lavc/libavcodec é parte do projeto da biblioteca FFMPEG. De acordo com a página oficial do FFMPEG: "A libavcodec é
uma biblioteca que contém todos os codificadores e decodificadores FFMPEG de áudio e vídeo.
A maior parte dos codecs foram desenvolvidos do zero para garantir a melhor performance e capacidade de reutilização
do código."
O uso da lavc como seu codec de vídeo, lhe fornece diversas opções, incluindo uma porção de formatos para codificação. Segue um exemplo que cria um container AVI DivX usando a biblioteca lavc para codificar o vídeo em MPEG4 e o áudio em
PCM.
mencoder arquivo.flv -ovc lavc -oac pcm -ffourcc
DX50 -o arquivo.avi
Se você não deseja alterar muito as configurações de
vídeo, este exemplo acima será o bastante para a
maioria dos players disponíveis.
A opção -ffourcc DX50 está inlcusa porque embora o
vídeo produzido seja MPEG4, o cabeçalho padrão é FMP4
o qual não é largamente reconhecido.
Um cabeçalho com DX50 diz que o vídeo produzido é
compatível com DivX 5 (MPEG4) e deve estar apto a ser
reproduzido em qualquer player que seja capaz de
reproduzir vídeo MPEG4.
Se você não tem a menor ideia do
que deve escolher e não tem tempo
para ficar testando configurações,
faça a opção pelo MPEG4.
Como o MPEG4 é a opção padrão,
você não precisará adicionar
nenhuma opção especial.
Apenas use a linha abaixo:
mencoder arquivo.flv -o arquivo.avi -ovc lavc -oac pcm
Com o XviD podemos criar vídeos MPEG4 com altíssima qualidade.
"O XviD é um software livre para codificação de vídeos em MPEG4 que possui algumas características que o faz muito
melhor do que o codec DivX. Ele produz vídeos com qualidade muito boa e com ótima performance devido as otimizações para a maioria dos processadores modernos." Conforme o documento de dúvidas freqüentes (FAQ) do XviD,
"O DivX é um software proprietário, com um ciclo de desenvolvimento que segue apenas uma lógica comercial.
O XviD é um software livre (licenciado sob a GNU GPL), aberto a contribuições externas e que objetiva a qualidade
superior, obediência aos padrões, velocidade de processamento, portabilidade e a interoperabilidade."
A utilização da opção bitrate realizará a codificação em uma taxa de bits constante.
bitrate=valor
Os valores podem ser higher, que implica em uma melhor
qualidade e arquivos maiores e lower, que implica em uma menor qualidade e arquivos menores.
Com algumas otimizações você pode obter uma qualidade próxima a dos DVDs (bitrate por volta de 800), VCDs (bitrate entre 400 e 500) e também uma qualidade para Streaming (bitrate em torno
de 80 à 150).
Para obter uma boa qualidade num filme de tamanho 720x480 você precisaria de aproximadamente 800kb/s. O bitrate padrão do
Mencoder é de 687 kbits/s, mas você pode ter que especificar o valor dependendo da sua versão.
mencoder -ovc xvid -oac mp3lame -xvidencopts bitrate=800 -o arquivodesaida.avi arquivodeentrada.avi
A primeira coisa a fazer é verificar quais codecs
podemos utilizar para codificação. O seguinte
comando lhe dará uma lista de opções:
$mencoder -oac help
"oac" significa output audio codec
copy - frame copy, without re-encoding (useful for
AC3)
pcm - uncompressed PCM audio
mp3lame - cbr/abr/vbr MP3 using libmp3lame
lavc - FFmpeg audio encoder (MP2, AC3, ...)
twolame - Twolame MP2 audio encoder
faac - FAAC AAC audio encoder
Cópia de quadro, sem recodificação (útil
para AC3).
Se você estiver ripando um DVD e
desejar manter o Dolby Digital Stream,
então use esta opção. Em seguida é só
redirecionar a saída para o receptor com
SPDIF.
mencoder arquivo.wmv -o arquivo_copy.avi
-ovc lavc -oac copy
Áudio PCM descomprimido.
Soará bem, mas a parte mais volumosa do seu arquivo
final será a porção de áudio. Essencialmente uma opção
inútil para codificação de filmes.
Se você não deseja perda, apenas faça um dump AC3
(como citado acima no copy), e você terá o som
exatamente igual ao original, sem transcodificação.
A vantagem é que o som já é comprimido de antemão,
então a descompressão dele não adiciona qualidade e
apenas aumenta o tamanho, o qual não pode ser
re-obtido completamente sem perda.
mencoder arquivo.wmv -o arquivo_pcm.avi -ovc
lavc -oac pcm
Codificação utilizando lame.
mencoder arquivo.flv -o arquivo_lamec.avi -ovc lavc -oac mp3lame
É possível passar mais parâmetros de configuração utilizando -lameopts alguma=coisa
abr: Seta o bitrate médio; cbr: Utiliza bitrate constante;
br=<0-1024>: Seta o bitrate em kbps, para cbr e abr somente.
mencoder arquivo.flv -o arquivo_abr.avi -ovc lavc -oac mp3lame
-lameopts abr:br=192
q=<0-9>: Qualidade (0 - Maior, 9 - Menor, apenas com VBR)
mencoder arquivo.flv -o arquivo_vbr.avi -ovc lavc -oac mp3lame -lameopts vbr=2:q=1
Convertendo arquivos .FLV em .AVI
mencoder arquivo.flv -ofps 23.976 -ovc lavc -oac pcm -o arquivofinal.avi
Convertendo um .FLV em .AVI (XviD)
mencoder arquivo.flv -oac mp3lame -ovc xvid -lameopts preset=standard:fast -xvidencopts pass=1 -o
arquivofinal.avi
Extraindo o áudio de um AVI
mencoder arquivo.avi -of rawaudio -oac mp3lame -ovc copy -o arquivofinal.mp3
Juntando vídeos
mencoder -oac pcm -ovc lavc part1.avi part2.avi part3.avi -o arquivofinal.avi
Convertendo .WMV em .AVI
mencoder arquivo.wmv -ofps 23.976 -ovc lavc -oac copy -o arquivofinal.avi
Encodando um arquivo no formato MPEG4
mencoder arquivo.avi -oac pcm -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=800 -o arquivofinal.avi
FLV em AVI com legendas e sincronia de áudio
mencoder -sub subs.ssa -utf8 -subfont-text-scale 4 -oac mp3lame -lameopts cbr=128 -ovc lavc -lavcopts
vcodec=mpeg4 -ffourcc xvid -o arquivofinal.avi arquivo.flv
Converter mpg em wmv
mencoder -ovc lavc -lavcopts
vcodec=mpeg4:vbitrate=1000:vhq -oac mp3lame -lameopts br=98 -o arquivofinal.wmv arquivo.mpg
Rotacionar um vídeo em qualquer formato.
Com rotate=1 rodará 90º em sentido horário e
rotate=2 rodará 90º em sentido antihorário:
mencoder -vf rotate=1 -oac pcm -ovc lavc arquivo.avi -o arquivofinal.avi
Para escalar um vídeo em qualquer
formato(320×240):
mencoder arquivo.mpg -oac pcm -ovc lavc -lavcopts vcodec=mpeg4 -vf scale=320:240 -o arquivofinal.avi
Cortando vídeos para ficar com o intervalo
desde o segundo 30 até ao segundo 75.5:
mencoder arquivo.flv -ss 10 -endpos 35.5 -ovc lavc -oac pcm -o arquivofinal.avi
Adicionar pista de áudio a um vídeo:
mencoder arquivo.avi -o arquivofinal.avi -ovc copy -oac copy -audiofile audio.mp3
Inserir subtítulos:
mencoder arquivo.avi -sub subtitulo.srt -oac copy -ovc lavc -o arquivofinal.avi -subcp latin1 -font font.ttf
-subfont-text-scale 3.8
Converter vídeo ogv em avi:
mencoder arquivo.ogv -ovc xvid -oac mp3lame -xvidencopts pass=1 -o arquivofinal.avi
Com Áudio em português e Sem Legendas
mencoder dvd://2 -alang pt -oac mp3lame -lameopts \ mode=0:br=128:vol=10 -ovc lavc -lavcopts \
vcodec=msmpeg4:vbitrate=6000 -vf lavcdeint,scale \ -zoom -xy 720 -o video.avi
Com Áudio Inglês e Legenda em Português
mencoder dvd://2 -alang en -slang pt -oac mp3lame -lameopts \
mode=0:br=128:vol=10 -ovc lavc -lavcopts \
vcodec=msmpeg4:vbitrate=6000 -vf lavcdeint,scale \ -zoom -xy 720 -o video.avi
Este material é a 2ª aula da capacitação:
“Edição de Áudio e Vídeo com Criação de DVDs”
O desenvolvimento desta capacitação, bem como o material da mesma, está sendo produzido através de uma parceria entre o
Núcleo de Tecnologia Educacional Municipal – NTM e o Núcleo de Tecnologia Educacional Estadual – NTE de
Volta Redonda.
Responsáveis pelo projeto: Giany Abreu gianyabreu@yahoo.com.br Rosi Nogueira rosinogueira@yahoo.com.br Sergio Graças sergiosme@yahoo.com.br