fundo
O FFmpeg suporta a codificação HEVC / H.265 desde 12/12/2014 com libx265. Agora você pode usar o ffmpeg diretamente para codificar o HEVC ou usar outro codificador e depois agrupá-lo manualmente em .mp4, .mov ou .mkv usando o FFmpeg.
Codificadores disponíveis
Os codificadores atuais H.265 / HEVC são:
Somente o MulticoreWare e o DivX são sugeridos devido ao seu tempo de desenvolvimento e confiabilidade.
Dois x265
Uma confusão é que existem dois projetos independentes, ambos denominados "x265", um por um estudante 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 do tempo do suporte à codificação FFmpeg HEVC
- 2013-10-12 suporte ao .mov muxing adicionado
53f903b
.
- 12-02-2014 adicionado suporte à codificação libx265
bb6b173
.
- 2014-03-09 Foi adicionado um suporte mais completo ao Matroska muxing para HEVC
38aee64
.
- 2014-03-09 Mais completo suporte ao .mov e ao novo .mp4 muxing
9563e67
.
tl; dr
De qualquer forma, este é um conjunto completo de possibilidades atuais de codificação de HEVC na ordem da minha recomendação:
Diretamente usando o MulticoreWare libx265 com FFmpeg. Isso significa que, com a versão mais recente do Zeranoe, agora você pode fazer isso:
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: As compilações do FFmpeg mais recentes que 09/03/2014 permitem que você mux o HEVC em arquivos .mp4 agora (confirmar 9563e67):
ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mp4
Você também pode compactá-lo em Matroska (.mkv):
ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mkv
Usando o MulticoreWare x265 autônomo e depois mux o arquivo resultante com o FFmpeg ou o MP4Box . Isso funcionará com versões mais antigas do FFmpeg que não têm 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
Graças a @Duvrai.
Usando o codificador DivX HEVC e mux.
A maneira de usá-lo é semelhante ao uso do x265 autônomo (veja acima).
Atualização: O FFmpeg agora possui suporte à codificação HEVC usando o MulticoreWare libx265.
Atualização 2: O FFmpeg agora tem suporte para colocar o HEVC em mux no mp4 AND mov agora.
crf=25
representa nos comandos exemplo, aqui está um guia CRF: slhck.info/articles/crf-c:v libx265
como estão, os exemplos acima são impressos usando x264. Para maior clareza,ffmpeg -i INPUT -c:a copy -x265-params crf=2 OUTPUT_h265.mp4
foi codificado com x264, masffmpeg -i INPUT -c:v libx265 -c:a copy -x265-params crf=2 OUTPUT_h265.mp4
codificado com x265.ffmpeg adicionou codificação x265 em 12 de fevereiro de 2014 e suporte a contêiner mp4 em 9 de março:
Nota:
-c:a copy
(ou substituindocopy
poraac
,libfdk_aac
oulibfaac
- pedido com qualidade)--enable-libx265
(e--enable-libfdk-aac
ou--enable-libfaac
se necessário)fonte
-pix_fmt yuv420p
antes-c:v
, o resultado foi bom.Experimente o codificador divx atual. Ele tem suporte para h265: http://www.divx.com/
(conforme relatado http://jkdigital.de/h265-hevc-divx-praxisbericht/ )
fonte