:::: MENU ::::

Conversão para MP4 h264 com ffmpeg – MOOV ATOM

Hoje precisei alterar um sistema que pegava um vídeo com qualquer formato e o convertia para flv.
Entretanto, hoje vivemos em tempo de tablets e smartphones, e graças a Deus o adobe flash player está morrendo, e junto com ele o formato flv.

Bom agora eu preciso então converter os vídeos para o formato mp4, e como fazer isso de forma que os vídeos continuem ficando leves?

Assim:

1
#ffmpeg -i 'input.mpg' -acodec libfaac -ab 96k -vcodec libx264 -vpre hq -crf 22 -threads 0 output.mp4

ou

1
#ffmpeg -i 'input.mpg' -vcodec libx264 -vpre hq -b 1M -bt 1M -threads 0 outfile.mp4

ou

1
#ffmpeg -i test.avi -acodec libfaac -ab 128k -ar 44100 -s 704x400 -r 20 -vcodec libx264 -b 256000 -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -me_method umh -subq 5 -trellis 1 -refs 2 -bf 1 -coder 1 -me_range 16 -g 300 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 256000 -maxrate 4M -bufsize 4M -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 21 test.mp4

ou

1
#ffmpeg -y -i source.avi -vcodec libx264 -b BITRATE -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +mixed_refs -me umh -subq 5 -trellis 1 -refs 5 -bf 3 -b_strategy 1 -coder 1 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt "$vbitrate" -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 41 -acodec libfaac -ac 2 -ar 48000 -ab "$abitrate" -f mov out.mov

Dois detalhes:

1. provavelmente você terá que instalar a biblioteca “libx264″ para conseguir que seus vídeos sejam H264:

1
#apt-get install libavcodec-extra-52

2. os vídeos não serão buferizados, ou seja, o navegador irá fazer o download do vídeo inteiro para depois o usuário começar a assitir o vídeo.
Isso acontece porque o ffmpeg joga um tal de “Moov Atom” para o final do arquivo, e para que tudo funcione bem, este cara precisa estar no ínicio do arquivo.
Ainda estou procurando uma solução com o ffmpeg, mas a solução que consegui, testei e funcionou foi com um programinha desenvolvido em php.
Segue o link: http://code.google.com/p/moovrelocator/

Fontes:
http://webhostingneeds.com/Convert_video_to_mp4_h264_format_using_ffmpeg
http://flash.flowplayer.org/documentation/installation/formats.html


2 Comments

  • Bráulio |

    Bem explicado ! Obrigado ! Agora entendi o que é o tal do “moov atom” , rsrsrs… Estranho o pessoal que escreveu o ffmpeg não ter colocado e ou corrigido este cabeçalho nas versões mais recentes. Será que não os desenvolvedores, não estariam a colocar esta correção futuramente ? Vlws !

  • max |

    A opção (-movflags faststart) no ffmpeg move o moov atom para o inicio do arquivo

So, what do you think ?