This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Unable to encode due to lack of "Frame Rate info node"
#18
(04.06.2019, 16:25)Selur Wrote:
Quote:Hybird doesn't support the sup file and it will automatically convert sup to idx/sub
For clarification:

When using Avisynth and embedding .sup file (assuming .Net is installed), Hybrid should create something along the lines of:
LoadCPlugin("I:\Hybrid\32bit\AVISYN~1\ffms2.dll")
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\SupTitle.dll")
SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
# loading source: F:\TestClips&Co\files\test.avi
#  input color sampling YV12
#  input luminance scale tv
FFVideoSource("F:\TESTCL~1\files\test.avi",cachefile="E:\Temp\avi_078c37f69bb356e7b5fa040c71584c40_853323747_1_0.ffindex",fpsnum=25)
# current resolution: 640x352
# filtering
# embedding subtitles
Preroll(video=10, audio=0)
# Loading subtitle: E:\Output\00005.track_4608_lang_und.4a3535dbb7070f889ca5f92f88a54966.sup
SupTitle("E:\Output\00005.track_4608_lang_und.4a3535dbb7070f889ca5f92f88a54966.sup")
PreFetch(8)
return last
When using Vapoursynth and embedding .sup file, Hybrid should create something along the lines of:
# Imports
import vapoursynth as vs
core = vs.get_core()
# Loading Plugins
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/SourceFilter/FFMS2/ffms2k.dll")
# Loading F:\TestClips&Co\files\test.avi using FFMS2K
clip = core.ffms2.Source(source="F:/TESTCL~1/files/test.avi",cachefile="E:/Temp/avi_078c37f69bb356e7b5fa040c71584c40_853323747.ffindex",format=vs.YUV420P8,alpha=False)
# making sure input color matrix is set as unspec
clip = core.resize.Point(clip, matrix_in_s="unspec",range_s="limited")
# making sure frame rate is set to 25/1
clip = core.std.AssumeFPS(clip, fpsnum=25, fpsden=1)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# Loading image based subtitle E:\Output\00005.track_4608_lang_und.4a3535dbb7070f889ca5f92f88a54966.sup using Subtitle
def rgba(r, g, b, a=255):
 if r < 0 or r > 255 or g < 0 or g > 255 or b < 0 or b > 255 or a < 0 or a > 255:
   raise vs.Error("Colours must be in the range [0, 255].")

 return (a << 24) + (r << 16) + (g << 8) + b

unused = 1 << 42
subs = core.sub.ImageFile(clip=clip, file="E:/Output/00005.track_4608_lang_und.4a3535dbb7070f889ca5f92f88a54966.sup", palette=[rgba(0, 0, 0), rgba(255, 255, 255), rgba(0, 0, 0), rgba(0, 0, 0)])
alpha = core.std.PropToClip(subs)
subs = core.resize.Bicubic(subs, width=clip.width, height=clip.height, format=clip.format.id, matrix_s="unspec", matrix_in_s="unspec", range_s="limited")
gray_format = core.register_format(vs.GRAY, clip.format.sample_type, clip.format.bits_per_sample, 0, 0)
alpha = core.resize.Bicubic(alpha, width=clip.width, height=clip.height, format=gray_format.id, range_s="limited")
clip = core.std.MaskedMerge(clip, subs, alpha)
# adjusting output color from: RGB24 to YUV420P8 for x264Model (i420)
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8, matrix_s="unspec", range_s="limited")
# Output
clip.set_output()

When neither Avisynth nor Vapoursynth is available Hybrid converts the video to idx/sub since afaik ffmpeg doesn't support embedding .sup-subtitles.

Quote:Now I don't know how to make it happen again, 'cause everytime I import the AVS file it just says "Didn't find a 'Frame rate' info node! -› stream will be ignored".
Not knowing the script you use, I can't really help.

Cu Selur

