Как декодировать файлы HEVC в YUV?

Я хотел бы декодировать файлы с кодировкой HEVC в файлы YUV.

Есть ли какой-нибудь простой способ сделать это? Исполняемый файл был бы хорош, но я бы справился с исходным кодом, который легко компилируется.


person NiRR    schedule 10.10.2013    source источник


Ответы (4)


Это так же просто, как (руководство предполагает Linux, настройте его под свои нужды)

  1. Скопируйте официальный эталонный кодек (официальный-официальный — это svn-репозиторий, найденный по адресу https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/trunk/, но git-репозиторий только для чтения, который синхронизируется с svn, предоставляется BBC, с которым намного проще работать, ИМХО)

    git clone git://hevc.kw.bbc.co.uk/git/jctvc-hm.git
    
  2. Чтобы создать исполняемые файлы:

    cd jctvc-hm/build/linux && make -f makefile
    
  3. Двоичные файлы теперь помещаются в

    jctvc-hm/bin
    
  4. Теперь, чтобы декодировать двоичный файл с кодировкой HEVC в YCbCr, выполните

    ./TAppDecoderStatic -b encoded_file.bin -o reconstructed.yuv
    

Если вы не используете систему Linux, просто перейдите в папку сборки, и вы, надеюсь, найдете что-то, что вы можете использовать для своей системы:

$ cd jctvc-hm/build && ls
HM_vc10.sln  HM_vc8.sln  HM_vc9.sln  linux/  vc10/  vc8/  vc9/
person Fredrik Pihl    schedule 10.10.2013
comment
@NiRR - рад, что смог помочь, просто дайте мне знать, если вам понадобится дополнительная помощь с кодеком :-) - person Fredrik Pihl; 13.10.2013

Следуйте инструкциям на https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/branches/HM-9.2-dev/doc/software-manual.pdf, исходный код можно загрузить с https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/trunk/ с помощью любого подрывного программного обеспечения.

Вы можете собрать его как на ОС Windows, так и на Linux. После сборки программного обеспечения вы можете запускать исполняемые файлы, как указано в руководстве по программному обеспечению.

person Grad    schedule 12.10.2013

В качестве альтернативы вы можете использовать libde265 как гораздо более быстрый декодер.

  1. Получите последнюю версию на странице выпуска github.
  2. Настроить с помощью ./configure --disable-sherlock265
  3. Компиляция: make

Создайте файл YUV с помощью

./dec265/dec265 hevc-file.bin -o output.yuv -t4

Опция -t4 предназначена для многопоточного декодирования. Вы также можете выполнять другие действия, такие как ввод потоков NAL-модулей, дамп заголовков, непосредственное отображение видео или проверка хэшей SEI.

person farindk    schedule 21.02.2014

Вы можете загрузить исполняемый файл ffmpeg для сборки Windows, просто декодирующий битовый поток HEVC.

ffmpeg.exe -i xxx.bin out.yuv
person xiangjian Wu    schedule 11.08.2015