Transcodificando o antigo mjpeg avi para h264

3

Tenho uma coleção de jpegs privados e avi (formato mjpeg) gravados com a câmera Olympus u5000. Como o mjpeg não é um formato adequado para jogar no xbmc, eu gostaria de transcodificá-lo para o formato h264. O mais longe que tenho é 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 é convertida:

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, eu tenho um problema com o áudio. Na saída.mp4 não há áudio. Eu gostaria de usar o avconv porque eu tenho muitos arquivos no meu servidor xubuntu 14.04.

O que estou fazendo de errado?

Atenciosamente.

    
por user3225309 03.05.2014 / 17:10

3 respostas

1

Em seu comando, você não estava especificando o que deve ser feito com a faixa de áudio.

Tente 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 conforme desejar. Você pode usar avinfo para ter uma idéia sobre a taxa de bits original e transcodificar para uma semelhante.

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

    
por Cornelius 03.05.2014 / 17:20
1

Tente isto:

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

isto irá reencodificar o vídeo usando o codec libx264 com a taxa em 800k e deixar o codificador decidir o que fazer com o áudio para garantir a compatibilidade com o contêiner mp4. Ajuste as taxas de bits para sua preferência de qualidade. Tudo considerado, 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)

    
por Elder Geek 03.05.2014 / 17:20
0

Talvez a melhor opção seja usar uma predefinição para a codificação x264 e especificar 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 de taxa de bits relativamente baixa possa parecer boa. Tente 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 dar uma qualidade de vídeo razoável e talvez um som melhor. Ajuste a configuração -qscale: a 7 para um melhor som, um número menor dará um alvo de taxa de bits maior.

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

    
por andrew.46 21.05.2014 / 02:47