Hi there.
I'm having trouble using an AVS script in Hybrid. I essentially want to hardcode subtitles onto a video. I'm using ffms2.dll and VSFilter.dll to do it. This is the script:
Code:
LoadPlugin("C:\Users\User\Desktop\encoding\ffms2.dll")
LoadPlugin("C:\Users\User\Desktop\encoding\VSFilter.dll")
FFVideoSource("C:\Users\User\Desktop\VID.mkv")
TextSub("C:\Users\User\SUBS.ass")
Everytime I import the avs script into Hybrid, I get the message: Didn't find a 'Frame Rate' info node! -> stream will be ignored
I'm then unable to encode anything as when I try to add a job to the queue it says "No video or audio to handle -> nothing to do"
I'm practically a beginner when it comes to AVSynth, so can someone help me here. I've tried to add fps=23.976 and fpsnum into the string but nothing is working...
a. No clue why you do this manually in a script instead of letting Hybrid do it for you.
b. try adding 'return last' at the bottom of your script will probably fix the problem.
Cu Selur
Apologies, I'm not so experienced when it comes to encoding.
b. I added 'return last' at the bottom of the script but got the same error. The script now looks like this:
Code:
LoadPlugin("C:\Users\User\Desktop\encoding\ffms2.dll")
LoadPlugin("C:\Users\User\Desktop\encoding\VSFilter.dll")
FFVideoSource("C:\Users\User\Desktop\VID.mkv")
TextSub("C:\Users\User\SUBS.ass")
return last
I also use notepad to edit the script... unsure if that's effecting it somehow
a. Actually, I'd much rather let Hybrid do this for me. Could you explain how? How do I load VSFilter and use the Textsub command in Hybrid?
Quote: Actually, I'd much rather let Hybrid do this for me. Could you explain how? How do I load VSFilter and use the Textsub command in Hybrid?
You don't have to tell Hybrid this.
You usually would do the following:
- start Hybrid
- set the default paths in case you haven't already done that (Config->Paths) and save those as defaults; not needed but usually a good idea. (Config->Defaults->Save->All->Save selected)
- load your source video (Base->Open File or simply drag&drop it)
- enable subtitle processing (Base->Subtitle)
- select your subtitle file (Subtitle->Import->Subtitle Import->Subtitle file->Load external subtitle)
- configure Hybrid to embed the subtitle you selected ((Subtitle->Import->Subtitle Import->Embed subtitle in frame)
- add the subtitle configuration to the Subtitle-Queue ((Subtitle->Subtitle Queue->add current subtitle stream ...)
- do the rest of the configuration you want in Hybrid
Note that Hybrid will only use Avisynth if:
- 'Filtering->Support' is set to 'Avisynth'
- Hybrid things it's worth to use Avisynth for this. by default it will probably not use Avisynth just to embed some subtitles and simply use ffmpeg on it's own for this. If you want to force Hybrid to use Avisynth (assuming 'Filtering->Support' is set to 'Avisynth') also enable 'Config->Internals->Avisynth->Always use Avisynth'.
----
About your script:
Are using Avisynth+ 32bit, right? If your script used 64bit filters this will not work with Hybrid.
-------------------------
General side note: If you want to see the script Hybrid will use (and 'Filtering->Support' is set to 'Avisynth'), simply click on 'Filtering->Avisynth->Show Avisynth script).
Cu Selur
(17.04.2019, 17:57)Selur Wrote: [ -> ]Are using Avisynth+ 32bit, right? If your script used 64bit filters this will not work with Hybrid.
They are 32-bit filters. I've actually used this script and the filters before with Hybrid before and it worked fine - though the last time was maybe 2017 or 2018.
This is the first time this year I'm using it again. There are practically no changes to it apart from video/sub filenames. I installed the latest version of Hybrid before doing this today.
---
I followed all the instructions in your post above. After sending the job the queue and starting it, it crashes after a couple of percent of encoding the video. I tried encoding without subtitle stream, and it works flawlessly. So the issue is related to the subtitle file?
In the log, I got these exitcodes. Not sure if it's useful: -1073741819 & -1073741819
Thanks for the help.
Only real thing changed is switching between Avisynth MT and Avisynth+.
If you look into your Hybrid /32bit folder there should be two files:
1. AviSynth.dll
and
2.avisynth_mt.dll
if you rename:
1. 'AviSynth.dll' to 'AviSynth_plus.dll'
and
2. 'avisynth_mt.dll' to 'avisynth.dll'
and start Hybrid new, it should use 'Avisynth MT' instead of Avisynth+, may be that helps.
----
Would need a debug output level 9 of the job processing, the numbers don't really help at all.
I'll also send you a link (via pm) to my latest dev version which also fixes a few bugs.
Cu Selur
I renamed the dll files. Opened Hybrid up, and tried the avs file and still same issue :/ Didn't find 'Frame rate info node'
---
Installed your dev version. Unfortunately the same issue. Crashed at 2%
. Is there any information I could send that might help?
---
Update: I decided to completely uninstall Hybrid and install an older version. Although I've been using Hybrid normally for other tasks, I found out that actually the last time I used it to hardcode subtitles into a video was in early 2016! So I went and installed Hybrid_2015.6.28.1. For some reason, the same issue occurred with the AVS file - frame rate info node. But then I decided to do it through Hybrid's interface by following your above instructions, it worked without crashing!
So yeah... it means something happened or changed between the July 2015 release and the latest release that's causing the issue? :S
Quote: Is there any information I could send that might help?
Read the sticky and like I wrote:
Quote:Would need a debug output level 9 of the job processing
Cu Selur
Ps.: Also as a side note regarding your script: have you tried opening it with something like AvsPmod ?
Because when I use:
Code:
LoadCPlugin("I:\Hybrid\32bit\AVISYN~1\ffms2.dll") # since I use the C version
LoadPlugin("I:\Hybrid\32bit\AVISYN~1\VSFilter.dll")
FFVideoSource("F:\TESTCL~1\test.mpg",cachefile="E:\Temp\mpg_a29a3efbead404a5c37c11bf00df599c_853323747_1_0.ffindex") # indexed beforehand to make sure there is no problem with the indexing
TextSub("F:\TESTCL~1\files\SUBTIT~1\APPA7A~1.ASS")
return last
as Input for Hybrid it works like it should,...
Code:
LoadCPlugin("C:\Users\User\Desktop\encoding\ffms2.dll")
LoadPlugin("C:\Users\User\Desktop\encoding\VSFilter.dll")
FFVideoSource("C:\Users\User\Desktop\VID.mkv",cachefile="C:\Users\User\Desktop\VID.mkv.ffindex")
TextSub("C:\Users\User\SUBS.ass")
return last
Downloaded AvsPmod and used your script to create the above script.
Again, got the same 'Frame Rate info node' error
. Still using
Hybrid_2015.6.28.1 atm.
a. do you have one or multiple Avisynth instances system wide installed in your system? (Hybrid does come with it's own portable Avisynth, so other versions might interfere)
b. does AvsPmod open the script you wrote without errors?
c. What happens if you call
Code:
"<PATH TO Hybrid>\32bit\avsInfo.exe" "<PATH to your Avisynth script>"
Cu Selur