Videorip.info

Учимся кодировать видео и делимся опытом

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Bookmark and Share

ТЕМА: Конвертирование 10 битных исходников HDR to SDR в 10 и 8 bit

Конвертирование 10 битных исходников HDR to SDR в 10 и 8 bit 2 года 4 мес. назад #4523

  • Tempter57
  • Tempter57 аватар
  • Не в сети
  • Эксперт
  • Сообщений: 68
  • Спасибо получено: 93
Тема реализации конвертации HDR to SDR для Vapoursynth https://forum.doom9.org/showthread.php?t=174415
Также подобную конвертацию можно выполнить в AviSynth+. Необходимы только два плагина фактически avsresize.dll https://forum.doom9.org/showthread.php?t=173986&highlight=avsresize.dll и DGTonemap.dll https://forum.doom9.org/showpost.php?p=1839466&postcount=81
Скрипт получается тривиальным, но требуется замена папки avisynth.dll в папке SYSWOW64. Открывать нужно исходник LWLibavVideoSource("E:\путь к исходнику 2160.mkv", format="YUV420P10", stacked=false)
Скрипт конвертации исходника YUV420P10 HDR to SDR 10 bit выглядит так:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Скрипт конвертации HDR to SDR 8 bit выглядит проще:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


SmoothYlevels16.avs выглядит так
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Никогда не учите свинью танцевать. Это только раздражает свинью, и вы напрасно тратите своё время...
Последнее редактирование: 1 год 5 мес. назад от Tempter57.
Гостям запрещено создавать сообщения!

Конвертирование 10 битных исходников HDR to SDR в 10 и 8 bit 2 года 4 мес. назад #4524

  • Tempter57
  • Tempter57 аватар
  • Не в сети
  • Эксперт
  • Сообщений: 68
  • Спасибо получено: 93
Более сложный пресет фильтрации с шумоподавителем MDegrainN и гамма-коррекцией для ТВ-диапазона, которая немного смягчает, деблокирует и защищает самые темные оттенки, увеличивая динамический диапазон для низких значений яркости
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Менее сложный скрипт без векторного анализа, но с режимом многопоточности:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Добавил скрипт на плагине HDRtools.dll forum.doom9.org/showthread.php?t=175488
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Безусловно можно выполнить конвертацию HDR to SDR только настройками х265, но рипы на основе скрипта
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

и применение tonemap на основе настройки параметров х265 типа
video codec:
x265

video cli:
--crf 18.0 --profile main10 --level-idc 5.1 --high-tier --ref 6 --bframes 12 --rd 4 --me 3 --subme 5 --merange 57 --ipratio 1.2 --pbratio 1.1 --aq-mode 3 --aq-strength 0.95 --qcomp 0.70 --psy-rd 1.35 --psy-rdoq 1.20 --ctu 32 --rc-lookahead 60 --deblock -3:-3 --cbqpoffs 0 --crqpoffs 0 --qg-size 8 --rskip 0 --no-rect --no-amp --no-sao --no-open-gop --no-early-skip --no-cutree --tu-intra-depth 4 --tu-inter-depth 4 --range limited --aud --repeat-headers --hrd --hdr-opt --colorprim bt2020 --colormatrix bt2020nc --transfer smpte2084 --master-display "G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,20)" --max-cll=0,0 --chromaloc 2
дают на выходе более замыленный результат + появляется искусственный глубокий бандинг изображения на местах цветовых переходов (таких, как например, небо), который гораздо больше , чем у результатов скриптов c tonemap на основе плагинов HDRTools.dll и DGTonemap.dll.

Но гораздо проще, качественнее, быстрее и удобнее подобную конвертацию выполнить в ffmpeg:
1. Скачиваем ffmpeg и распаковываем архив.
2. Пишем в notepad батник
::start

Set argpath=%~dp0

:::::::::::::::::::::::::::::::::::::::::::::::

::start Convertion from anything to h.264.

