ffmpeg - h264 para xvid cria arquivos grandes

2

Estou tentando usar o ffmpeg para converter um arquivo de vídeo h264 / aac em um arquivo xvid / mp3 para que eu possa reproduzi-lo no meu media player ultraconverso.

No momento, o arquivo de vídeo convertido tem DUAS VEZES o tamanho do mp4 original. Existe alguma maneira de obter um tamanho menor de arquivo sem perder muita qualidade? Mesmo uma queda para -qmin 1 é bastante horrível!

O comando que estou usando é

ffmpeg -i input.mp4 -vcodec libxvid -sameq -acodec libmp3lame -ab 128k -ac 2 output.avi

E a saída do ffmpeg é

  Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4'
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
  Duration: 01:34:27.69, start: 0.000000, bitrate: 1520 kb/s
    Stream #0.0(und): Video: h264, yuv420p, 720x304 [PAR 1:1 DAR 45:19], 1387 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc
    Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16, 128 kb/s
Output #0, avi, to 'output.avi':
  Metadata:
    ISFT            : Lavf52.64.2
    Stream #0.0(und): Video: mpeg4, yuv420p, 720x304 [PAR 1:1 DAR 45:19], q=2-31, 200 kb/s, 25 tbn, 25 tbc
    Stream #0.1(und): Audio: libmp3lame, 48000 Hz, stereo, s16, 128 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
    
por fatnic 30.12.2010 / 17:57

2 respostas

1

Dependendo do seu media player, você pode reduzir o tamanho do quadro, por exemplo, se começar como 1280x720, diminua para 640x360. Isso permitiria reduzir em até 3/4 a taxa de bits do vídeo sem alterar a qualidade, e os players de vídeo menores exibem apenas 640 pixels de largura.

    
por 30.12.2010 / 21:28
0

Como foi dito anteriormente nos comentários, o h.264 é um codec melhor (como em compactos melhores) que o xvid, então com todas as outras coisas sendo iguais (qualidade, framesize, framerate etc.) o xvid sempre produzirá arquivos maiores. o lado positivo do xvid é que ele consome menos CPU do que o h.264, e é por isso que os media players mais baratos podem usá-lo.

Por exemplo, o XBMC no xbox original (que tinha uma CPU de arquitetura PIII rodando a 733 MHz) poderia ser coagido a reproduzir conteúdo HD de 720p, mas apenas se o codec fosse leve o suficiente e com sinalizadores muito específicos. isto era tipicamente xvid como h.264 mesmo em resoluções de SD era geralmente muito para o PIII velho pobre. nas resoluções SD, um típico programa de TV Q 45 min, aceitável, pesa em torno de 350 Mb, mas em h.264 seria em torno de metade disso.

Para sua melhor aposta, codifique novamente os vídeos com a mesma res do dispositivo (mas mantendo a qualidade), assim você não estará perdendo largura de banda em imagens que serão reduzidas no tempo de reprodução de qualquer maneira. - reduzir pela metade a resolução em qualquer direção (por exemplo, 1280x720 - > 640x360, conforme mencionado acima) reduzirá a largura de banda necessária (e o tamanho do arquivo resultante) para 1/4.

    
por 16.01.2012 / 10:49