Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Evitando excesso no uso de dados para arquivos A/V com utilitários de software livre

Judith Myerson, Systems Architect/Engineer
Judith M. Myerson é arquiteta e engenheira de sistemas, e também escritora freelance. Suas áreas de interesse incluem tecnologias de middleware, sistemas corporativos, tecnologias de bancos de dados, desenvolvimento de aplicativos, gerenciamento de rede, sistemas distribuídos, tecnologias baseadas em componente e gerenciamento de projeto. É possível entrar em contato com ela no endereço jmyerson@bellatlantic.net.

Resumo:  À medida que multimídia se torna mais comum, é importante poder dimensionar vídeos para o usuário final, assim como nos acostumamos a fazer com gráficos. Felizmente, uma ferramenta de software livre, WinFF, torna essas conversões fáceis e até mesmo divertidas. Veja quatro exemplos de conversão de vídeo: Flash, Windows® Media Player, QuickTime e BlackBerry.

Data:  17/Mai/2011
Nível:  Intermediário Também disponível em :   Inglês
Atividade:  810 visualizações
Comentários:  


Introdução

Nós reproduzimos vídeos em Web sites por entretenimento e para ver as últimas notícias. Nós colocamos vídeos em Webinars, tutoriais baseados na Web, propagandas e sínteses executivas para aprimorar as palavras escritas. Nós fazemos upload de vídeos para servidores para que os usuários possam fazer download para seus computadores. Todos os filmes consomem transferência de dados. Quanto maior o tamanho do arquivo, maior a quantidade de transferência de dados consumida.

Recentemente, minha condição de usuária de vídeo passou para a de desenvolvedora, quando me passaram um projeto de reprodutor de vídeo para converter arquivos de DVD da cerimônia de entrega de um prêmio para uma apresentação da Web remota. O tempo de reprodução é longo — uma hora. O tamanho do arquivo é enorme — pouco menos de 1 GB.

Primeiro eu converti os arquivos de vídeo e usei um programa de FTP para carregá-los no meu site remoto, em seguida fiz download deles para um reprodutor de vídeo no meu computador. A repetição do processo de transferência de arquivos resultou em uma conta salgada do meu provedor de serviço wireless. Eu excedi o limite mensal do provedor para a quantidade de dados que podem ser transferidos do meu computador para um servidor remoto e de volta. Durante o upload, a diminuição contínua na velocidade de um vídeo de duração longa foi significativa.

Para reduzir o tamanho do arquivo e a velocidade de transferência de dados, fui até meu computador de backup para procurar por utilitários de software livre, e achei WinFF para converter arquivos. Era gratuito e estava disponível para diferentes plataformas — Windows e Linux®.


WinFF de Software Livre

Antes de poder fazer downloads, eu esperei até o primeiro dia do mês seguinte, quando o provedor do serviço de placa wireless iria reconfigurar o contador de transferência de dados para zero no meu computador primário. Para o download do WinFF, eu pude escolher entre Windows, distribuições baseadas em Red Hat, instruções de instalação para repositórios do Ubuntu ou repositórios do Debian. Eu alterei para Ubuntu e clique em Applications > Accessories > Terminal. Colei o código após o prompt de instruções para instalação. Isso é mostrado na Listagem 1.


Listagem 1. Instrução do Ubuntu em exemplo de instalação

        
sudo apt-get update && sudo apt-get install winff 

Forneci minha senha, já que estava realizando uma função administrativa, e foi feito automaticamente o download e a instalação do software. Quando o script concluir sua execução, insira WinFF após o prompt e feche o terminal. Agora acesse o WinFF em Sound and Video em Applications.

WinFF é um front-end de GUI para o conversor de linha de comando FFmpeg. WinFF permite escolher, na sua lista suspensa, um nome de usuário fácil de um formato de arquivo a ser convertido. WinFF faz a interface com o FFmpeg e permite ver o código de linha de comando deste. Os valores de alguns parâmetros podem ser alterados na janela principal do WinFF. Após ler a documentação online do FFmpeg (consulte Recursos ), pode ser conveniente alterar os valores e sintaxe dos parâmetros na linha de comando. WinFF não é o único aplicativo que faz interface com o FFmpeg. Você mesmo pode desenvolver aplicativos que fazem interface com o FFmpeg.

