Задний план
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 Добавлена более полная поддержка .mov и новая поддержка .mp4 muxing
9563e67
.
ТЛ; др
В любом случае, это полный набор текущих возможностей кодирования 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 теперь.
crf=25
представляет символ-c:v libx265
как есть, вышеприведенные примеры выводятся с использованием x264. Для наглядностиffmpeg -i INPUT -c:a copy -x265-params crf=2 OUTPUT_h265.mp4
кодировал с x264, ноffmpeg -i INPUT -c:v libx265 -c:a copy -x265-params crf=2 OUTPUT_h265.mp4
кодировал с x265.ffmpeg добавил кодировку x265 12 февраля 2014 года и поддержку контейнера mp4 9 марта:
Заметка:
-c:a copy
(или заменитьcopy
сaac
,libfdk_aac
илиlibfaac
- упорядоченный по качеству видео )--enable-libx265
(и /--enable-libfdk-aac
или--enable-libfaac
если нужно)источник
-pix_fmt yuv420p
до-c:v
, результат был в порядке.Попробуйте текущий кодер DivX. Он имеет встроенную поддержку h265: http://www.divx.com/
(как сообщается http://jkdigital.de/h265-hevc-divx-praxisbericht/ )
источник