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çãoCapacitação 20102010

Aula2:Aula2: UtilizandoUtilizando oo

CaniveteCanivete SuíçoSuíço MencoderMencoder

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, , 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 : OVC significa "Output video codec". Biblioteca que você deseja utilizar para a codificação do vídeo;

-oac 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 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 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 - 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 - 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 re- obtido 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éditosCré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]