По непонятной причине мой OLED-телевизор может воспроизводить 10-битные файлы HEVC, но только не 10-битные H.264.

Этот вывод (видеопоток) из ffmpeg воспроизводится нормально с 10-битным HEVC:

Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default)

пока этот файл не будет воспроизводиться:

Stream #0:0: Video: h264 (High 10), yuv420p10le(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)

и этот код, похоже, максимальный, который будет работать на моем телевизоре:

Stream #0:0(jpn): Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)

Я использую следующую команду для преобразования в HEVC:

ffmpeg -i in.mkv -map 0:0 -map 0:2 -map 0:4 -vcodec hevc -preset ultrafast -x265-params lossless=1 -acodec copy -scodec copy out.mkv

Это, конечно, занимает некоторое время и требует переключения без потерь, или видео становится крайне пикселированным. Я попытался взглянуть на hevc_nvenc но там было написано «нет совместимых устройств» (возможно, мне нужно предоставить больше информации, у меня есть NVIDIA GeForce 980 TI).

Также попытался использовать -vcodec h264 с -preset high и получил сообщение об ошибке:

Ошибка при открытии кодировщика для выходного потока # 0:0 - возможно, неверные параметры, такие как bit_rate, скорость, ширина или высота

Любой гуру кодирования, способный помочь с более быстрым преобразованием в HEVC или преобразованием в более низкий пресет H.264, или помочь заставить NVENC работать, если он обеспечивает существенное повышение производительности…?

1 ответ1

0

Телевизоры иногда очень требовательны к тому, какие профили и уровни они поддерживают для данного кодека.

В любом случае вам не нужно прибегать к кодированию без потерь, чтобы сохранить качество при преобразовании из H.264 в H.265. Пожалуйста, ознакомьтесь с руководством по кодированию H.265 для ознакомления с доступными опциями в отношении качества и скорости преобразования.

Хотя установка ultrafast предустановки определенно улучшит общую скорость кодирования, она значительно увеличит размер файла (при использовании режима кодирования с постоянным качеством) или уменьшит качество видео (при использовании целевой скорости передачи битов).

Для HEVC это должно работать:

ffmpeg -i <input> -c:v libx265 -crf 28 -preset fast <output>

Уменьшите значение CRF, чтобы повысить качество. Значение ± 6 должно привести к половине или удвоению битрейта, но это будет зависеть от сложности контента, который вы кодируете.

Я попытался посмотреть на hevc_nvenc, но он сказал, что нет совместимых устройств (возможно, необходимо предоставить больше информации, у меня 980Ti)

980 TI поддерживает NVENC (см. Полный список).

Однако, как правило, если у вас есть совместимое устройство, чтобы получить поддержку hevc_nvenc , в вашей системе должны быть установлены библиотеки NVIDIA, а ваш ffmpeg должен быть скомпилирован с поддержкой nvenc . Смотрите эту запись вики для получения дополнительной информации.

преобразование в более низкий пресет h264

Это может помочь, но я предполагаю, что вы хотите сохранить 10-битную глубину цвета в ваших файлах? Если вы конвертируете, вы также можете конвертировать в HEVC - я бы не рекомендовал конвертировать в 8-битный H.264.

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