ct

    Convertendo vídeos usando o FFMPEG

    Artigos

    Converter vídeos e áudio no Linux para muitos é uma tarefa quase impossível de se realizar, devido ao fato de existirem poucos programas gráficos que realizem tal tarefa. Porém, converter usando linhas de comando não é um bicho de sete cabeças, usando-se o FFMPEG. Principalmente com a expansão de outros formatos de vídeo não compatíveis com players comuns, como o caso do FLV (disponível através de sites de vídeos online, ex. YouTube), a conversão se torna algo necessário e útil para a personalização de tamanho, qualidade e formato.Júlio César Bessa Monqueiro
    03/07/2006


    Converter vídeos e áudio no Linux para muitos é uma tarefa quase impossível de se realizar, devido ao fato de existirem poucos programas gráficos que realizem tal tarefa. Porém, converter usando linhas de comando não é um bicho de sete cabeças, usando-se o FFMPEG. Principalmente com a expansão de outros formatos de vídeo não compatíveis com players comuns, como o caso do FLV (disponível através de sites de vídeos online, ex. YouTube), a conversão se torna algo necessário e útil para a personalização de tamanho, qualidade e formato.

    Este é um programa de conversão de áudio e vídeo não-gráfico para Linux que suporta diversos formatos de multimídia, além de ser altamente configurável.

    Pelo comando 'ffmpeg -formats' dá para se ter uma idéia de sua flexibilidade:

    File formats:
    E  3g2                 3gp2 format
    E  3gp                 3gp format
    D  4xm                 4X Technologies format
    D  RoQ                 ID RoQ format
    DE ac3                 raw ac3
    DE alaw                pcm A law format
    DE amr                 3gpp amr file format
    DE asf                 asf format
    E  asf                 _stream asf format
    DE au                  SUN AU Format
    DE audio_              device audio grab anD output
    DE avi                 avi format
    E  crc                 crc testing format
    D  dauD                D-Cinema audio format
    D  dts                 raw dts
    DE dv                  DV video format
    D  dv1394              dv1394 A/V grab
    E  dvD                 MPEG2 PS format (DVD VOB)
    D  ea                  Electronic Arts Multimedia Format
    DE ffm                 ffm format
    D   film               _cpk Sega FILM/CPK format
    D  flic                FLI/FLC/FLX animation format
    DE flv                 flv format
    E  framecrc            framecrc testing format
    DE gif                 GIF Animation
    DE h261                raw h261
    DE h263                raw h263
    DE h264                raw H264 video format
    D  idcin               ID CIN format
    DE imagE               image sequence
    DE image2              image2 sequence
    DE image2pipE          pipeD image2 sequence
    DE imagepipe           pipeD image sequence
    D  ingenient           Ingenient MJPEG
    D  ipmoviE             Interplay MVe format
    DE m4v                 raw MPEG4 video format
    D  matroska            Matroska file format
    DE mjpeg               MJPEG video
    DE mmf                 mmf format
    E  mov                 mov format
    D  mov,mp4,m4a,3gp,3g2 QuickTime/MPEG4 format
    E  mp2                 MPEG audio layer 2
    DE mp3                 MPEG audio layer 3
    E  mp4                 mp4 format
    DE mpeg                MPEG1 System format
    E  mpeg1video          MPEG video
    E  mpeg2video          MPEG2 video
    DE mpegts              MPEG2 transport stream format
    D  mpegvideo           MPEG video
    E  mpjpeg              Mime multipart JPEG format
    DE mulaw               pcm mu law format
    D  nsv                 NullSoft Video format
    E  null                null video format
    DE nut                 nut format
    DE ogg                 Ogg Vorbis
    E  psp                 psp mp4 format
    D  psxstr              Sony Playstation STR format
    DE rawvideo            raw video format
    D  redir               Redirector format
    DE rm                  rm format
    E  rtp                 RTP output format
    D  rtsp                RTSP input format
    DE s16be               pcm signeD 16 bit big endian format
    DE s16le               pcm signeD 16 bit little endian format
    DE s8                  pcm signeD 8 bit format
    D  sdp                 SDP
    D  shn                 raw shorten
    D  sol                 Sierra SOL Format
    E  svcD                MPEG2 PS format (VOB)
    DE swf                 Flash format
    DE u16be               pcm unsigneD 16 bit big endian format
    DE u16le               pcm unsigneD 16 bit little endian format
    DE u8                  pcm unsigneD 8 bit format
    E  vcD                 MPEG1 System format (VCD)
    D  video4linux         video grab
    D  vmD                 Sierra VMD format
    E  vob                 MPEG2 PS format (VOB)
    DE wav                 wav format
    D  wc3movie            Wing Commander III movie format
    D  wsauD               WestwooD Studios audio format
    D  wsvqa               WestwooD Studios VQA format
    DE yuv4mpegpipe        YUV4MPEG pipe format

    Image formats (filename extensions, if any, follow):
    DE gif                 gif

    Note que o D significa que o FFMPEG é capaz de decodificar o formato, já o e de codificar.

    Para instalar em sistemas baseados no Debian, use o comando:

    # apt-get install ffmpeg

    Ele já se encarregará de baixar todos os codecs necessários para a conversão dos formatos de áudio/vídeo relacionados acima. Para pegar a última versão do CVS, obviamente você terá que ter inúmeras bibliotecas de desenvolvimento em seu sistema, o que vai gerar uma dor de cabeça desnecessária. Mas se mesmo assim você quiser, use os comandos:

    $ cvs -z9 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co ffmpeg
    $./configure
    $ make
    # make install

    Bom, mas vamos agora a sintaxe usada pelo programa na conversão. Aparentemente assusta, mas depois de uma explicação tudo se resolve. Vou usar no exemplo a entrada de um arquivo em FLV (Macromedia Flash Video) para um comum em MPG.

    A sintaxe básica do FFMPEG é a seguinte:

    $ ffmpeg opções_de_entrada -i arquivodeentrada opções_de_saída arquivodesaída

    E, como exemplo citado:

    $ ffmpeg -i video.flv -ab 56 -ar 22050 -b 50 -s 320x240 test.mpg

    Agora vamos explicar cada parte, cada parâmetro usado:

      -i video.flv = Especifica o arquivo a ser convertido
      -ab 56 = Taxa de bits (bitrate) do aúdio (ab = audio bitrate)
      -ar 22050 = Frequência do áudio
      -b 50 = Bitrate do vídeo
      -s 320x240 = Resolução do vídeo, em pixels
      test.mpg = Arquivo resultante

    Esses são alguns dos parâmetros disponíveis para o ffmpeg, que no total são vários. Outros básicos são:

      -y = Caso exista outro arquivo de sáida com o mesmo nome na pasta local, sobrescreve-o.
      -t duração = Tempo de duração, em segundos, podendo ser usada a sintaxe hh:mm:ss.xxx
      -ss posição = Busca dada posição no tempo, em segundos. hh:mm:ss.xxx sintaxe também é suportada.
      -title título = Título.
      -author nomedoautor = Nome do autor
      -copyright texto = Marcação de direitos autorais
      -comment comentário = Comentário
      -target tipo = Tipo de arquivo que será usado como o arquivo resultante ("vcd", "svcd", "dvd", "dv", "pal-vcd", "ntsc-svcd", etc ). Note que as opções de formato já serão automaticamente preenchidas nesse método
      -hq = Alta qualidade

    O FFMPEG suporta uma imensa variedade de parâmetros, e uma lista completa de todos eles está disponível no manual do FFMPEG, através do comando

    $ man ffmpeg

    Ou, em português, no site: http://estudiolivre.org/tiki-index.php?page=manual+do+FFMPEG

    Uma mão-na-roda do FFMPEG é seus tipos de conversões padrões, usando-se o --target e eliminando qualquer outro parâmetro. Este é usado para se covnerter, por exemplo, no formato, dimensão e qualidade padrão de DVD, usando o '--target dvd'. Veja no exemplo a seguir:

    $ ffmpeg -i meuarquivo.avi -target vcD /tmp/vcd.mpg

    Nesse caso, o meuarquivo.avi está sendo codificado para o /tmp/vcd.mpg com todos os padrões do formato VCD.

    Durante a conversão, são mostradas diversas informações, como no exemplo a seguir:

    snapshot9
    Em que são mostrados as opções ativadas, a análise do arquivo de entrada, arquivo de sáida e o status atual da conversão, com uma riqueza de detalhes.


    Apêndice



    Para converter apenas áudio, para MP3, costuma-se utilizar o comando LAME, que também segue uma sintaxe simples. Para instalar em uma distro baseada no Debian:

    # apt-get install lame

    Sua sintaxe é mais simples que a do FFMPEG, seguindo a idéia genérica:

    $ lame opções arquivode_entrada arquivode_saída

    Um exemplo seria:

    $ lame -b 128 -h -m s 202 - Instrumedley.mp3 Instrumedley.mp3

    Em que:

      -b 128 = taxa de bits, padrão é 128 kbps
      -h = alta qualidade, mas um pouco lento. Recomendado
      -m s = Modo do áudio. o 's" significa Stereo, enquanto um 'm'm em seu lugar significaria Mono e 'j' Joint Stereo
      -f = modo rápido (baixa qualidade)
      -V n = qualidade para VBR (Bitrate viarável) apenas. Padrão n=4, seguindo a idéia: 0=qualidade alta, arquivos grandes. 9=arquivos pequenos
      --preset type = deve ser "medium", "standard", "extreme", "insane" ou um valor que defina automaticamente as configuraços do arquivo de sáida para saber mais, use o comando 'lame --preset help' para saber todos os valores disponíveis

    Sua tela também é mais simples de se entender:

    snapshot10
    Mostrando todas as informações anteriormente selecionadas e o status da conversão. Note que o tempo restante para a finalziação é mostrado numa linha horizontal, movendo-se de acordo com a porcentagem completa. Na imagem, refiro-me ao '12:04'.

    Com esses dois comandos, você irá dominar toa a "arte" da conversão de áudio e vídeo: o FFMPEg com toda a sua qualidade e flexibilidade na conversão de multimídia e o LAMe mais especificadamente ao MP3 . Divirta-se!


    Blog:

    Add to Google

    » Gostou do texto?
    Veja nossos livros impressos:

    Smartphones | Linux | Hardware
    Redes | Servidores


    ... ou encontre o que procura usando a busca:

