Tags do Post ‘stream’
FFmpeg: converta vídeos para iPhone
Postado por: Rafael Biriba em FFmpeg, Áudio e Vídeo em 01/03/2010
Eu utilizo essa linha de comando quase sempre, para converter algum filme e colocar no meu iPhone… Também serve para iPod Touch
Na hora que eu preciso dela, eu nunca a encontro. Então resolvi publicar aqui, para servir como consulta:
ffmpeg -i video.mpg -vcodec libx264 -acodec libfaac -deinterlace -sameq video_saida.mov
Alguns outros parâmetros úteis para uma conversão mais específica:
* bitrate do vídeo (-b 300 = Exemplo),
* bitrate do áudio (-ab 32 = Exemplo),
* dimensão do vídeo (-s 200×300 = Exemplo).
OBS: Comando testado e executado no Linux. Para rodar o comando em windows, veja aqui.
[...] Espero ter ajudado. [...]
FFmpeg: Conversão de mp4 para wmv
Postado por: Rafael Biriba em FFmpeg, Áudio e Vídeo em 16/03/2009

FFmpeg: http://www.ffmpeg.org/
Mês passado, tive que fazer uma conversão deste tipo. Eu possuia um vídeo em mp4 e precisava converter para wmv, para que o mesmo fosse executado no windows utilizando o codec nativo, sem utilizar nenhum codec adicional para isso.
O Arquivo .MP4:
Stream #0.0(und): Video: h264, yuv420p, 480×360 [PAR 0:1 DAR 0:1], 29.97 tb(r)
Stream #0.1(und): Audio: mpeg4aac, 44100 Hz, stereo
Ao final de alguns testes, consegui converter para o seguinte arquivo .wmv:
Stream #0.0: Video: wmv1, yuv420p, 480×360 [PAR 0:1 DAR 0:1], 29.92 tb(r)
Stream #0.1: Audio: wmav2, 44100 Hz, stereo, 64 kb/s
Abaixo segue a linha de comando:
ffmpeg -i video_entrada.mp4 -vcodec wmv1 -acodec wmav2 -deinterlace -sameq video_saida.wmv
Utilizei o codec de vídeo WMV1 e o codec de áudio WMVA2, seguidos pelo deinterlace ( desentrelaçamento do vídeo ) e o sameq ( mesma qualidade de vídeo do original ).
——————————————————-
Instalação do FFmpeg:
FFmpeg: Solução ideal para Áudio e Vídeo
——————————————————
Procedimento de Uso:

Usuários Linux tem sempre mais facilidade, nesse tipo de procedimento.
Basta abrir o Terminal e digitar:
ffmpeg -i video_entrada.mp4 -vcodec wmv1 -acodec wmav2 -deinterlace -sameq video_saida.wmv
Onde meu arquivo se chama video_entrada.mp4 e se encontra na área de trabalho.
( Levando em consideração que ao abrir o terminal você vai estar dentro da pasta home do usuário local )
————————————————————————————————————
Usuários Windows levam mais tempo para poder executar o comando.
Entre em INICIAR > EXECUTAR e digite cmd > OK ( Para abrir o Terminal do Windows )
Acesse a pasta digitando:
cd Desktop/pasta_do_ffmpeg/
em seguida:
ffmpeg.exe -i “../video_entrada.mp4″ -vcodec wmv1 -acodec wmav2 -deinterlace -sameq “../video_saida.wmv”
Onde meu arquivo se chama video_entrada.mp4 e se encontra na área de trabalho.
( Utilizamos ../ para sair da pasta do ffmpeg e acessar o filme.avi a partir da área de trabalho. )
————————————————————————————————————
Leitura recomendada: Windows VS FFmpeg e Mplayer
————————————————————————————————————
Windows XP vs FFmpeg e Mplayer
Postado por: Rafael Biriba em FFmpeg, Mplayer, Sistemas Operacionais, Áudio e Vídeo em 13/02/2009