:loop_for_all_args
set file_name=%~dpnx1

Start /b /wait %argpath%bin\ffmpeg.exe -i "%file_name%" -map 0:0 -vf zscale=tin=smpte2084:min=bt2020nc:pin=bt2020:rin=tv:t=smpte2084:m=bt2020nc:p=bt2020:r=tv,zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p,scale=1920:-1:flags=lanczos -c:v libx264 -crf 18 -preset veryslow -tune film -refs 4 -bf 8 -g 120 -c:a aac -b:a 640k -movflags +faststart "%file_name%_crf18.mp4"

shift
if not "%~1"=="" goto loop_for_all_args

::END Convertion from anything to h.264.

:::::::::::::::::::::::::::::::::::::::::::::::

pause

::END
Cохраняем его с именем Convert_HDRtoSDR_h264_8bit_Audio_aac_640k_Drag_n_Drop_Loop.txt в папке ffmpeg, меняем расширение на .bat
2. Потом мышкой с любой папки перетягиваем исходник на этот батник, запускается командная строка и процесс кодирования пошёл. В конце получаем в папке с исходником выходной файл с тем же именем, но в формате mp4. Вот вам видео инструкция для домохозяек, как кодировать в ffmpeg, выполненная самым продвинутым мембером с forum.ixbt.com Kisa_AG



Если вам потребуется изменить гамму или насыщенность , то в батнике после format=yuv420p и впишите команду eq=saturation=0.85 или eq=gamma=0.9:saturation=0.9. Если надо выполнить рип в разрешение 1280 х XXX, то вместо scale=1920:-1 задайте scale=1280:-1 и -refs 8. Звук можно тоже копировать, а не перекодировать -c:a copy. Важно также указать номер звуковой дорожки, которую планируем извлекать для перекодирования. Если видеопоток - это всегда -map 0:0, то, например, английская звуковая дорожка -map 0:1 , русская звуковая дорожка, например, -map 0:2. Звуковых дорожек может много, укажите точно, с какой планируете выполнить рип. Разумеется, параметры настройки х264 в батнике можете задать свои, включая кодирование в 10bit , но лучше х265 10bit. Почему так: из-за поддержки устройств, х264 i420 8bit поддерживают многие устройства, х264 i420 10bit поддерживает только ПК, х265 i420 8 или 10bit поддерживают смартфоны и планшеты:
::start

Set argpath=%~dp0

:::::::::::::::::::::::::::::::::::::::::::::::

::start Convertion from anything to h.265.

:loop_for_all_args
set file_name=%~dpnx1

Start /b /wait %argpath%bin\ffmpeg.exe -i "%file_name%" -map 0:0 -vf zscale=tin=smpte2084:min=bt2020nc:pin=bt2020:rin=tv:t=smpte2084:m=bt2020nc:p=bt2020:r=tv,zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p10le,scale=1920:-1:flags=lanczos -c:v libx265 -crf 19 -preset slow -c:a aac -b:a 640k -movflags +faststart "%file_name%_crf19.mp4"

shift
if not "%~1"=="" goto loop_for_all_args

::END Convertion from anything to h.265.

:::::::::::::::::::::::::::::::::::::::::::::::

pause

::END
Никогда не учите свинью танцевать. Это только раздражает свинью, и вы напрасно тратите своё время...
Последнее редактирование: 4 нед. 8 ч. назад от Tempter57.
Гостям запрещено создавать сообщения!
Спасибо сказали: shik09

Конвертирование 10 битных исходников HDR to SDR в 10 и 8 bit 1 год 11 мес. назад #4527

  • ghabana
  • ghabana аватар
  • Не в сети
  • Новичок
  • Сообщений: 1
но требуется замена папки avisynth.dll в папке SYSWOW64
Вы не могли бы уточнить что на что менять?
У меня установлен последний avisynth+ , XviD4PSP_5.10.330.0 в котором заменены папки plugins и filtering из вашего архива за 11.12.2018.
Почему то не работает скрипты. There is no function named 'z-ConvertFormat' и так далее. Не находит почему то функций из скрипта.
Последнее редактирование: 1 год 11 мес. назад от ghabana.
Гостям запрещено создавать сообщения!