A linha de comando do FFmpeg depende de duas bibliotecas — libavformat e libavcodec — para fornecer suporte para vários codecs e formatos de arquivo. Essas bibliotecas estão disponíveis na origem do FFmpeg. Não é necessária biblioteca externa para os formatos de arquivo abordados nos quatro exemplos de conversão abaixo.

Como mostra a Figura 1, a janela principal do WinFF contém cinco partes: a lista de arquivos (espaço em branco), botões, o menu, o bloco Output Details e o bloco Additional Options.

Para adicionar um arquivo de audio/video (A/V) à lista, clique em Add. Se você fizer uma escolha errada, use Remove ou Delete para remover. Para esvaziar a lista, use Clear. Para reproduzir o arquivo sem converter, clique em Play. Convert executa o FFmpeg nos arquivos em uma janela de shell/comando.


Figura 1. Janela principal do WinFF


O bloco Output Details permite escolher Device Preset para conversão. Se desejar alterar as pré-configurações, acesse o menu Edit e abra o Preset Editor para fazer adições ou atualizações. Se você já tiver saldo uma pré-configuração em uma extensão de arquivo .wff, acesse o menu File para importar. O menu Options permite exibir o script que será executado em vez de converter, pausar o script no final da conversão e desativar o cálculo ao concluir a conversão.


Exemplo de conversão nº 1: Flash

Escolha o arquivo de vídeo que deseja converter para Flash. Clique em Add para adicionar o arquivo na lista. Em seguida, acesse o bloco Output Details e clique na primeira seta suspensa para escolher Websites na lista de categorias. A Figura 2 mostra isso.


Figura 2. Lista suspensa de categorias


Na caixa Device Preset, eu escolho Flash Video (FLV) for Web use Fullscreen, como mostra a Figura 3. Você especifica onde colocar os arquivos de vídeo convertidos como a saída.


Figura 3. Lista suspensa de pré-configurações de dispositivo



O editor de pré-configurações

WinFF ajuda a gerar a linha de comando correta do FFmpeg, o que pode ser complexo com tantas opções. Entretanto, pode ser útil capturar a sintaxe total do FFmpeg para uso em scripts ou outras funções em lote. Duas etapas são necessárias para ver o código da linha de comando. Primeiro, clique em Opções e verifique se a linha CMD está marcada. Em seguida, escolha Edit > Presets para abrir o editor, como mostra a Figura 4.


Figura 4. Editar pré-configurações para arquivo Flash


Lista de pré-configurações

O editor mostra uma lista de pré-configurações na caixa do canto superior esquerdo. Para escolher, clique em Website e, em seguida, no rótulo da pré-configuração na caixa superior direita para preencher as caixas remanescentes. É possível adicionar ou atualizar as pré-configurações. Será solicitado a você que confirme a adição ou atualização. Após adicionar ou importar uma pré-configuração, ela estará disponível na janela principal, mas não é salva em disco até que você clique em Save. Ao importar, WinFF irá perguntar se deseja substituir uma pré-configuração existente. É possível exportar uma pré-configuração para a biblioteca no seu disco.

Nome, rótulo e extensão do arquivo da pré-configuração

Por padrão, o nome da pré-configuração de Web site é FLVwebFS. É permitida apenas uma palavra. Escolhi Flash Video (FLV) for Web use Fullscreen como rótulo da pré-configuração. É possível alterar o nome e rótulo da pré-configuração e salvá-la, se desejar. O nome da nova pré-configuração não deve ser o mesmo que o de uma pré-configuração existente, caso contrário a pré-configuração existente pode ser acidentalmente substituída pela nova. A extensão Output File especifica a extensão de arquivo dos arquivos de saída. Para alterar a categoria, insira um novo nome.

Linha de comando da pré-configuração