Vamos lá… Mais uma vez ajudando nossos amigos usuários Windows !
Para aqueles que não leram a máteria sobre Windows XP vs Linux Ubuntu podem acessar clicando aqui.
Mas ainda há aqueles que preferem o windows, não sei porque se tudo nele é mais complicado, mas vamos lá !
Existe uma certa dificuldade de usar o FFmpeg em ambiente Windows. No linux, basta digitar na linha de comando ffmpeg “mais os parametros” ou até mplayer “mais os parametros“, infelizmente Windows é tão bom, que vai nos dar um pouco mais de trabalho ! O motivo disso ? Simples… Porque o FFmpeg e o Mplayer ( derivado do ffmpeg ) forão desenvolvidos dentro do Linux. Como o código é aberto, é possível achar algumas versões compiladas para Windows.
Vamos agora por a mão na massa !
Para quem não leu a matéria FFmpeg: Solução ideal para Áudio e Vídeo, o FFmpeg pode ser obtido pelo link: http://www.rafaelbiriba.com/ffmpeg-r16537-gpl-static-win32.zip
Para ficar mais acessível, extraia o arquivo .zip na área de trabalho, depois abra o bloco de notas ( Iniciar > Executar > Digite cmd > OK )
Com o terminal aberto, devemos agora entrar no diretório do ffmpeg.
Acesse a pasta digitando:
cd Desktop/pasta_do_ffmpeg/
Agora com o diretório do FFmpeg aberto pasta digitar:
ffmpeg.exe mais os parametros desejados
Com o Mplayer será bem parecido, basta extrair na área de trabalho ( mais acessível ), entrar na pasta do Mplayer no terminal e digitar mplayer.exe mais os paramentros.
Só gostaria de ressaltar, e reafirmar a facilidade desta operação quando realizada em Linux. Já vou adiantando que nem todos os Codecs tanto de vídeo como áudio, não estão disponíveis para a maioria das compilações Windows. Hoje mesmo, tive um super-problema para rodar o codec de vídeo libdv no Mplayer numa máquina Windows, e a unica solução que eu consegui achar foi: não usar o codec libdv. Logicamente arrumei uma outra saida com outro codec utilizando ffmpeg e o codec dvvideo. Porém existe muitos outros que não estão disponíveis.
Meu conselho: Eu já dei.. use Linux… Para quem se recusa de qualquer forma, também já disse que é possível utilizar rodando de um CD, também é possível instala-lo num pendrive e até mesmo rodar junto com o Windows ( Dual Boot ). Opções é que não faltam… Agora cabe a você avaliar qual vai ser mais útil para você trabalhar e usar…
FFmpeg: Extraindo imagens de um vídeo ( Snapshot ) - Parte II
Postado por: Rafael Biriba em FFmpeg, Áudio e Vídeo em 12/02/2009

FFmpeg: http://www.ffmpeg.org/
Recebi uma dúvida bem plausível, sobre extrair imagens de um vídeo. Com os comandos fornecidos em meu ultimo POST, é possível atrasar a captura da imagem, para começar a extrair a partir de 10 segundos por exemplo, depois do vídeo ter iniciado, como mostra o comando a seguir:
ffmpeg -itsoffset -10 -i foo.avi -r 1 -s 800×600 -f image2 snapshot-%03d.jpeg
A dúvida seria exatamente essa:
“Se possuirmos um vídeo de 2 horas de duração, e precisarmos extrair somente uma imagem da posição 1 hora, 30 minutos e 20 segundos, como seria feito ?”
Simples:
Para isso utilizaremos o parametro -vframes, comando utilizado para limitar o numero de frames que vai ser capturado. No nosso caso será 1 frame. O outro comando, bastante similar ao -itsoffset, seria o -ss, serve para atribuir uma posição de inicio para capturarmos o nosso frame. Essa posição deve ser indicada como hh:mm:ss. Sendo hora : minutos : segundos da posição desejada. Abaixo segue a solução para nosso problema:
ffmpeg -vframes 1 -ss 01:30:20 -i foo.avi -r 1 -s 800×600 -f image2 snapshot-%03d.jpeg
Para certificarmos que iremos extrair exatamente o frame que desejamos o valor do vframes pode ser alterado para capturar alguns frames seguintes, por segurança.
Veja o restante do tópico: Extraindo imagens de um vídeo - parte I, pelo link:
http://www.rafaelbiriba.com/?p=53
FFmpeg: Extraindo imagens de um vídeo ( Snapshot )
Postado por: Rafael Biriba em FFmpeg, Áudio e Vídeo em 11/02/2009

