Forever Stranded #30 - Collectors Quest and Terraforming Prep
Channel: Duncan Webb
Date: 29/06/2017

In this episode we:
Submit cobblestone quest manually
Submit diamond blocks quest
Submit Lapis Lazuli quest
Look at the processing of sand for the sand stone quest.
Prepare some tanks - The wrong ones as it turns out.
Prepare another satellite chip 

This video is the my thirtieth 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-0098.avi.avs")
video2=Import("D:\dxtory\foreverstranded\foreverstranded-0099.avi.avs")
video3=Import("D:\dxtory\foreverstranded\foreverstranded-0100.avi.avs")
video = Dissolve(video1, video2, joinduration)
video = TransMarbles(video, video3, joinduration, marbleradius, drop=false)

MakeVideo(video, "Episode 30: Collect Quest and Terraforming Prep")