Agora chegamos à parte mais interessante — a Linha de Comando da Pré-configuração, que mostra os parâmetros do FFmpeg para a pré-configuração. Use a linha de comando da pré-configuração atual para aprender os fundamentos do FFmpeg para um arquivo A/V particular, e aproveitá-la para melhorar a qualidade do arquivo. Também é possível usar a linha de comando para localizar o tamanho de um formato de arquivo em particular. Faça isso para formatos de arquivo diferentes e compare os tamanhos de cada para apresentação na Web. Não é necessário inserir os nomes dos arquivos de entrada e saída, pois o WinFF cuida deles automaticamente, obtendo as informações da lista de arquivos de entrada e Output Details na janela principal.

A Listagem 2 mostra a primeira parte do código de Linha de Comando da Pré-Configuração da pré-configuração FLVwebFS.


Listagem 2. primeira parte da linha de comando da pré-configuração para Flash
        
-vcodec FLV -f FLV -r 29.97 -s 320x240 -aspect 4:3 -b 300kb -g 160 -cmp dct  -subcmp dct  

A Listagem 3 mostra a segunda parte do mesmo código para a pré-configuração FLVwebFS.


Listagem 3. Segunda parte do código para Flash
        
-mbd 2 -flags +aic+cbp+mv0+mv4 -trellis 1 -ac 1 -ar 22050 -ab 56kb
            

O significado da maioria dos parâmetros em ambas as listagens é explicado na Tabela 1. Valores padrão são incluídos para alguns parâmetros. FFmpeg força a extensão FLV como formato de arquivo, configura a taxa de quadros para 29,97 quadros por segundo (frames per second, fps), substituindo o padrão de 25, e configura um tamanho de quadro de 320x240 para uma tela VGA. Se você quiser usar o Web site em uma tela widescreen, pode alterar -aspect 4:3 para -aspect 16:9. A taxa de bits do vídeo é configurada em 300 Kbs, mais rápido que o valor padrão de 200 Kbs. A qualidade do áudio, no entanto, parece ser menor que o valor padrão.

Há três parâmetros ausentes na linha de comando. Os dois primeiros são a opção -i em frente da linha de comando, e o nome do arquivo de saída no final da linha de comando. O terceiro parâmetro ausente é a opção de buffer, que pode ser necessária se você estiver tendo problemas de buffer. A opção de buffer é -bufsize para configurar o tamanho do buffer em bits. Isso seria necessário se você configurasse a taxa de bits máxima (taxa de bits -maxrate).

Parâmetros importantes são resumidos na Tabela 1 para consulta rápida.


Tabela 1. Parâmetros para arquivo Flash
ParâmetrosDescriçãoVídeo FlashPadrão
-abConfigura a taxa de bits de áudio56 KB64 KB
-acConfigura canais de áudio11
-arConfigura a frequência de amostra de áudio22050 Hz44100 Hz
-aspectConfigura a proporção de aspecto da tela4:3
-bConfigura a taxa de bits de vídeo300 Kbs200 Kbs
-bufsizeConfigura o tamanho do buffer em bits
-fForça a extensão do arquivo de acordo com o formato de arquivoFLV
-gConfigura grupo de tamanhos de figura160
-maxrate bitrateConfigura a taxa de bits máxima de vídeo
-rConfigura a taxa de quadros por segundo29,9725
-sConfigura o tamanho do quadro320x240 (VGA)
-vcodecForça o codec de vídeo para um formato de arquivo (FLV, por exemplo)FLV

Saia do editor e use Convert para abrir a janela de shell/comando para acompanhar o processo de conversão do arquivo, com tamanho original de 728 MB. FFmpeg mostra quantos segundos decorreram antes de concluir sua execução no arquivo atual. Se o script estiver sendo executado um pouco rápido demais, é possível pausá-lo clicando em Pause (geralmente no canto superior direito do teclado) para examinar melhor os resultados. Se seu computador tiver processadores duplos, acesse Edit > Preferences e desmarque Multithreading for Dual Processors.

O tamanho do arquivo original que usei como entrada para conversão era de 723 MB. O formato de arquivo é MPEG-4. Quando converti o arquivo para a extensão FLV, o tamanho resultante diminuiu drasticamente para 1,28 MB.