FFmpeg: http://www.ffmpeg.org/
Utilizando o seguinte comando:
ffmpeg -i foo.avi -r 1 -s 800×600 -f image2 snapshot-%03d.jpeg
Onde:
foo.avi > Vídeo de entrada, podendo ser .avi, .mpeg, .mov, ou qualquer outra extensão suportada pelo FFmpeg.
-r 1 > frame rate ( 1 frame por segundo )
- s 800×600 > Dimensão desejada da imagem final. Caso o valor seja maior que o vídeo de entrada, será acrescentado bordas pretas na imagem.
-f image2 > Força o formato de imagem de saída para imagem. Deve ser seguido pelo nome do arquivo desejado.jpeg
snapshot-03%d.jpeg > Snapshot- é o nome do arquivo desejado. 03%d é a numeração de 3 digitos iniciando em zero. Sendo assim 04%d para 4 digitos e assim por diante, seguido pela extenção .jpeg , ou .png, .bmp ou até mesmo .tiff
Opções Adicionais:
• Sabendo que as snapshots são extraídas por segundo, então ajustando o parametro -r é possível definir de quantos em quantos frames deve-se extrair uma imagem.
• Acrescentando o parametro: -itsoffset -4 as imagens começam a ser extraídas 4 segundos depois do inicio do vídeo. Exemplo utilizando um delay de 10 segundos:
ffmpeg -itsoffset -10 -i foo.avi -r 1 -s 800×600 -f image2 snapshot-%03d.jpeg
• Parametro -s ( tamanho do frame ):
Ao invés de especificar o tamanho, é possível utilizar uma das abreviações a seguir:
sqcif = 128×96
qcif = 176×144
cif = 352×288
4cif = 704×576
qqvga = 160×120
qvga = 320×240
vga = 640×480
svga = 800×600
xga = 1024×768
uxga = 1600×1200
qxga = 2048×1536
sxga = 1280×1024
qsxga = 2560×2048
hsxga = 5120×4096
wvga = 852×480
wxga = 1366×768
wsxga = 1600×1024
wuxga = 1920×1200
woxga = 2560×1600
wqsxga = 3200×2048
wquxga = 3840×2400
whsxga = 6400×4096
whuxga = 7680×4800
cga = 320×200
ega = 640×350
hd480 = 852×480
hd720 = 1280×720
hd1080 = 1920×1080
Exemplo:
ffmpeg -i foo.avi -r 1 -s hd1080 -f image2 snapshot-%03d.jpeg
• Parametros para CROP ( corte de imagem )
Para “cropar” um vídeo, o parametro de crop deve estar localizado antes do parametro -s ( tamanho do frame )
-croptop 100 = Define o corte no topo em 100 pixels
-cropbottom 250 = Define o corte no rodapé de 250 pixels
-cropleft 30 = Define o corte da lateral esquerda de 30 pixels
-cropright 25 = Define o corte da lateral direita de 25 pixels
* Valores em pixels ilustrativos, devendo ser usados conforme sua necessidade. Não é necessário utilizar todos os parametros para fazer um crop.
Exemplo:
ffmpeg -i foo.avi -croptop 250 -cropright 25 -r 1 -s hd1080 -f image2 snapshot-%03d.jpeg
Onde é feito o crop do topo e da lateral direita.
Espero ter ajudado a todos… =)
FFmpeg: Formatos de CODECs disponíveis
Postado por: Rafael Biriba em FFmpeg, Áudio e Vídeo em 10/02/2009

FFmpeg: http://www.ffmpeg.org/
No FFmpeg os codecs de áudio e vídeo são selecionados por: “-acodec codec“ e “-vcodec codec” respectivamente.
Através do comando: ffmpeg -formats , é possível listar os formatos de arquivos de entrada e saída, e também os codecs suportados.
Abaixo segue algumas das opçoes comuns:
| Nome do codec de áudio | Descrição |
|---|---|
| mp3lame | encode to VBR, ABR or CBR MP3 with LAME |
| faac | FAAC AAC audio encoder |
| toolame | MPEG Audio Layer 2 encoder |
| twolame | MPEG Audio Layer 2 encoder based on tooLAME |
| pcm | uncompressed PCM audio |
| copy | sem compreensão, somente copia os frames |
| Nome do codec de vídeo | Descrição |
|---|---|
| flv | Flash Video |
| xvid | Xvid, MPEG-4 Advanced Simple Profile (ASP) codec |
| x264 | x264, MPEG-4 Advanced Video Coding (AVC), AKA H.264 codec |
| nuv | nuppel video, used by some realtime applications |
| raw | uncompressed video frames |
| copy | não recodifica, somente copia os frames |
| mov | QuickTime Video |
| dv | Digital Video |
Também existe uma formam mais simples de selecionar o codec, utilizando no lugar do -vcodec, o parametro: “-target type“
Onde no lugar de type, podemos substituir por:
(”vcd”, “svcd”, “dvd”, “dv”, “dv50″, “dv25″,”pal-vcd”, “ntsc-svcd”, … )
Sendo assim, os parametros de bitrate, codecs, buffer sizes serão automaticamente ajustados.
Na próxima publicação, aprenderemos a utilizar a ferramenta, convertendo vídeos, removendo o audio, criando snapshot, etc…
FFmpeg: Solução ideal para Áudio e Vídeo
Postado por: Rafael Biriba em FFmpeg, Áudio e Vídeo em 09/02/2009

