ct

    Convertendo vídeos usando o FFMPEG

    Artigos

    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!

    » Gostou do texto? Veja nossos livros impressos

    ... ou use a busca para localizar outros artigos relacionados:

cb
Livros de Carlos E. Morimoto HOME