Exemplo de conversão nº 2: Windows Media Player

Como mostra a Figura 5, escolha WMV como formato de conversão e WMV for Web Use como Pré-Configuração do Dispositivo.


Figura 5. Detalhes da saída para Windows Media Player para uso na Web


Em seguida, acesse Edit Presets para localizar a Preset Command Line (Linha de Comando da Pré-Configuração).

A Listagem 4 mostra a Linha de Comando da Pré-configuração para a pré-configuração WMV2broadband.


Listagem 4. Linha de comando da pré-configuração de Windows Media Player
        
-vcodec WMV2  -acodec wmav2 -b 640kb -ab 128kb -r 29.97 -s 320x240
            

As taxas de bits de áudio e vídeo são maiores que aquelas do FLV. A taxa e tamanho do quadro são o mesmo que os da extensão de arquivo FLV. Ele usa o valor de 1 como padrão para os canais de áudio e o valor de 44100 Hz como frequência de amostra de áudio padrão.

O valor da taxa de bits de áudio é 128 KB, o dobro do valor padrão de 64 KB. A proporção de aspecto não foi incluída, pois ela já é determinada previamente pelo Windows Media Player. O tamanho do arquivo resultante é 345 MB, muito maior que o tamanho do arquivo Flash, de 1.28 MB.

Antes de alterar parâmetros para reduzir ainda mais o tamanho do arquivo Windows Media Player, você deve exportar o arquivo e salvá-lo. Em vez de correr o risco de inserir os parâmetros errados na linha de comando do FFmpeg, use a janela principal do WinFF para configurar as opções de áudio e vídeo em caixas.

A Figura 6 mostra as entradas de configuração de vídeo para taxa de bits de vídeo, taxa de quadros, tamanho de vídeo e proporção de aspecto. Marque 2 pass para fazer duas passagens do FFmpeg no vídeo, para obter maior qualidade. Marque Deinterlace para remover o entrelaçamento do vídeo.


Figura 6. Configurações de vídeo


A Figura 7 mostra as entradas de configuração de áudio para taxa de bits de áudio, taxa de amostra e canais de áudio.


Figura 7. Configurações de áudio



Exemplo de conversão nº 3: QuickTime

Vamos examinar o QuickTime, como mostra a Figura 8.


Figura 8. Pré-configuração de QuickTime


A Figura 8 mostra que quatro rótulos de pré-configuração estão disponíveis para arquivos QuickTime. São eles mov e H.264 (alto, muito alto e superalto). Escolhi mov para fins de demonstração.

A Listagem 5 mostra o código de comando da pré-configuração qmov.


Listagem 5. Linha de comando de pré-configuração para QuickTime
        
-f mov -acodec libfaac -b 1250kb -r 25 -ab 128kb -s 640x480 -ac 2 -ar 48000
            

A taxa de bits de vídeo do arquivo QuickTime é maior que a do arquivo Windows Media Player. Embora a taxa de quadros seja um pouco menor que a do Windows Media Player, o tamanho do quadro é maior — o dobro do tamanho dos arquivos Flash e Windows Media Player. O número de canais de áudio é dois, maior que o dos arquivos FLV e WMV. A frequência de amostra do QuickTime é maior que o valor padrão de 44100 Hz e menor que o do arquivo Flash. O tamanho do arquivo resultante é de 598 MB, em comparação com 345 MB do arquivo Windows Media Player e 1,2 MB do Flash.

A Tabela 2 expande a Tabela 1, incluindo a coluna sobre parâmetros Windows Media Player e QuickTime para comparação com os do Flash.


