Estou tentando encontrar o formato de vídeo sem perdas mais adequado para vídeos de 1280x720 25fps. O vídeo tem 4 minutos. O som será mp3 de 320 kbps, o que não é grande coisa. Condições ideais:
- Sem perdas (pode ser perceptivamente sem perdas)
- O container + codec pode ser reproduzido na maioria das plataformas
- O codec Container + pode ser reproduzido em aparelhos de DVD modernos (compatíveis com outros formatos que não DVD)
- O tamanho é inferior a 700 MB
É mesmo possível? Já lutam há três dias, sem resultados satisfatórios, chegando a receber arquivos de 12 GB (parece muito - 3 GB / minuto).
video
ffmpeg
video-editing
mrkva
fonte
fonte
Respostas:
O melhor formato real, matematicamente sem perdas, que eu conheço é o huffyuv, mas que produzirá arquivos hilariantes e enormes, e não seria compatível com muito. Para o registro, o ffmpeg pode fazer isso com:
O X264, o codificador h.264 de código aberto, possui um modo sem perdas. Isso pode ir para dentro de um contêiner MP4 e deve ser compatível com a maioria dos hardwares fabricados nos últimos anos. O primeiro comando fornecerá uma velocidade rápida de codificação, mas um arquivo grande; o segundo comando levará muito mais tempo, mas o arquivo deve ter cerca da metade do tamanho do codificado rapidamente (ainda será bastante grande):
Se isso não fornecer um arquivo pequeno o suficiente, um crf de 18 é geralmente considerado 'visualmente sem perdas':
Geralmente, recomendo a predefinição muito rápida para codificação com x264; na minha experiência, ela oferece a melhor relação velocidade / tamanho (há uma grande queda no tamanho do arquivo entre super-rápida e muito rápida, mais lenta que isso e mais incremental). O conselho geral é usar a predefinição mais lenta possível, as predefinições são: ultra-rápida, super-rápida, muito rápida, mais rápida, rápida, média, lenta, mais lenta, baixa velocidade.
Veja aqui um guia mais aprofundado sobre a codificação x264.
fonte
veryfast
como um bom padrão para x264 com perdas.medium
é um bom meio termo, mas eu costumo usarveryslow
para a codificação final de qualquer coisa. Tambémhuffyuv
não é muito rápido, eu não o recomendaria por nada além de compatibilidade.Hoje em dia eu gosto de webm :
Para converter mais rapidamente, com processadores com vários núcleos, li que é recomendável usar um thread a menos do que os núcleos reais. Portanto, com um núcleo 8, você pode especificar 7 threads como este:
fonte
para ter total compatibilidade com DVD-players, você precisará usar o formato MPEG-2, contêiner, restrições, codecs. Eu acho que "players modernos" significa compatibilidade "mp4", que é basicamente e principalmente um player de arquivos mp4 - H.264, MPEG-4, AVC => libx264
# VÍDEOleia mais: https://de.wikipedia.org/wiki /H.264
Ter um olhar para https://trac.ffmpeg.org/wiki/Encode/H.264 , especialmente a parte onde é sobre "perfil" e "nível", para compatibilidade
# AUDIOUsando
-profile:v high -level 4.0
deve fazê-loEvite recodificar faixas de áudio com codecs com perda - qualquer formato mp3 é com perda, mesmo 320kbps.
# FinalmenteUse em
-c:a copy
vez disso.Até agora, ele fez um bom trabalho para mim. sem problemas de sincronização.
Os fluxos de áudio não estão vinculados aos quadros-chave. Cortes precisos são possíveis.
Se a sua faixa de áudio for gravada na taxa de amostragem de 44kHz, use no máx. 256kbps
Use codecs com perdas apenas para a codificação final do seu vídeo, se precisar atender a certos pré-requisitos.
Já ouvi falar de alguns problemas de sincronização de áudio, mas parece que o principal problema era o material protegido (!).
Eu preferiria algo assim:
ffmpeg -i input -c:v libx264 -crf 5 -preset faster -profile:v high -level 4.0 -c:a copy output.mp4
fonte