Como gerar um MP4 com o codec H.265 usando o FFmpeg?

22

Eu quero codificar um arquivo de vídeo para o H.265. A última versão do ffmpeg deve ser suportada H.265 ( Source ).

No entanto, não consegui encontrar nenhuma informação sobre o comando exato.

Eu não sei qual biblioteca devo indicar após -vcodec .

Eu uso o último Zeranoe FFmpeg Build (git-c78a416 (2013-10-26)).

    
por skull3r7 28.10.2013 / 13:10

3 respostas

36

Antecedentes

O FFmpeg suporta codificação HEVC / H.265 desde 2014-2-12 com libx265. Agora você pode usar o ffmpeg diretamente para codificar HEVC ou usar outro codificador, em seguida, multiplicar manualmente para .mp4, .mov ou .mkv usando o FFmpeg.

Codificadores disponíveis

Os codificadores atuais H.265 / HEVC são:

Apenas o MulticoreWare e DivX são sugeridos devido ao tempo de desenvolvimento e confiabilidade.

Dois x265's

Uma confusão é que existem dois projetos independentes, ambos chamados "x265", um por um estudante universitário chinês e praticamente morto, e outro por uma empresa comercial chamada MulticoreWare. Embora o primeiro tenha começado primeiro, ele está praticamente morto agora, e o último está em desenvolvimento ativo e é endossado pelo VideoLAN (o desenvolvedor do x264).

Linha de tempo do suporte à codificação HEVC do FFmpeg

  • 2013-10-12 Suporte para muxing de .mov adicionado em 53f903b .
  • 2014-02-12 suporte à codificação libx265 adicionado em bb6b173 .
  • 2014-03-09 Mais completo suporte ao Matrix Muxing para HEVC adicionado em 38aee64 .
  • 2014-03-09 Mais completo .mov e novo suporte para muxing .mp4 adicionado em 9563e67 .

tl; dr

De qualquer forma, este é um conjunto completo de possibilidades atuais de codificação de HEVC na ordem da minha recomendação:

  • Usando diretamente o MulticoreWare libx265 com o FFmpeg. Isso significa que, com a mais recente versão do Zeranoe, você pode fazer isso agora:

    ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mov
    # With audio
    ffmpeg -i INPUT -c:v libx265 -c:a copy -x265-params crf=25 OUT.mov
    

    Nota: O FFmpeg constrói mais recente que 2014-03-09 e permite que você muxe HEVC em arquivos .mp4 agora (commit 9563e67):

    ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mp4
    

    Você também pode muxá-lo em Matroska (.mkv):

    ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mkv
    
  • Usando o MulticoreWare x265 autônomo e, em seguida, mux o arquivo resultante com FFmpeg ou MP4Box . Isso funcionará com versões mais antigas do FFmpeg que não possuem suporte à libx265.

    # Decode input using FFmpeg and encode using x265 using pipe
    ffmpeg -i INPUT -f yuv4mpegpipe -pix_fmt yuv420p - | \
    x265 --y4m -o encoded.265 -
    
    # Mux the resulting encoded .265 file into an .mp4 or .mov
    
    # Using ffmpeg: only works with newer builds that support muxing HEVC
    # Muxing to .mp4 supported since 03-09-2014
    ffmpeg -i encoded.265 -c copy out.mp4
    # With audio
    ffmpeg -i encoded.265 -i INPUT -map 0 -map 1:a -c copy out.mp4
    
    # Using MP4Box
    MP4Box -add raw.265 out.mp4
    # With audio
    MP4Box -add {INPUT}#audio -add raw.265 out.mp4
    

    Obrigado ao @Duvrai.

  • Usando o DivX HEVC Encoder e, em seguida, mux it.

    A maneira de usá-lo é semelhante ao uso de x265 independente (veja acima).

Atualização: O FFmpeg tem suporte à codificação HEVC usando o MulticoreWare libx265 agora.

Atualização 2: O FFmpeg agora tem suporte para migrar o HEVC para o mp4 AND mov agora.

    
por 02.02.2014 / 02:04
17

O ffmpeg adicionou a codificação x265 em 12 de fevereiro de 2014 e o suporte a mp4 em contêiner em 9 de março:

ffmpeg -i input -c:v libx265 -c:a copy output.mp4

Nota:

  • O comando acima irá copiar o áudio em seu codec original. Se isso não funcionar, converta o áudio no AAC omitindo -c:a copy (ou substitua copy por aac , libfdk_aac ou libfaac - ordenado por qualidade)
  • ao compilar o ffmpeg, use --enable-libx265 (e --enable-libfdk-aac ou --enable-libfaac , se necessário)
por 18.02.2014 / 13:26
-1

Experimente o codificador divx atual. Ele tem suporte para h265: link

(conforme relatado link )

    
por 29.10.2013 / 09:08