Forever Stranded #35 - Advanced Rocketry Beacons and Gravity Controller
Channel: Duncan Webb
Date: 2017-07-13

In this episode we:
- build a Beacon
- make a pair of Beacon finders
- build a gravity controller
- DERP around with the gravity controller
- figure out how to use the gravity controller.

This video is the my thirty fifth 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-0116.avi.avs")
video2=Import("D:\dxtory\foreverstranded\foreverstranded-0117.avi.avs")
video3=Import("D:\dxtory\foreverstranded\foreverstranded-0118.avi.avs")
video4=Import("D:\dxtory\foreverstranded\foreverstranded-0119.avi.avs")
video = Dissolve(video1, video2, joinduration)
video = TransMarbles(video, video3, joinduration, marbleradius, drop=false)
video = TransMarbles(video, video4, joinduration, marbleradius, drop=false)
MakeVideo(video, "Episode 35: Beacons and Gravity Controller")