Transcodificando avi mjpeg antigo para h264

Transcodificando avi mjpeg antigo para h264

Eu tenho uma coleção de jpeg e avi privados (formato mjpeg) gravados com a câmera Olympus u5000. Como mjpeg não é um formato adequado para reprodução em xbmc, gostaria de transcodificá-lo para o formato h264. O mais longe que cheguei foi a seguinte linha:

avconv -i P3040001.AVI -strict experimental -c:v libx264 -b:v 8000k -c:a ac3 -b:a 192k output.mp4

Esta linha converte:

avconv version 9.11-6:9.11-2ubuntu2, Copyright (c) 2000-2013 the Libav developers
  built on Mar 24 2014 06:12:33 with gcc 4.8 (Ubuntu 4.8.2-17ubuntu1)
Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, avi, from 'P3040001.AVI':
  Metadata:
    creation_time   : 2013-03-04 12:21:39
    encoder         : OLYMPUS u5000
  Duration: 00:00:01.99, start: 0.000000, bitrate: 12920 kb/s
    Stream #0.0: Video: mjpeg, yuvj422p, 640x480, 30 fps, 30 tbr, 30 tbn
    Stream #0.1: Audio: pcm_u8, 8000 Hz, mono, u8, 64 kb/s

para

avconv version 9.11-6:9.11-2ubuntu2, Copyright (c) 2000-2013 the Libav developers
  built on Mar 24 2014 06:12:33 with gcc 4.8 (Ubuntu 4.8.2-17ubuntu1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2013-03-04 12:21:39
    encoder         : Lavf54.20.3
  Duration: 00:00:02.09, start: 0.000000, bitrate: 35 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 640x480, 17 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc
    Metadata:
      creation_time   : 2013-03-04 12:21:39
    Stream #0.1(und): Audio: aac, 8000 Hz, mono, fltp, 9 kb/s
    Metadata:
      creation_time   : 2013-03-04 12:21:39

Como você pode ver, tenho um problema com áudio. Em output.mp4 não há áudio algum. Eu gostaria de usar o avconv porque tenho vários arquivos no meu servidor xubuntu 14.04.

O que estou fazendo errado?

Cumprimentos.

Responder1

No seu comando você não especificou o que deveria ser feito com a trilha de áudio.

Experimente isto:

avconv -i P3040001.AVI -strict experimental -c:v libx264 -b:v 8000k -c:a ac3 -b:a 192k output.mp4.

Sinta-se à vontade para ajustar as taxas de bits como desejar. Você pode usar avinfopara ter uma ideia sobre a taxa de bits original e transcodificar para uma semelhante.

Você também pode usar um programa GUI como o Avidemux.

Responder2

Experimente isto:

 avconv -i input.avi -c:v libx264 -b 800k output.mp4

isso recodificará o vídeo usando o codec libx264 com taxa de 800k e permitirá que o codificador decida o que fazer com o áudio para garantir a compatibilidade com o contêiner mp4. Ajuste as taxas de bits de acordo com sua preferência de qualidade. Considerando tudo isso, você deve permitir taxas de bits mais altas para filmes maiores. (por exemplo, um filme de 1280x960 precisaria de aproximadamente 4 vezes a taxa de bits de um 640x480 para manter uma qualidade semelhante)

Responder3

Talvez a melhor opção seria usar umpredefinidopara a codificação x264 e especifique o fator de taxa constante (CRF) em vez de uma taxa de bits fixa. O som da fonte não é o melhor para começar, mas talvez uma conversão para um mp3 VBR com taxa de bits relativamente baixa possa parecer boa. Experimente o seguinte:

avconv -i P3040001.AVI \
   -c:v libx264 -preset slow -crf 22 -tune film \
   -c:a libmp3lame -qscale:a 7 -ar 44100 \
   output.mp4

e isso pode proporcionar uma qualidade de vídeo razoável e talvez um som melhor. Ajusta a-qescala:a 7configuração para um som melhor, um número menor resultará em uma meta de taxa de bits mais alta.

Se o avconv engasgar com x264 ou libmp3lame, você precisará adicionar o apropriadolibavcodec-extra* pacote apropriado para sua versão do Ubuntu.

informação relacionada