I can preview the script of Avisynth only the first time previewing the video. After that, even it displays the .ass subtitle as I expect(.ass file), there will be an error such as "Avisynth preview error: ntent of C:\User\??????\AppData\Local\Temp\tempPreviewAvisynthFile00_07_47_856.avs" all the time and Hybird even shuts itself down sometimes. However, I can still burn the .ass subtitle well with Avisynth. When I import the .sup subtitle, it can't display the subtitle(pictures of .sup file) neither with Avisynth nor with Vapoursynth, so I can only give the script of Vapoursynth below:

# Imports
import vapoursynth as vs
core = vs.get_core()
# Loading Plugins
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll")
# Loading G:\TLOTR3.ts using LWLibavSource
clip = core.lsmas.LWLibavSource(source="G:/TLOTR3.ts", format="YUV420P8", cache=0)
# making sure input color matrix is set as unspec
clip = core.resize.Point(clip, matrix_in_s="unspec",range_s="limited")
# making sure frame rate is set to 24000/1001
clip = core.std.AssumeFPS(clip, fpsnum=24000, fpsden=1001)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
original = clip
# Loading image based subtitle G:\TLOTR.The.Return.of.the.King.2003.Extended.BluRay.1080p.DTSES6.1.x264-CHD.sup using Subtitle
def rgba(r, g, b, a=255):
  if r < 0 or r > 255 or g < 0 or g > 255 or b < 0 or b > 255 or a < 0 or a > 255:
    raise vs.Error("Colours must be in the range [0, 255].")

  return (a << 24) + (r << 16) + (g << 8) + b

unused = 1 << 42
subs = core.sub.ImageFile(clip=clip, file="G:/TLOTR.The.Return.of.the.King.2003.Extended.BluRay.1080p.DTSES6.1.x264-CHD.sup", palette=[rgba(0, 0, 0), rgba(255, 255, 255), rgba(0, 0, 0), rgba(0, 0, 0)])
alpha = core.std.PropToClip(subs)
subs = core.resize.Bicubic(subs, width=clip.width, height=clip.height, format=clip.format.id, matrix_s="unspec", matrix_in_s="unspec", range_s="limited")
gray_format = core.register_format(vs.GRAY, clip.format.sample_type, clip.format.bits_per_sample, 0, 0)
alpha = core.resize.Bicubic(alpha, width=clip.width, height=clip.height, format=gray_format.id, range_s="limited")
clip = core.std.MaskedMerge(clip, subs, alpha)
# adjusting output color from: RGB24 to YUV420P8 for x264Model (i420)
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8, matrix_s="unspec", range_s="limited")
# adjusting for FilterView
if original.format.id != clip.format.id:
 if (original.format.color_family == vs.RGB and clip.format.color_family != vs.RGB):
   original = core.resize.Bicubic(original, format=clip.format.id, matrix_s="709", range_s="limited")
 elif (original.format.color_family == clip.format.color_family):
   original = core.resize.Bicubic(original, format=clip.format.id, range_s="limited")
 else:
   original = core.resize.Bicubic(original, format=clip.format.id, matrix_in_s="709", range_s="limited")
stacked = core.std.StackHorizontal([original,clip])
# Output
stacked.set_output()

Actually, I can't see a text window of Vapoursynth either, so I just copy the text from the .vpy file. The following script is what I used before:

LoadPlugin("D:\BaiduNetdiskDownload\MeGUI_r2905\MeGUI\tools\ffms\ffms2.dll")
FFVideoSource("G:\TLOTR3.ts", fpsnum=24000, fpsden=1001, threads=1, colorspace="YUV420P8")
#deinterlace
#crop
#resize
LoadPlugin("D:\BaiduNetdiskDownload\MeGUI_r2905\MeGUI\tools\avisynth_plugin\FluxSmooth.dll")
FluxSmoothST(7,7) # Medium Noise
LoadPlugin("C:\Program Files\Hybrid\32bit\avisynthPlugins\SupTitle.dll")
SupTitle("G:\TLOTR.The.Return.of.the.King.2003.Extended.BluRay.1080p.DTSES6.1.x264-CHD.sup")
Reply


Messages In This Thread
RE: Unable to encode due to lack of "Frame Rate info node" - by DUGUJACK - 04.06.2019, 19:56

Forum Jump:


Users browsing this thread: 2 Guest(s)