23

Я хочу закодировать видео файл в H.265. Последняя версия ffmpeg должна поддерживать H.265 (Source).

Однако я не смог найти никакой информации о точной команде.

Я не знаю, какую библиотеку мне следует указывать после -vcodec .

Я использую последний Zeranoe FFmpeg Build (git-c78a416 (2013-10-26)).

3 ответа3

38

Фон

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 теперь.

17

ffmpeg добавил кодировку x265 12 февраля 2014 года и поддержку контейнера mp4 9 марта:

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

Замечания:

  • Приведенная выше команда скопирует аудио в исходный кодек. Если это не сработает, преобразуйте звук в AAC, пропустив -c:a copy (или замените copy на aac , libfdk_aac или libfaac - упорядоченные по качеству)
  • при компиляции ffmpeg используйте --enable-libx265--enable-libfdk-aac или --enable-libfaac если необходимо)
-1

Попробуйте текущий кодер DivX. Он имеет встроенную поддержку h265:http://www.divx.com/

(как сообщается http://jkdigital.de/h265-hevc-divx-praxisbericht/ )

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .