[не удалять] Обработка и пересжатие видео [архив №5]

Страницы :   Пред.  1, 2, 3, 4, 5, 6 ... 99, 100, 101  След.
Тема закрыта
 

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-ый раз стоять перед всеми фильтрами. Но не указывается, что будет, если он будет не первым.
[Профиль]  [ЛС] 
 
Тема закрыта
Loading...
Error