FFmpeg: http://www.ffmpeg.org/
FFmpeg é uma solução completa para gravar, converter e transmitir áudio e vídeo. Desenvolvido para linux, também pode ser compilado para Windows.
O projeto está sempre sendo considerado muito experimental, apesar de funcionar muito bem, pois muitos componentes multimedia e recursos estão constantemente sendo adicionados. Pequenas atualizações são feitas e um espaço muito curto de tempo, por isso não é lançado ainda uma versão formal do projeto.
O projeto é formado por diversos componentes:
ffmpeg: Linha de comando para converter arquivos multimedia entre vários formatos diferentes.
ffserver: É um “multimedia streaming server” para transmissões ao vivo via HTTP. ( RTSP em desenvolvimento )
ffplay: É um simples “media player” com biblioteca FFmpeg
libavcodec: É uma biblioteca que contém “decoders” e “encoders” para codec de áudio e vídeo
libavformat: É uma biblioteca que contém demultiplexador e multiplexador para formatos de “container” multimedia.
libavutil: É uma biblioteca de ajuda que contém rotinas comuns para diferentes partes do FFmpeg.
libpostpro: É uma biblioteca que contém rotina de processamento pós video.
libswscale: É uma biblioteca que contém rotina de escala de imagem.
libavfilter: É o substituto do “vhook”, que permite o video ser modificado ou examinado entre o “decoder” e o “encoder”
Codecs Suportados:
* Snow
* FFV1
* ATRAC3
* H.261, H.263 and H.264/MPEG-4 AVC
* Indeo 2 and 3
* QDesign Music Codec 2, used by many QuickTime movies prior to QuickTime 7.
* Smacker video
* Sorenson 3 Codec used by many QuickTime movies
* Theora (together with Vorbis makes a base for the .ogg format)
* Truespeech
* TXD
* VP5 and VP6
* Vorbis
* Windows Media Audio
* Some Windows Media Video codecs, including WMV1, WMV2 and WMV3
The default MPEG-4 codec used by FFmpeg for encoding has the FourCC of FMP4.
Formatos
* ASF
* AVI
* BFI
* IFF
* RL2
* FLV
* Material Exchange Format
* Matroska
* Maxis XA
* MSN Webcam stream
* MPEG transport stream
* TXD
* OMA
Protocolos
* HTTP
* RTP
* RTSP
* TCP
* UDP
——————————————————————-
Instalando em LINUX ( No exemplo, Utilizei o UBUNTU )
sudo aptitude install ffmpeg
Depois disso, basta utilizar o ffmpeg com os parametros necessário, que será apresentado em um novo POST !
——————————————————————-
Instalando em Windows ( No exemplo, Windows XP )
O Objetivo deste POST foi além de apresentar o FFmpeg, foi disponibilizar o executável para download, já que é complicado de encontrar e de compilar em Windows.
O download pode ser feito em: http://www.rafaelbiriba.com/ffmpeg-r16537-gpl-static-win32.zip
Fonte Original: http://ffmpeg.arrozcru.com/builds/
O arquivo .zip ( 6.5 MB ) possui a documentação do FFmpeg, a documentação da versão, uma dll (pthreadGC2) e os executáveis ffmpeg.exe e ffplay.exe.
Antes de utilizar-los, precisamos mover a dll (pthreadGC2) para dentro da pasta system32 do windows. Para isso copie o arquivo pthreadGC2.dll e cole em C:\WINDOWS\system32\ de forma que seja acessivel por:
C:\WINDOWS\system32\pthreadGC2.dll
Depois disso, os executáveis estão disponíveis para uso !
Sua utilização será exemplificada e explicada num próximo post. =)