Конвертирование 10 битных исходников HDR to SDR в 10 и 8 bit 1 год 11 мес. назад #4528

  • Tempter57
  • Tempter57 аватар
  • Не в сети
  • Эксперт
  • Сообщений: 68
  • Спасибо получено: 93
Скорее всего вы установили далеко несвежую версию XviD4PSP_5.10.330.0 уже после установки AviSynth+MT. Поэтому у вас в папке С:\Windows\SysWOW64 находится avisynth.dll не тот
Никогда не учите свинью танцевать. Это только раздражает свинью, и вы напрасно тратите своё время...
Гостям запрещено создавать сообщения!
Спасибо сказали: admin, ghabana

Конвертирование 10 битных исходников HDR to SDR в 10 и 8 bit 7 мес. 1 нед. назад #4606

  • Tempter57
  • Tempter57 аватар
  • Не в сети
  • Эксперт
  • Сообщений: 68
  • Спасибо получено: 93
Убрал в plugins древнюю версию LSMASHSource.dll и заменил на последнюю. Все скрипты конвертации HDR to SDR пришлось отредактировать.

Архив plugins_filtering (10.01.21)
перечень обновлений [ Нажмите, чтобы развернуть ]
Никогда не учите свинью танцевать. Это только раздражает свинью, и вы напрасно тратите своё время...
Последнее редактирование: 1 нед. 3 дн. назад от Tempter57.
Гостям запрещено создавать сообщения!
Спасибо сказали: admin

Конвертирование 10 битных исходников HDR to SDR в 10 и 8 bit 2 нед. 5 дн. назад #4622

  • shik09
  • shik09 аватар
  • Не в сети
  • Новичок
  • Сообщений: 1
Здравствуйте,а есть скрипт для ffmpeg ,чтоб кодировалось с помощью видеокарты nvidia?
Последнее редактирование: 2 нед. 5 дн. назад от shik09.
Гостям запрещено создавать сообщения!

Конвертирование 10 битных исходников HDR to SDR в 10 и 8 bit 2 нед. 2 дн. назад #4623

  • Tempter57
  • Tempter57 аватар
  • Не в сети
  • Эксперт
  • Сообщений: 68
  • Спасибо получено: 93
rutracker.org/forum/viewtopic.php?p=80607241#80607241
В верхнем батнике ещё дать команду кодировать видео
-c:v hevc_nvenc -qmin 16 -qmax 16 -preset:v slow
вместо
-c:v libx265 -crf 19 -preset slow

Надо только прояснить , где вы намерены проводить коррекцию tonemap : в батнике или скриптом. Если скриптом, то откройте любой скрипт конвертации HDRtoSDR из моего архива, измените для ffmpeg выход 10 битного скрипта
OUTPUT_BIT_DEPTH = 10                      # изменить 10 на 8 при отладке или установить 16 без обрезания верхних битов скриптом

(OUTPUT_BIT_DEPTH == 16) ? Eval("""
Dither_convey_yuv4xxp16_on_yvxx()          # 16-бит
""") : (OUTPUT_BIT_DEPTH == 10) ? Eval("""
Down10(10, stack=false, dither=-3)         # 10-бит
""") : Down10(8)                           #  8-бит
на
Dither_quantize(10, reducerange=true, mode=6)
Dither_Out()

ConvertFromDoubleWidth(10)

сохраните его и тяните мышкой на батник без tonemap, то есть с обычными настройками.
Никогда не учите свинью танцевать. Это только раздражает свинью, и вы напрасно тратите своё время...
Последнее редактирование: 2 нед. 1 день назад от Tempter57.
Гостям запрещено создавать сообщения!
Время создания страницы: 0.138 секунд