mencoder arquivo.flv - O Espaço do Software Livre

Transcrição

mencoder arquivo.flv - O Espaço do Software Livre
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
Capacitação 2010
Aula2: Utilizando o
Canivete Suíço Mencoder
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 tornálo mais acessível.
O Básico
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 por
exemplo: FLAC e Theora.
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.flv -o arquivo.avi -ovc lavc -oac pcm
Explicando cada opção
-arquivo.flv: 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.
Concluindo
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.
Codecs e Formatos
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ê deseja.
MPEG-4 será utilizado como padrão aqui, pois resulta em
arquivos altamente comprimidos e com qualidade muito boa.
Containers Multimídia
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.
AVI
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á em diversos dos
nossos exemplos.
Matroska
É 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.
ASF
O ASF (Advanced Streaming Format) é
mais um container multimídia,
desenvolvido pela Microsoft, mais
utilizado para streaming (reprodução online) 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
Média Vídeo (WMV) e Windows Média
Áudio (WMA).
OGG
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.
Links para aprofundamento
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
Codecs de Vídeo Disponíveis
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.
mencoder -ovc help
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
lavc
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.
lavc
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á inclusa 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.
O Pulo do Gato
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
Xvid
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."
Codificação com o XviD
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 arquivo.flv
Codecs de Áudio Disponíveis
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
copy
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.vob -o arquivo_copy.avi -ovc
lavc -oac copy
pcm
Á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 reobtido completamente sem perda.
mencoder arquivo.flv -o arquivo_pcm.avi -ovc lavc
-oac pcm
mp3lame
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
Como você converte vídeo do Youtube?
O que acontece quando faz isso?
Vamos tentar de outro jeito?
mencoder arquivo.flv -o arquivo.avi -ovc lavc -oac pcm
Se você quiser extrair o áudio de
um arquivo de vídeo para mp3...
mencoder arquivo.avi -of rawaudio -oac
mp3lame -ovc copy -o arquivofinal.mp3
Se você quiser juntar vários
arquivos de vídeo
mencoder -oac pcm -ovc lavc part1.avi
part2.avi part3.avi -o arquivofinal.avi
Inserir legendas e tentar
sincronizar Áudio e Vídeo
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
Se você precisar rotacionar um
vídeo no sentido horário
mencoder -vf rotate=1 -oac pcm -ovc
lavc arquivo.avi -o arquivofinal.avi
Se você precisar rotacionar um
vídeo no sentido anti-horário
mencoder -vf rotate=2 -oac pcm -ovc
lavc arquivo.avi -o arquivofinal.avi
Se quiser mudar a escala...
mencoder arquivo.mpg -oac pcm -ovc lavc -lavcopts
vcodec=mpeg4 -vf scale=320:240 -o arquivofinal.avi
Quer cortar pedaços de um vídeo?
mencoder arquivo.flv -ss 10 -endpos 35.5
-ovc lavc -oac pcm -o arquivofinal.avi
Quer adicionar uma pista de
áudio ao vídeo
mencoder arquivo.avi -o arquivofinal.avi -ovc
copy -oac copy -audiofile audio.mp3
Inserir subtítulos ou legendas
mencoder arquivo.avi -sub subtitulo.srt -oac copy
-ovc lavc -o arquivofinal.avi -subcp latin1 -font
font.ttf -subfont-text-scale 3.8
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
Receitinhas de Bolo
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
Receitinhas de Bolo
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
Receitinhas de Bolo
Converter mpg em wmv
mencoder -ovc lavc -lavcopts
vcodec=mpeg4:vbitrate=1000:vhq -oac mp3lame -lameopts
br=98 -o arquivofinal.wmv arquivo.mpg
Receitinhas de Bolo
Converter vídeo ogv em avi:
mencoder arquivo.ogv -ovc xvid -oac mp3lame -xvidencopts
pass=1 -o arquivofinal.avi
Receitinhas de Bolo
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
Créditos
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
[email protected]
Rosi Nogueira
[email protected]
Sergio Graças
[email protected]

Documentos relacionados

O transcode - Linux Magazine

O transcode - Linux Magazine Embora esse codec esteja disponível em formato nativo para o Linux, seu uso não é recomendado devido a algumas falhas e ao fato de seu código-fonte ser fechado. Quaisquer codecs reconhecidos pela b...

Leia mais