Como posso converter vídeos para o Sony Xperia U na minha caixa de Linux?

1

Eu gostaria de enviar alguns vídeos para minha namorada, mas garanto que eles serão reproduzidos em seu celular. Eu quero realizar as tarefas de codificação na minha caixa Arch Linux, porque meu PC é um low end. Eu posso usar apenas ffmpeg ou mencoder ou outra ferramenta CLI. Ela pode reproduzir vídeos do youtube, mas eu não quero enviar esses vídeos para o youtube. Existem predefinições para telefones celulares específicos? E quando ela simplesmente clica em um link direto para um vídeo, ele toca diretamente no celular ou eu deveria incorporá-lo em um html5 / flash player, como no youtube?

    
por Konstantin 22.08.2014 / 18:01

1 resposta

2

O que o dispositivo suporta

De acordo com o Documento técnico do Xperia U , este dispositivo pode decodificar vídeo H.264, Alto perfil, nível 3.2 no contentor MP4 com áudio AAC.

Exemplo de comando ffmpeg

ffmpeg -i input -codec:v libx264 -crf 23 -preset medium -profile high -level 3.2 \
-pix_fmt yuv420p -movflags +faststart -codec:a aac -strict experimental out.mp4

O que essas opções fazem

  • -codec:v libx264 - Escolha o codificador de vídeo libx264 para codificar o vídeo H.264.

  • -crf 23 - Nível de qualidade de vídeo de saída. 23 é o padrão e um valor menor é de maior qualidade.

  • -preset medium - Compensação de velocidade de codificação versus eficiência de compactação. O padrão é medium .

  • -profile high - Define o perfil de vídeo H.264 como Alto.

  • -level 3.2 - Define o nível de vídeo H.264 como 3.2.

  • -pix_fmt yuv420p - ffmpeg tenta minimizar ou evitar a subamostragem de croma (dependendo da entrada, codificador, ffmpeg versão, etc). Isso é tecnicamente uma coisa boa, mas pode resultar em uma saída que os players não baseados em FFmpeg não podem manipular. Isso garante um esquema de subamostragem de chroma compatível.

  • -movflags +faststart - realoca o "moov atom" para o início do arquivo para que a reprodução comece antes do download completo do arquivo no caso de download progressivo (como assistir por meio de um navegador).

  • -codec:a aac -strict experimental - Codifica o áudio AAC usando o codificador FFmpeg AAC nativo experimental. Não é o pior codificador AAC, mas se soar uma merda, use uma taxa de bits maior com -b:a (o padrão é 128k).

Notas adicionais

  • Use uma versão recente de ffmpeg . As versões antigas não impõem o número correto de quadros de referência ao usar -level (corrigido bug # 3307 ), mas desde que você está usando o Arch Linux, você não precisa se preocupar com isso.

  • O pacote ffmpeg do repositório Arch Linux Extra suporta apenas o codificador FFmpeg AAC nativo. Recompile de ABS com --enable-libfdk-aac --enable-nonfree (com o pacote libfdk-aac como dependente) ou use o pacote ffmpeg-git no AUR para obter suporte para codificação com libfdk_aac, que é o melhor codificador AAC suportado pelo FFmpeg. Recomenda-se usar o pacote ABS sobre o pacote AUR se você quiser tentar isso.

  • Se o vídeo e / ou áudio de entrada já for compatível, você poderá simplesmente copiar o fluxo em vez de recodificar, como com -codec:a copy .

  • O dispositivo móvel pode ter restrições adicionais das quais não tenho conhecimento, por isso você terá que experimentar. Também não tenho certeza se o dispositivo funcionará com um link simples para o vídeo, mas isso seria fácil de testar.

  • Veja o Guia de codificação do FFmpeg H.264 e FFmpeg AAC Encoding Guide para informações adicionais.

por 22.08.2014 / 21:18