|
jezburg68
Стаж: 13 лет 9 месяцев Сообщений: 152
|
jezburg68 ·
12-Июн-12 23:10
(12 лет 6 месяцев назад)
Tempter57
Спасибо,я так и сделал.Часов через 13 узнаю результат.Вы будете удивлены но вот эта дробь 2500000/104271 fps стоит в этой сборке Xvid4PSP-v.5.10.271.0. Жаль лог с MeGUI 2112 не сохранил.Но один и тот же файл сделанный двумя прогами получился идентичным,т.е. с косяками.Пока не понял почему,общего у них только разборка в eac3to и индексация DGAVCIndex.Дальше пути разошлись.Недавно этой же Xvid4PSP-v.5.10.271.0. закончил кодировать другой файл(до этого делал его MeGUI 2112 и х264 из неё).Итог 2 файла кодированные двумя прогами на этот раз получились отлично.На криво стоящие кодеки не похоже,на сбой в программах тоже,на железо тем более.. Вот я и думаю что это вспышка на солнце а я всем мозги компасирую. Хотя,по большому счёту,с этим багом похоже никто не сталкивался.Так что всем большое спасибо.Всё равно разберусь чтобы не повторялась(у меня во всяком случае)
|
|
Tempter57
Стаж: 16 лет 2 месяца Сообщений: 4963
|
Tempter57 ·
13-Июн-12 00:03
(спустя 53 мин.)
jezburg68
Я просто не знаю, какая версия кодека x264_x64.exe стоит в проге. Просто я их себе сам ставлю: беру у JEEB или komisar666, а avs4x264mod.exe и avs2pipe26mod.exe беру у 06_taro
|
|
unreal666
Стаж: 16 лет 11 месяцев Сообщений: 1713
|
unreal666 ·
13-Июн-12 11:39
(спустя 11 часов, ред. 15-Июн-12 07:03)
переделал скрипт для теста avs-файлов перебором потоков AviSynth и x264, а также значений SetMemoryMax:
скрытый текст
Dim FSO, WshShell, WshExec, TextStream, AVSFile, LogFile, StatsFile Dim reLog, Matches, Match, AVSData, regPtrn Dim avsname, avsnamenew, logname0, logname, outname0, outname, statname, x264settings, command0, command Dim avsthreads, avsthread, x264threads, x264thread, setmemorymaxs, setmemorymax, x264path, avs2pipepath, usepipe, input_depth, output_csp Dim line, fps, table, useMsgBox, isAddStat, seek, frames Dim CD, i, j, lenstr, outfolder, logfolder, statfolder ' Задание глобальных объектов/переменных верхнего уровня Set FSO = CreateObject("Scripting.FileSystemObject") Set WshShell = CreateObject("WScript.Shell") Set reLog = New RegExp CD = WshShell.CurrentDirectory ' Текущий каталог ' Массив шаблонов для поиска SetMemoryMax(amount) и SetMTMode(mode, threads) или SetMTMode(mode). regPtrn = Array ("^[\t ]*SetMemoryMax[\t ]*\([\t ]*\d+[\t ]*\)", "^[\t ]*SetMTMode[\t ]*\([\t ]*(\d)[\t ]*(?:,[\t ]*\d+[\t ]*)?\)") ' ###### Задание переменных ###### ' Для одновременного вывода и на экран и в лог-файл нужна утилита tee. Если в путях ее нет, то лог x264 на экране отображаться не будет. ' Утилита tee входит в пакет GNU text utilities (TextUtils/CoreUtils). Скачать можно отсюда - http://gnuwin32.sourceforge.net/packages/coreutils.htm . avsthreads = Array(4,6,8) ' массив кол-ва потоков AviSynth x264threads = Array(6,8,10) ' массив кол-ва потоков x264 setmemorymaxs = Array(1024,1536) ' (SMM) массив значений максимального объема памяти AviSynth avsname = "L:\7\Bones.s07e01.mkv.avs" ' имя avs-файла output_csp = "" ' Выходной формат. Если пусто (""), то, если используется avs2pipe, будет равен входному формату. А если без avs2pipe, то будет по умолчанию для x264 (i420). input_depth = 8 ' Входная глубина цвета для x264. seek = 0 ' 1-ый кадр для кодирования frames = 0 ' Максимальное кол-во кадров для кодирования. Если равно 0, то кодировать все. usepipe = true ' Использовать ли avs2pipemod. Минимум одна из 2-ух переменных (usepipe и usex264) должна быть установлена в true. usex264 = false ' Использовать ли x264. Если он не используется, то avs2pipe будет запущен в режиме бенчмарка. x264settings = "--crf 19 --deblock 0:0 --bframes 8 --b-adapt 2 --ref 15 --qcomp 0.7 --aq-mode 2 --aq-strength 0.9 --merange 32 --me umh --subme 10 --partitions all --trellis 2 --psy-rd 0.90:0.05 --sar 1:1" ' общие настройки x264 avs2pipepath = "D:\Programs\Coding\AviSynth\Utilities\avs2pipe\avs2pipemod.exe" x264path = "D:\Programs\Coding\AviSynth\Tools\x264\x264_64-10bit.exe" logname0 = "" ' Имена/полный_путь для лог-файлов. Конечные логи будут иметь вид "logname_без_расширения-SMM-кол_во_avs_потоков-кол_во_x264_потоков.расширение_logname". ' Если не указан, то будут складироваться в подпапку "out" папки скрипта с именем "avsname_без_расширения-SMM-кол_во_avs_потоков-кол_во_x264_потоков.log" ' Если указано только имя (т.е. без папки), то в качестве папки будет использоваться текущая папка. ' Допустимые расширения: log и txt. outname0 = "" ' Имена выходных видеофайлов. Формируются также, как и logname, только с расширением по умолчанию mp4. Можно указать NUL. ' Допустимые расширения: mp4, mkv и flv. statname = "" ' Имя/полный_путь результирующего файла статистики с fps. Если не указано, то будет в подпапке "out" папки скрипта с именем "results.log". ' Допустимые расширения: log, txt и csv. isAddStat = false ' Добавлять ли данные в файл статистики fps. Если равно false, то файл будет перезаписан. useMsgBox = true ' Выводить ли на экран диалоговое окно с результатами. У MsgBox ограничение на кол-во символов где-то около 1 кбайта. При usex264=false диалоговое окно не выводится в любом случае. ' ###### Собственно составление командной строки ###### ' Регесп для поиска значения fps в лог-файле x264. reLog.Pattern = "^encoded .*, (\d+\.\d+) fps," reLog.Multiline = False : reLog.Global = True : reLog.IgnoreCase = True avsname = CorrectPath(avsname, "avs", CD, "", "") logname0 = CorrectPath(logname, "log txt", FullName2Path(avsname) & "\out", FullName2Name(avsname), "log") statname = CorrectPath(statname, "log txt csv", FullName2Path(avsname) & "\out", "result", "log") If UCase(outname0) = "NUL" Then outname = "NUL" : Else outname0 = CorrectPath(outname, "mp4 mkv flv", FullName2Path(avsname) & "\out", FullName2Name(avsname), "mp4") If output_csp <> "" Then output_csp = " --output_csp " & output_csp & " " If frames < 0 Then frames = 0 avsnamenew = FullName2Path(avsname) & "\new_" & FullName2NameExt(avsname) ' Имя нового тестового avs-файла If usepipe AND usex264 Then x264raw = """" & avs2pipepath & """ -x264raw=" & input_depth & " """ & avsname & """" Set WshExec = WshShell.Exec(x264raw) Set TextStream = WshExec.StdOut x264raw = " " & Trim(TextStream.ReadLine()) & " " command0 = """" & avs2pipepath & """ -rawvideo """ & avsnamenew & """ | """ & x264path & """ " & x264settings & x264raw & output_csp & " --seek " & seek & " --frames " & frames ElseIf NOT usepipe AND usex264 Then command0 = """" & x264path & """ " & x264settings & output_csp & " --seek " & seek & " --frames " & frames & " --input-depth " & input_depth & " """ & avsnamenew & """" ElseIf NOT usex264 AND usepipe Then command0 = """" & avs2pipepath & """ -benchmark -trim=" & seek & "," & (-frames) & " """ & avsnamenew & """" reLog.Pattern = "^benchmark result: .*\[(\d+\.\d+)fps\]" useMsgBox = false Else MsgBox "Минимум одна из 2-ух переменных (usepipe и usex264)" & vbCRLF & "должна быть установлена в true" WScript.Quit End If ' ############################################################ ' ##### Основная обработка ###### ' ############################################################ ' Копируем весь avs-файл в переменную AVSData. Set AVSFile = FSO.OpenTextFile(avsname, 1, false, 0) AVSData = AVSFile.ReadAll() AVSFile.Close() ' <!-- Заголовок таблицы для MsgBox --> table = " |" For Each x264thread in x264threads If x264thread < 10 Then x264thread = "0" & x264thread table = table & " " & x264thread & " |" Next table = table & vbCRLF ' <!-- /Заголовок таблицы для MsgBox --> outfolder = FullName2Path(outname0) logfolder = FullName2Path(logname0) statfolder = FullName2Path(statname) If Not FSO.FolderExists(outfolder) And outname <> "NUL" Then FSO.CreateFolder outfolder If Not FSO.FolderExists(logfolder) Then FSO.CreateFolder logfolder If Not FSO.FolderExists(statfolder) Then FSO.CreateFolder statfolder Set StatsFile = FSO.OpenTextFile(statname, isAddStat*(-6)+2, true, 0) ' <! Подготовка avs-файла --> If Not TestStr(AVSData, regPtrn(0), true, true) Then AVSData = "SetMemoryMax(512)" & vbCRLF & AVSData If Not TestStr(AVSData, regPtrn(1), true, true) Then avsthreads = Array(-1) ' Если SetMTMode не будет найден, то тест будет только с перебором потоков x264. В логе это кол-во avs-потоков будет как -1. ' <! /Подготовка avs-файла --> For Each setmemorymax in setmemorymaxs AVSData = ReplaceStr(AVSData, regPtrn(0), "SetMemoryMax(" & setmemorymax & ")", true, true, true) ' <!-- продолжение таблицы для MsgBox --> table = table & String(7, "-") For Each x264thread in x264threads : table = table & String(9, "-") : Next table = table & vbCRLF table = table & " SMM = " & setmemorymax & " Mb" & vbCRLF table = table & String(7, "-") For Each x264thread in x264threads : table = table & String(9, "-") : Next table = table & vbCRLF ' <!-- /продолжение таблицы для MsgBox --> For Each avsthread in avsthreads Set AVSFile = FSO.CreateTextFile(avsnamenew, true, false) AVSFile.Write(ReplaceStr(AVSData, regPtrn(1), "SetMTMode($1, " & avsthread & ")", true, true, false)) If avsthreads(0) = -1 Then avsthread = -1 AVSFile.Close() table = table & avsthread & " |" If usex264 Then For Each x264thread in x264threads fps = "n/a" If outname <> "NUL" Then outname = """" & outfolder & "\" & FullName2Name(outname0) & "-" & setmemorymax & "-" & avsthread & _ "-" & x264thread & "." & FullName2Ext(outname0) & """" logname = logfolder & "\" & FullName2Name(logname0) & "-" & setmemorymax & "-" & avsthread & "-" & x264thread & "." & FullName2Ext(logname0) istee = "" If WshShell.Run("cmd.exe /c tee --help", 0, true) = 0 Then istee = "&1 | tee " command = "cmd.exe /c """ & "echo.Started SetMemoryMax#" & setmemorymax & " MTThreads#" & avsthread & " x264threads#" & x264thread & " & echo. & " & _ command0 & " --output " & outname & " --threads " & x264thread & " 2>" & istee & """" & logname & """""" WshShell.Run command, 2, true Set LogFile = FSO.OpenTextFile(logname, 1, false, 0) Do Until LogFile.AtEndOfStream line = LogFile.ReadLine() Set Matches = reLog.Execute(line) If Matches.Count > 0 Then fps = Matches(0).SubMatches(0) Exit Do End If Loop LogFile.Close() lenstr = Len(fps) If lenstr = 3 Then table = table & " n/a |" StatsFile.WriteLine("SetMemoryMax#" & setmemorymax & vbTab & "MTThreads#" & avsthread & vbTab & "x264threads#" & x264thread & vbTab & "n/a") ElseIf lenstr = 4 Then table = table & " " & fps & " |" ElseIf lenstr = 5 Then table = table & " " & fps & " |" Else table = table & " " & fps & " |" End If If lenstr >= 4 Then StatsFile.WriteLine("SetMemoryMax#" & setmemorymax & vbTab & "MTThreads#" & avsthread & vbTab & "x264threads#" & x264thread & vbTab & """" & fps & """") Next table = table & vbCRLF Else fps = "n/a" logname = logfolder & "\" & FullName2Name(logname0) & "-" & setmemorymax & "-" & avsthread command = "cmd.exe /c """ & "echo.Started SetMemoryMax#" & setmemorymax & " MTThreads#" & avsthread & " & echo. & " & _ command0 & " > """ & logname & "_benchmark." & FullName2Ext(logname0) & """ 2> """ & logname & "_work." & FullName2Ext(logname0) & """""" WshShell.Run command, 2, true Set LogFile = FSO.OpenTextFile(logname & "_benchmark." & FullName2Ext(logname0), 1, false, 0) Do Until LogFile.AtEndOfStream line = LogFile.ReadLine() Set Matches = reLog.Execute(line) If Matches.Count > 0 Then fps = Matches(0).SubMatches(0) Exit Do End If Loop LogFile.Close() If fps = "n/a" Then StatsFile.WriteLine("SetMemoryMax#" & setmemorymax & vbTab & "MTThreads#" & avsthread & vbTab & "n/a") Else StatsFile.WriteLine("SetMemoryMax#" & setmemorymax & vbTab & "MTThreads#" & avsthread & vbTab & """" & fps & """") End If End If Next Next StatsFile.Close() FSO.DeleteFile avsnamenew If useMsgBox Then MsgBox table WScript.Quit ' Вспомогательные функции ' ======================================================================================= ' ======================================================================================= ' Преобразует полный путь к файлу в путь к папке без конечного "\" function FullName2Path(fullname) dim tmp tmp = InStrRev(fullname, "\") If tmp > 0 Then FullName2Path = Left(fullname, tmp-1) Else FullName2Path = "" End If end function ' Преобразует полный путь к файлу в имя файла с расширением function FullName2NameExt(fullname) dim tmp tmp = InStrRev(fullname, "\") If tmp > 0 Then FullName2NameExt = Mid(fullname, tmp+1) Else FullName2NameExt = fullname End If end function ' Преобразует полный путь к файлу в имя файла без расширения function FullName2Name(fullname) dim nameext, tmp nameext = FullName2NameExt(fullname) tmp = InStrRev(nameext, ".") If tmp > 0 Then FullName2Name = Left(nameext, tmp-1) Else FullName2Name = nameext End If end function ' Преобразует полный путь к файлу в расширение файла function FullName2Ext(fullname) dim nameext, tmp nameext = FullName2NameExt(fullname) tmp = InStrRev(nameext, ".") If tmp > 0 Then FullName2Ext = Mid(nameext, tmp+1) Else FullName2Ext = "" End If end function function ReplaceStr(text, patrn, replstr, ic, ml, gl) dim regEx Set regEx = New RegExp regEx.Pattern = patrn : regEx.Global = gl : regEx.IgnoreCase = ic : regEx.Multiline = ml ReplaceStr = regEx.Replace(text, replstr) end function function TestStr(text, patrn, ic, ml) dim regEx Set regEx = New RegExp regEx.Pattern = patrn : regEx.IgnoreCase = ic : regEx.Multiline = ml TestStr = regEx.Test(text) end function ' Проверка пути на корректность и корректировка или разворачивание, если надо. function CorrectPath(fullname, validext, defpath, defname, defext) dim regEx, path, name, ext, oldpattern, oldglobal, oldic Set regEx = New RegExp oldpattern = regEx.Pattern : oldglobal = regEx.Global : oldic = regEx.IgnoreCase regEx.Pattern = "/|\?|\*|""|<|>|\|" regEx.Global = true : regEx.IgnoreCase = False path = regEx.Replace(FullName2Path(fullname), "") regEx.Pattern = regEx.Pattern & "|:" name = regEx.Replace(FullName2Name(fullname), "") ext = regEx.Replace(FullName2Ext(fullname), "") If path = "" Then If (name & ext) = "" Then path = defpath Else path = CD End If End If If name = "" Then name = defname If ext = "" OR InStr(validext, LCase(ext)) = 0 Then ext = defext regEx.Pattern = oldpattern : regEx.IgnoreCase = oldic : regEx.Global = oldglobal CorrectPath = path & "\" & name & "." & ext end function
коммент:
- чтобы перебирать потоки AviSynth'а, в avs-скрипте должен присутствовать SetMTMode(режим, потоки)
- остальные примечания смотрите в начале скрипта, где идет присвоение переменных.
изменения:
- теперь может работать и без утилиты tee. Просто в консоль ничего выводиться не будет (до этого вылазила ошибка при его отсутствии).
- теперь по умолчанию создаются выходные видеофайлы (до этого шли в NUL) и логи по умолчанию в папке "out" подпапки с avs-скриптом.
- теперь создается файл статистики с fps (до этого только диалоговое окно вылазило).
- добавлен 3-й перебираемый параметр SetMemoryMax. По нормальному должен присутствовать где-нибудь перед SetMTMode. Если SetMTMode есть, но перед ним нет SetMemoryMax, или нет ни SetMTMode ни SetMemoryMax, то SetMemoryMax вставится в начало файла.
- добавлена возможность указания начального кадра и их кол-ва для кодирования.
- мелкие защиты от дурака
PS.
Долбанутый движок форума не захотел пропускать слово StatFilе (пришлось обозвать StatsFile)
PS2 (15.06.2012).
- рефакторинг поиска и замены SeMemoryMax и SetMTMode. Теперь будет производиться поиск всех вхождений SeMemoryMax и 1-го вхождения SetMTMode, находящихся в начале строки (можно и с пробелами в ней) и не являющейся комментарием.
- теперь число потоков, отображающих отсутствие SetMTMode в файле, является "-1", а не 0.
- добавлена возможность тестинга только с помощью avs2pipemod. Выходные данные STDOUT записываются в файлы "logname_без_расширения-SMM-кол_во_avs_потоков_benchmark.расширение_logname", а выходные данные STDERR записываются в файлы "logname_без_расширения-SMM-кол_во_avs_потоков_work.расширение_logname".
- некоторый рефакторинг кода
|
|
Отброс общества
Стаж: 14 лет 6 месяцев Сообщений: 326
|
Отброс общества ·
13-Июн-12 15:24
(спустя 3 часа)
Какой фильтр посоветуете применить для перекодирования 1080i в 720p 50 fps? Разумеется чтобы на выходе получить плавное видео, как и должно быть при 50 fps, ато всё время получается как 25 fps.
Вообще-то фильтры перепробовал все, какие можно выставить в meGUI, но результата нет. Что я делаю не так?
|
|
Tempter57
Стаж: 16 лет 2 месяца Сообщений: 4963
|
Tempter57 ·
13-Июн-12 15:46
(спустя 21 мин., ред. 13-Июн-12 16:01)
Отброс общества
Что у вас за материал исходника? Если интерлейсный материал AVCHD, то какой характер и уровень цветового шума и налижие радужности изображения (характерно при ночной съёмке или съёмке с недостаточной степенью освещения), нужна ли частичная стабилизация изображения , какой боб-деинтерлейс ранее применялся вами?
|
|
Отброс общества
Стаж: 14 лет 6 месяцев Сообщений: 326
|
Отброс общества ·
13-Июн-12 15:57
(спустя 10 мин., ред. 13-Июн-12 16:05)
Tempter57
Исходник TS 1080i. Футбольное видео. На фильмах может еще не так заметно было бы, что перекодировалось явно не с 50 fps, а максимум 25, но на спортивных передачах видно сразу
Для плавной анимации при кодировании 1080i в 720p 50 fps типа разбирающимися людьми мне были рекомендованы такие настройки деинтерлейсинга
А вообще я уже перепробовал все, потому что не первый год экспериментирую с фильтрами, чтобы решить этот вопрос, но пока безуспешно. Я был бы уверен, что это невозможно, если бы собственными глазами не наблюдал рипы с этих видео - именно как мне нужно. Но как?
|
|
Tempter57
Стаж: 16 лет 2 месяца Сообщений: 4963
|
Tempter57 ·
13-Июн-12 16:04
(спустя 7 мин., ред. 13-Июн-12 16:10)
Отброс общества
деинтерлейс скриптом QTGMC 3.32.avsi в таком случае пробовали? Если да, то каким пресетом?
|
|
Отброс общества
Стаж: 14 лет 6 месяцев Сообщений: 326
|
Отброс общества ·
13-Июн-12 16:09
(спустя 4 мин.)
Tempter57
Впервые слышу про QTGMC.avsi. Я так понимаю, он у меня должен быть, если установлен avisynth
|
|
Tempter57
Стаж: 16 лет 2 месяца Сообщений: 4963
|
Tempter57 ·
13-Июн-12 16:20
(спустя 11 мин., ред. 13-Июн-12 16:20)
Отброс общества писал(а):
Я так понимаю, он у меня должен быть, если установлен avisynth
Конечно , нет его там и к нему необходимо иметь кучу ещё плагинов: http://forum.doom9.org/showthread.php?t=156028
причём под AviSynth 2.6 MT пакет у разработчика свой более адаптированный. Пока это наиболее качественный боб-деинтерлейс на векторном анализе оценки движения, но медленный в работе. Более качественного пока ничего нет. Мануал там в комплекте есть, так что успехов.
|
|
Отброс общества
Стаж: 14 лет 6 месяцев Сообщений: 326
|
Отброс общества ·
13-Июн-12 16:39
(спустя 18 мин., ред. 13-Июн-12 16:39)
Tempter57
А этот QTGMC 3.32.avsi нужно куда-то в определенное место поместить?
Так же скачал QTGMC 32-bit Plugins - там куча dll и опять же ни одного exe - то есть надо куда-то это копернуть? И еще там в папке "Source and Documentation" заархивированные плагины - их надо разархивировать?
хы-хыыыыы))) Сделал всё как написано в мануале, и теперь на выходе у меня картинка вверх ногами
Хыхы-ыхы-хы!"!! Бугагагагагага!! А-а-а-а-а-абассака!! Парни, у кого есть возможность посмотреть футбол вверх ногами - попробуйте, так ржачно)))
|
|
Tempter57
Стаж: 16 лет 2 месяца Сообщений: 4963
|
Tempter57 ·
13-Июн-12 17:19
(спустя 40 мин., ред. 13-Июн-12 17:19)
Отброс общества
да уж, смешно, хотелось бы знать: как вы до этого докатились и посмотреть скрипт, а также узнать куда были скопированы все плагины, у парней при вcём желаниии не получится вверх ногами наверно, для этого надо подключить плагин Rotate.dll
|
|
Отброс общества
Стаж: 14 лет 6 месяцев Сообщений: 326
|
Отброс общества ·
13-Июн-12 17:40
(спустя 20 мин.)
Tempter57
Перезапустил meGUI и вверхногами больше нет. dll скопировал куда куда указано в мануале - некоторые в system32, кое-что в папку плагинов ависинт.
Если я правильно понял, далее можно кодировать видео как и до этого, а плагины типа сами разберутся. Так и сделал, плавность как мне показалось стала лучше, чем было до этого. Но опять же на мой взгляд до качества 50 fps не дотягивает
Скрипт
скрытый текст
LoadPlugin("C:\Program Files\K-Lite Codec Pack\Filters\Haali\avss.dll")
dss2("E:\Video\Football\1080 Uncode\1.ts", fps=50.000).AssumeFPS(50,1)
Load_Stdcall_Plugin("E:\D\Prog exe\MeGUI\MeGUI_1911_x86_WithoutInstaller\tools\yadif\yadif.dll")
Yadif(order=1)
crop( 0, 2, -4, 0) LanczosResize(1280,720) # Lanczos (Sharp)
LoadPlugin("E:\D\Prog exe\MeGUI\MeGUI_1911_x86_WithoutInstaller\tools\avisynth_plugin\UnDot.dll")
Undot() # Minimal Noise
|
|
Tempter57
Стаж: 16 лет 2 месяца Сообщений: 4963
|
Tempter57 ·
13-Июн-12 18:01
(спустя 20 мин., ред. 13-Июн-12 18:01)
Отброс общества
Класс, очешуеть можно, ваш скрипт на базе деинтерлейса Yadif притом в варианте 25 fps, сделайте хотя бы Yadif(order=1, mode=1), чтобы получить 50 fps
Скрипт QTGMC разумеется никто и не подключал. Мне жаль даром потраченного на вас времени. Не думал просто, что у вас настолько плохо с багажом знаний по AviSynth и составлению скриптов.
Отброс общества писал(а):
dss2("E:\Video\Football\1080 Uncode\1.ts", fps=50.000).AssumeFPS(50,1)
Эта строка тоже под большим вопросом
|
|
Отброс общества
Стаж: 14 лет 6 месяцев Сообщений: 326
|
Отброс общества ·
13-Июн-12 18:09
(спустя 8 мин., ред. 13-Июн-12 18:09)
Tempter57 писал(а):
mode=1
Я не составляю скрипт вручную, просто выставляю те параметры, которые рекомендуют при таком кодировании.
Вот скрин настроек
Добавил в скрипт mode=1 и видео стало примерно вдвое медленнее, но при этом с тем же временем, сколько одно должно длиться в нормальном темпе.
|
|
Tempter57
Стаж: 16 лет 2 месяца Сообщений: 4963
|
Tempter57 ·
13-Июн-12 18:47
(спустя 38 мин., ред. 13-Июн-12 19:19)
Отброс общества
Установите там сейчас 25 fps, чтобы строка выглядела как
Код:
dss2("E:\Video\Football\1080 Uncode\1.ts", fps=25.000)
Остальное за вас сделает установка
Код:
Yadif(order=1, mode=1)
Yadif с такими параметрами настроек из каждого поля интерполирует полный кадр вам, а полей в каждом кадре 2, отсюда на выходе 2*25=50
Можно в конце скрипта добавить прокрутку AssumeFPS(50,1) или ChangeFps(50), а можете и не добавлять .
|
|
Отброс общества
Стаж: 14 лет 6 месяцев Сообщений: 326
|
Отброс общества ·
13-Июн-12 19:15
(спустя 27 мин.)
Tempter57
Вот!! ВОТ ВОТ ВОТ! Получилось! А-а-а-а-а-а-а!!! Получилось блин!
Спасибо Вам огромное за выдержку, представляю как это было трудно. Столько времени я ищу как же это делать и наконец свершилось.
Благодарю))) Теперь буду качественно рипать 50 fps матчи Евро 2012 для всех!
|
|
Tempter57
Стаж: 16 лет 2 месяца Сообщений: 4963
|
Tempter57 ·
13-Июн-12 19:28
(спустя 12 мин., ред. 13-Июн-12 19:28)
Отброс общества
Для меня это не трудно, а плёвое дело Скинешь мне потом финал: Украина : Россия шутка конечно
|
|
81.2
Стаж: 17 лет Сообщений: 61
|
81.2 ·
13-Июн-12 20:27
(спустя 59 мин.)
Извините пожалуйста, но не кто не сталкивался с проблемой в meGUI, после кодировки (х264) видео производится заторможенно?
Спасибо.
|
|
agz
Стаж: 17 лет 6 месяцев Сообщений: 1444
|
agz ·
13-Июн-12 20:33
(спустя 6 мин., ред. 13-Июн-12 20:33)
Tempter57, есть DVB интерлейсный с Первого канала. При 25fps смотреть невозможно рип с него - изображение дрожит. Кодирую в 50fps - все идеально. На компе это дрожание не видно (LCD монитор), а вот на LCD телевизоре очень сильно. Медиаплеер подключен через HDMI к телевизору, режим стоит 576p.
Ставлю режим 576i - не дрожит. Что это? Боббинг? А почему он включается, если исходник прогрессивный?
|
|
george$t
Стаж: 14 лет 8 месяцев Сообщений: 4305
|
george$t ·
13-Июн-12 20:46
(спустя 12 мин.)
agz
У меня такая же байда - на SD выставляет 50i. А на BD - 25р.
|
|
Tempter57
Стаж: 16 лет 2 месяца Сообщений: 4963
|
Tempter57 ·
13-Июн-12 20:59
(спустя 13 мин., ред. 13-Июн-12 20:59)
agz
Показывайте скрипт или после деинтерлейса, например, TDeInt (order=-1, и т.д.), не надо задавать жёстко order=1, попробовать:
скрытый текст
#DePan.dll
#DePanEstimate.dll
#RemoveGrainSSE2.dll
#RepairSSE2.dll
#mvtools2.dll
#mt_masktools-26.dll
#flash3kyuu_deband.dll
#stab.avs
#ContraSharpening.avs setmtmode(2)
setmemorymax(768) # ===== global motion stabilization stage =====
Stab (range=1, dxmax=2, dymax=2) # можно увеличить до 4 dxmax и dуmax # ===== local motion stabilization/degrain stage =====
source = last
dct=5
preNR = source.blur(1.3)
preNR_super = preNR.MSuper(pel=2, sharp=2, rfilter=2)
source_super = source.MSuper(pel=2, sharp=2, levels=1)
vb2 = MAnalyse(preNR_super, isb=true, truemotion=true, delta=2, blksize=8, overlap=4, dct=dct)
vb1 = MAnalyse(preNR_super, isb=true, truemotion=true, delta=1, blksize=8, overlap=4, dct=dct)
vf1 = MAnalyse(preNR_super,isb=false, truemotion=true, delta=1, blksize=8, overlap=4, dct=dct)
vf2 = MAnalyse(preNR_super,isb=false, truemotion=true, delta=2, blksize=8, overlap=4, dct=dct)
process = source.MDegrain2(source_super,vb1,vf1,vb2,vf2,thSAD=400)
denoiced = mt_merge(process, mt_edge("min/max").RemoveGrain(19), U=3,V=3) # ===== sharpening =====
ContraSharpening(denoiced,source) # DeBanding
f3kdb(sample_mode=2,dynamic_grain=false,keep_tv_range=false,dither_algo=3,y=64,cb=64,cr=64,grainY=64,grainC=64)
|
|
unreal666
Стаж: 16 лет 11 месяцев Сообщений: 1713
|
unreal666 ·
13-Июн-12 21:01
(спустя 1 мин.)
в каком режиме будут работать фильтры, вставленные до SetMTMode(mode, threads) ?
|
|
agz
Стаж: 17 лет 6 месяцев Сообщений: 1444
|
agz ·
13-Июн-12 21:12
(спустя 10 мин., ред. 13-Июн-12 21:12)
Tempter57, использую встроенный nvidia деинтерлейсер, из dgcecnv. Пробовал и tdeint с разными параметрами - тоже самое.
Дрожание на мелких деталях.
|
|
Tempter57
Стаж: 16 лет 2 месяца Сообщений: 4963
|
Tempter57 ·
13-Июн-12 21:16
(спустя 4 мин.)
unreal666 писал(а):
в каком режиме будут работать фильтры, вставленные до SetMTMode(mode, threads) ?
Если вопрос ко мне, то перед загрузкой видео, как обычно прописываем setmtmode(5), а сколько ядер у вас сами ставьте, в данном случае по автомату будут включены все, но что задавать AMD c 6-8 ядрами я без понятия, никогда не было у меня CPU этой фирмы, работаю на Intel
agz писал(а):
Tempter57, использую встроенный nvidia деинтерлейсер, из dgcecnv. Пробовал и tdeint с разными параметрами - тоже самое.
Дрожание на мелких деталях.
Стоп, а у вас часом не дефликер строк (дрожание строк)? если да, то там деинтерлейс TdeIntEDI + DVD_SAT QTGMC
|
|
agz
Стаж: 17 лет 6 месяцев Сообщений: 1444
|
agz ·
13-Июн-12 21:22
(спустя 6 мин., ред. 13-Июн-12 21:22)
Tempter57, а QTGMC справится? Скажем с Preset="fast".
|
|
Tempter57
Стаж: 16 лет 2 месяца Сообщений: 4963
|
Tempter57 ·
13-Июн-12 21:36
(спустя 13 мин.)
agz писал(а):
Tempter57, а QTGMC справится? Скажем с Preset="fast".
Врядли, может только Placebo
|
|
agz
Стаж: 17 лет 6 месяцев Сообщений: 1444
|
agz ·
13-Июн-12 22:02
(спустя 26 мин., ред. 13-Июн-12 22:17)
Tempter57, Placebo проблему не решает. Так и дрожит.
Кодирую то же самое видео в ASP - все ок. Походу проблема с медиаплеером.
Это ресивер спутниковый, на базе Fortis. Такой там вот медиаплеер.
Он так воспроизводит AVC. По видимому поддерживает только интерлейсное видео.
|
|
Tempter57
Стаж: 16 лет 2 месяца Сообщений: 4963
|
Tempter57 ·
13-Июн-12 22:17
(спустя 14 мин.)
agz
я давал пресет, вы его пробовали?
|
|
agz
Стаж: 17 лет 6 месяцев Сообщений: 1444
|
agz ·
13-Июн-12 22:37
(спустя 19 мин.)
Да, не помогло. Это короче апскейлер ресивера так работает.
Убираю ресайз, кодирую иксом в 720x576 (AR 16:11) - все ок, дрожание едва заметно.
А при уменьшении до 720x400 такие вот траблы. Что то там не так. Ибо если я AR 16:11 не указываю - медиаплеер все равно картинку растягивает до 16:9. А если там 4:3 надо? Короче разработчикам отписал давно. Может пофиксят... С воспроизведением ASP никаких проблем нет.
|
|
unreal666
Стаж: 16 лет 11 месяцев Сообщений: 1713
|
unreal666 ·
14-Июн-12 00:54
(спустя 2 часа 16 мин.)
Tempter57 писал(а):
Если вопрос ко мне, то перед загрузкой видео, как обычно прописываем setmtmode(5),
вопрос ко всем
И ты не понял. Я спрашиваю именно про то, в каком режиме будут работать фильтры, если перед ними вообще нет SetMTMode, т.е. он где-то ниже них прописан?
Везде же указывается, что SetMTMode должен 1-ый раз стоять перед всеми фильтрами. Но не указывается, что будет, если он будет не первым.
|
|
|