Tabela 2. Comparando três arquivos de vídeo
ParâmetrosDescriçãoVídeo FlashWindows Media PlayerQuickTimePadrão
-abConfigura a taxa de bits de áudio56 KB128 KB125 KB64 KB
-acConfigura canais de áudio121
-arConfigura a frequência de amostra de áudio22050 Hz44800 Hz44100 Hz
-aspectConfigura a proporção de aspecto da tela4:3
-bConfigura a taxa de bits de vídeo300 Kbs640 Kbs1250 Kbs200 Kbs
-bufsizeConfigura o tamanho do buffer em bits
-fForça a extensão do arquivo de acordo com o formato de arquivoFLVmov
-gConfigura grupo de tamanhos de figura160
-maxrate bitrateConfigura a taxa de bits máxima de vídeo
-rConfigura a taxa de quadros por segundo29,9729,972525
-sConfigura o tamanho do quadro320x240 (VGA)320x240 (VGA)640x480
-acodecForça o codec de áudio para um formato de arquivowmav2libfaac
-vcodecForça o codec de vídeo para um formato de arquivoFLVWMV2FLV

Contribuindo para o tamanho do arquivo, em ordem de importância, estão os parâmetros que configuram a taxa de bits de vídeo, frequência de amostra do áudio, taxa de bits do áudio e tamanho do quadro. A frequência de amostra de áudio e taxa de bits de áudio do Flash são menores que o valor padrão de 44100 Hz, enquanto os do Windows Media Player e QuickTime são maiores que o valor padrão. Isso significa que a qualidade de áudio de arquivos Flash não é tão boa quanto à qualidade dos outros dois arquivos.

Para melhorar a qualidade do áudio nos arquivos Flash, altere os valores de frequência de amostra de áudio e taxas de bit de áudio para um valor igual ou maior que o padrão. Isso pode aumentar o tamanho de um arquivo Flash, mas não irá atingir os tamanhos do Windows Media Player e QuickTime.


Exemplo de conversão nº 4: BlackBerry

Vamos supor que você queria fazer uma versão para telefone celular do seu Web site de desktop. O tempo de reprodução é curto. É outra maneira de evitar excesso de transferência de dados.

Use a tela Edit Presets para localizar o formato de vídeo para um Web site para telefone celular. Eu escolhi a pré-configuração BlackBerry e BlackBerry Curve Fullscreen nas listas de rótulos. A extensão do arquivo de saída é MP4.

A Listagem 6 mostra a linha de comando de pré-configuração de BlackBerry Curve.


Listagem 6. Linha de comando de pré-configuração de BlackBerry Curve
        
-vcodec mpeg4 -s 320x240 -qscale 10 -b 250 -ab 48k -ar 22050 -ac 2 -acodec aac
            

Além de MP4, BlackBerry Curve suporta uma ampla gama de formatos de vídeo, incluindo áudio 3PG, MP3, AAC, WAV, WMA, bem como MPEG4, H.263 e WMV. Se você deseja usar formato de arquivo 3PG como extensão do arquivo de saída, precisa alterar a extensão do arquivo para esse formato.


Conclusão

À medida que cresce a demanda por vídeo, é necessário se tornar flexível na maneira como se oferece vídeo. Este artigo ajuda a converter vídeo facilmente em diferentes formatos, para ajudar a se adequar ao estilo certo para o uso certo. Você irá economizar largura da banda preciosa para você e seus usuários, e irá garantir a melhor qualidade para o usuário final. Também poderá experimentar com diferentes opções e capturar essas receitas para processamento automático de arquivos.


Recursos

Aprender

Obter produtos e tecnologias

Discutir

Sobre o autor

Judith M. Myerson é arquiteta e engenheira de sistemas, e também escritora freelance. Suas áreas de interesse incluem tecnologias de middleware, sistemas corporativos, tecnologias de bancos de dados, desenvolvimento de aplicativos, gerenciamento de rede, sistemas distribuídos, tecnologias baseadas em componente e gerenciamento de projeto. É possível entrar em contato com ela no endereço jmyerson@bellatlantic.net.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Software livre, Tecnologia Java
ArticleID=657468
ArticleTitle=Evitando excesso no uso de dados para arquivos A/V com utilitários de software livre
publish-date=05172011
author1-email=jmyerson@bellatlantic.net
author1-email-cc=

Conheça a IBM da sua cidade

Virtual Branch Office Brasil

A IBM está mais perto do que você imagina!


Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).