Forever Stranded #34 - Advanced Rocketry Railgun Tutorial
Channel: Duncan Webb
Date: 10/07/2017

In this episode we build a pair of Railguns and send some items between them. First we test them on Earth and then take one to the moon. We also how the terraforming is progressing.

This video is the my thirty fourth episode of Forever Stranded, a series of the Mod Pack by GWSheridan. Surviving in this pack is quite a challenge.

Music by Daria Shakhova is available at http://freemusicarchive.org/music/The_Owl/Fairy_Forest/the_owl_-_owls_secret

I'm using Avisynth and MeGUI to prepare the video for youtube and recording with Dxtory and Lagarith video codec for recording.

All the clips are wrapped with an avs script that has this (Python) template:

source = "${source}"
LoadPlugin("C:\\Program Files (x86)\\MeGUI\\tools\\ffms\\ffms2.dll")
V = FFVideoSource(source, fpsnum=30, fpsden=1, threads=1).Lanczos4Resize(1280, 720)
A1 = FFAudioSource(source, track=1).Normalize(volume=1.0, show=false)
A2 = FFAudioSource(source, track=2).Normalize(volume=1.0, show=false)
commentary = MonoToStereo(A1, A1).AmplifyDB(1.5)
audio = MixAudio(commentary, A2, 0.9, 0.1)
AudioDub(V, audio)
return last

An avs script that is common to all episodes is:

LoadPlugin("C:\Program Files (x86)\MeGUI\tools\avisynth_plugin\NicAudio.dll")

global s2 = "Until next time..."
global pngfile = "D:\dxtory\foreverstranded\ForeverStranded.png"
global endpngfile = "D:\dxtory\foreverstranded\ForeverStrandedShip.png"
global musicfile = "D:\dxtory\The_Owl_-_02_-_owls_secret.mp3"

function MakeVideo(clip c, string title, int "trim_in", int "trim_out")
{
    sx = 460
    sx = 70
    sy = 574
    sy = 460
    font="Copasetic NF"
    font="Gin Rai Italic"
    font_size=45
    text_color = $d6d6c8 #light gray
    halo_color = $ecb03c #light orange
    halo_color = $df8519 #dark orange
    fadein_frames = 0
    fadeout_frames = 90
    align = 5
    title_frames = 150
    
    pngclip = ImageSource(pngfile, pixel_type="RGB32", 0, 239).Lanczos4Resize(1280, 720)
    intro = Subtitle(pngclip, title, sx, sy, font=font, size=font_size, text_color=text_color, halo_color=halo_color, lsp=60)
    endpngclip = ImageSource(endpngfile, pixel_type="RGB32", fps=30, 0, 599).Lanczos4Resize(1280, 720).FadeIn(fadein_frames)
    music = NicMPG123Source(musicfile).AudioTrim(0, 20).FadeOut(150)

    ending = AudioDub(endpngclip, music)

    trim_in = Default(trim_in, 0)
    trim_out = Default(trim_out, c.FrameCount())
    base = c.Trim(trim_in, trim_out)

    Overlay(base, pngclip, mask=pngclip.ShowAlpha().FadeOut(fadein_frames), mode="blend", opacity=0.9)
    Overlay(last, intro, mask=intro.ShowAlpha().FadeOut(fadein_frames), 0, 0) 

    FadeOut(fadeout_frames)
    Subtitle(s2, first_frame=FrameCount-title_frames-1, last_frame=FrameCount-1, size=font_size, align=align, text_color=text_color, halo_color=halo_color, lsp=60)

    last++ending
    
    ConvertToYV12(interlaced=false)
    tweak(bright=10)

    return last
}

BlankClip(width=1280, height=720)

The clips are joined with this script:
Import("D:\dxtory\foreverstranded\common.avs")
video1=Import("D:\dxtory\foreverstranded\foreverstranded-0112.avi.avs")
video2=Import("D:\dxtory\foreverstranded\foreverstranded-0113.avi.avs")
video3=Import("D:\dxtory\foreverstranded\foreverstranded-0114.avi.avs")
video4=Import("D:\dxtory\foreverstranded\foreverstranded-0115.avi.avs")
video = TransMarbles(video1, video2, joinduration, marbleradius, drop=false)
video = TransMarbles(video, video3, joinduration, marbleradius, drop=false)
video = Dissolve(video, video4, joinduration)
MakeVideo(video, "Episode 34: Railgun")