
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 avinfo
para 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.