Logan9778
29th March 2017, 07:44
Hey guys, as above, I'm wondering if I can use 2 computers to do encoding. I want to use one for the frame server and Avisynth functions, and then pass the output to Simple X264 on another computer. I've looked around the internet, but I can't find any info on this. Any of you Guru's know if this is possible? :thanks:
Midzuki
29th March 2017, 09:16
Have you ever tried this one?
http://avisynth.nl/index.php/TCPServer
mariush
29th March 2017, 12:12
x264 has --stitchable and --frames and --seek so with these three you could encode two segments to .264 files and then just concatenate the two 264 files (or however many segments you create) and you'll get a working encode. (you'll encode the audio separately and then combine video and audio with mkvtoolnix or a mp4 muxer)
There may be some issues if the video must follow some rules in order to be valid bluray stream or something like that (thinking of --vbv-maxrate <integer> and --vbv-bufsize <integer> for example) , because at the place where the two segments are joined, the instant values for that second where the videos are combined may be higher than the limits set.
Some software could for example do a encode from 0s to 1/2 x time -5s , an encode for 1/2x time +5s .. time and then a separate encode for those 10s +/- 1s guaranteeing all constraints are met.
StainlessS
29th March 2017, 12:27
Below intended for use where process multiple part separately on same machine, but could be used on several machines.
Do not use with AVSPMod, anything else eg Windows Media Player 2, OK.
EDIT: Script removed, SEE Later script
Req RT_Stats and GScript.
EDIT: Could use in AvsPMod if avoiding the RT_FSelOpen() stuff, ie replace stuff in PURPLE with
FILE_LIST="D:\SourceScript.AVS"
AvsPMod does weird things if using file selector via RT_FSelOpen().
EDIT: For use on 64 bit AVS+ [EDIT: updated avs v2.58 or v2.6 with Gscript, or x86/x64 Avs+]
MakeMultiPartScripts.avs
# MakeMultiPartScripts.avs
#######
PARTS=4 # Edit as appropriate
#######
myName="MakeMultiPartScripts: "
Assert(PARTS>1,RT_String("MakeMultiPartScripts.avs: PARTS MUST be greater than 1 (%d)",PARTS))
IsAvsPlus=(FindStr(VersionString, "AviSynth+")>0 || FindStr(VersionString, " Neo")>0)
HasGScript=RT_FunctionExist("GScript")
Assert(IsAvsPlus || HasGScript,RT_String("%sNeed either GScript or AVS+",myName))
#######
FSEL_TITLE="Select AVS files"
FSEL_DIR="."
FSEL_FILT="AVS files|*.AVS"
FSEL_MULTI=True
FILE_LIST = RT_FSelOpen(title=FSEL_TITLE,dir=FSEL_DIR,filt=FSEL_FILT,multi=FSEL_MULTI)
Assert(!(FILE_LIST.IsInt && FILE_LIST==0),RT_String("%sUser Cancelled in FileSelector - No action taken",myName))
Assert(FILE_LIST.IsString,RT_String("%sRT_FSelOpen Error=%s",myName,String(FILE_LIST)))
SCRIPT_TMPT = """
PART = %d
PARTS = %d
Import("%s")
FC = FrameCount
Start = ((part==0 ) ? -1 : part * (FC-1) / PARTS) + 1
End = ((part==PARTS-1) ? FC-1 : (part+1) * (FC-1) / PARTS)
End = (End == Start) ? -1 : End
Trim(Start,End)
# Subtitle("Trim("+String(Start)+","+String(End)+")")
Return Last
"""
GS="""
NLINES = RT_TxtQueryLines(FILE_LIST)
for(i=0,NLINES-1) {
PARTSNAME = RT_TxtGetLine(FILE_LIST,i)
for(part=0,PARTS-1) {
PartName = RT_String("%s_PART_%d.avs",PARTSNAME,part+1)
ScriptInst=RT_String(SCRIPT_TMPT,part,PARTS,PARTSNAME)
RT_WriteFile(PartName,"%s",ScriptInst)
}
}
"""
HasGScript ? GScript(GS) : Eval(GS) # Use GSCript if installed (loaded plugs override builtin)
MessageClip(RT_String("ALL DONE, Processed %d avs files of %d parts each",NLINES,PARTS))
EDITED:
Atak_Snajpera
29th March 2017, 15:18
How about ten?
https://forum.doom9.org/showthread.php?t=127611
Logan9778
29th March 2017, 17:14
WOW! Thank you guys! I will look over all of this. :p
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.