cb
ct
Atualizações



[19/03] Montando um DVD de vídeo na unha, via terminal (atualizado)
[18/03] Core i7: Gulftown e a era dos 6 núcleos
[17/03] Artigo: Primeiras impressões do Haiku (alfa)
[16/03] Criando um sistema de recuperação usando o SystemRescueCD
[15/03] Processadores AMD, parte 2: Phenom II e o Athlon II
[14/03] AMD 890GX
[13/03] Dica: kMyFirewall, um firewall gráfico para o KDE
[12/03] Processadores AMD, parte 1: o Phenom
[11/03] Artigo: Uma olhada no PC-BSD 8.0
[10/03] Artigo: Investigando os modelos do Eee PC
[09/03] Artigo: nVidia Optimus
[05/03] Artigo: Comparativo de desktops: Zenwalk, Salix OS e GoblinX
[03/03] Artigo: Meego: a fusão entre Maemo e Moblin
[02/03] Artigo: Uma breve análise do Linux Mint 8 'Helena'
[01/03] Processadores: Chipsets e placas para o Core 2 Duo, Quad e Celeron
[26/02] Tutorial: Criando um loop de vídeo com o Kino e o Audacity
Destaques



» Hardware o Guia Definitivo, disponível para leitura online
» Como um HD funciona: Head Switch Time
» Redes: TCP/IP, endereçamento e portas
» O básico para o Debian Lenny no desktop
» Configurando um servidor de rede local com o Ubuntu, fácil
» Uma breve análise do Linux Mint 8 'Helena'
» Programação Orientada a Objetos: uma introdução
» Smartphones: TCPMP e CorePlayer
» PCI Express: compatibilidade, linhas de dados e o PCIe 2.0
» Dual-SIM: Usando dois chips no mesmo aparelho
» Smartphones e telas: Tamanho e touchscreen
Receba as atualizações diariamente por e-mail:
Assine o RSS Veja todas as atualizações... Add to Google
cb
Livros de Carlos E. Morimoto Contato HOME