Фон
FFmpeg поддерживает кодирование HEVC/H.265 с 2014-2-12 с помощью libx265. Теперь вы можете использовать ffmpeg напрямую для кодирования HEVC или использовать другой кодер, а затем вручную преобразовать его в .mp4, .mov или .mkv, используя FFmpeg.
Доступные кодеры
Текущие датчики H.265/HEVC:
Только MulticoreWare и DivX предлагаются из-за их времени разработки и надежности.
Два х265
Одно заблуждение состоит в том, что есть два независимых проекта, оба названных "x265", один из которых был студентом китайского колледжа и практически мертв, а другой - коммерческая компания MulticoreWare. Несмотря на то, что первый появился первым, он практически мертв, а второй находится в стадии активной разработки и одобрен VideoLAN (разработчиком x264).
Хронология поддержки кодирования FFmpeg HEVC
- 2013-10-12 Добавлена поддержка muxing .mov в
53f903b
.
- 2014-02-12 Добавлена поддержка кодировки libx265 в
bb6b173
.
- 2014-03-09 Более полная поддержка Matroska muxing для HEVC добавлена в
38aee64
.
- 2014-03-09 В
9563e67
добавлена более полная поддержка .mov и новая поддержка .mp4 muxing .
ТЛ; др
В любом случае, это полный набор текущих возможностей кодирования HEVC в порядке моей рекомендации:
Непосредственное использование MulticoreWare libx265 с FFmpeg. Это означает, что с последней версией Zeranoe вы можете сделать это:
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
Примечание. Сборка FFmpeg новее, чем 2014-03-09, позволяет вам теперь мультиплексировать HEVC в файлы .mp4 (коммит 9563e67):
ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mp4
Вы также можете добавить его в Matroska (.mkv):
ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mkv
Используя автономный MulticoreWare x265, а затем смешайте полученный файл с FFmpeg или MP4Box. Это будет работать со старыми сборками FFmpeg, которые не поддерживают 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
Благодаря @Duvrai.
Использование DivX HEVC Encoder и затем его мультиплексирование.
Способ его использования аналогичен использованию автономного x265 (см. Выше).
Обновление: FFmpeg теперь имеет поддержку кодирования HEVC с использованием MulticoreWare libx265.
Обновление 2: FFmpeg теперь поддерживает мультиплексирование HEVC в mp4 и mov теперь.