fsvgm777
She/Her
Senior Publisher, Player (226)
Joined: 5/28/2009
Posts: 1213
Location: Luxembourg
Hello everyone, it's your resident senior publisher, fsvgm777. As some of you may know, there's special steps that are required for Virtual Boy (that post only applies to VBjin, the following only applies to BizHawk, but can be accomodated for VBjin using the info from that post); however, parts of it (in particular the Anaglyph function in that post) only apply to the 32-bit version of the package, as the Anaglyph plugin for AviSynth is 32-bit only. However, the Pantarheon 3D AviSynth toolbox also comes with an Anaglyph function, which conveniently already is red/cyan. Using this version of the package as a base, you need to add the following line (assuming you put Pantarheon3D in the programs folder):
Language: AviSynth

Import(ScriptDir() + "programs/Pantarheon3D.avsi")
As well as edit lines 142 and from 221 to 225 to read:
Language: AviSynth

vb ? hd ? 0 : Anaglyph(left, right).AudioDub(left) : 0
and
Language: AviSynth

last = hdvb ? logo.LanczosResize(resized.width / 2, resized.height, taps=2) : logo ++ resized # Virtual Boy left = hdvb ? last ++ left.PointResize(384*12, 224*12).LanczosResize(last.width, last.height, taps=2) : 0 right = hdvb ? last ++ right.PointResize(384*12, 224*12).LanczosResize(last.width, last.height, taps=2) : 0
respectively. Regarding YouTube, they've changed the ordering of the sides to be actually correct. To accomodate for that, the ordering needs to be reversed in the script, ironically enough. Just edit line 371 to read the following:
Language: AviSynth

hdvb ? yt3d(right, left).AudioDub(left) : 0
By the way, you need to make sure to apply a stereo mode when muxing for the YouTube encode. This can be done either via ffmpeg or mkvmerge, both should produce the same or very similar results. For ffmpeg (note, this is an example, not accomodating for where it's located, though be aware that this will currently not work with the ffmpeg executable that's in the package):
ffmpeg -i ".\output\encode_youtube.mkv" -c copy -metadata:s:v:0 stereo_mode=left_right ".\output\encode_vb_youtube.mkv
For mkvmerge:
".\programs\mkvmerge.exe" -o ".\output\encode_vb_youtube.mkv" --compression -1:none --stereo-mode 0:1 --aspect-ratio 0:1852/2160 ".\temp\video_youtube.mkv" ".\temp\audio_youtube.ogg"
The aspect ratio parameter in the mkvmerge command is actually important, because otherwise, the resulting output on YouTube will be overly squished. What I've written above are the recommended settings, based on my own testing. However, I'd like other people to experiment with it and make their own edits (like using straight point instead of Lanczos downscale for YT, for instance, or squishing it in AviSynth to 1852x2160 and not applying an AR flag in mkvmerge). C'est tout~
Steam Community page - Bluesky profile Oh, I'm just a concerned observer.
Spikestuff
They/Them
Editor, Publisher, Expert player (2633)
Joined: 10/12/2011
Posts: 6437
Location: The land down under.
fsvgm777 wrote:
Regarding YouTube, they've changed the ordering of the sides to be actually correct. To accomodate for that, the ordering needs to be reversed in the script, ironically enough. Just edit line 371 to read the following:
Language: AviSynth

hdvb ? yt3d(right, left).AudioDub(left) : 0
Language: AviSynth

hdvb ? LeftRight3DReduced(left, right).AudioDub(left) : 0
Does the same thing. pantarheon compensated for YouTube's bullshit with yt3d. But in a modern day scenario all that can pretty much be removed, bar the levels.
Language: AviSynth

AVISource("scripttest.avi").Levels(0, 1, 255, 0, 167) PointResize(last.width*6,last.height*12)
On the topic of levels, if you noticed that I already compensated for it, but for those that don't know. The next BizHawk release (2.9) you need to change Levels(0, 1, 255, 0, 157) to Levels(0, 1, 255, 0, 167). As for logos it's just the same thing, just halve the width before doing StackHorizontal. Alternatively, cause I just remembered subtitles exists, lmao. Change:
Language: AviSynth

hdvb ? yt3d(right, left).AudioDub(left) : 0
To:
Language: AviSynth

hdvb ? StackHorizontal(left,right).LanczosResize(4608,2688, taps=2).AudioDub(left) : 0
Edit: Now how about we remove both requirements altogether?
Language: AviSynth

vb ? hd ? 0 : Anaglyph(left, right).AudioDub(left) : 0
to:
Language: AviSynth

vb ? hd ? 0 : MergeRGB(left, right, right).AudioDub(left) : 0
As a note. MergeRGB(right, left, right) - Green/Magenta MergeRGB(left, left, right) - Yellow/Blue
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
fsvgm777
She/Her
Senior Publisher, Player (226)
Joined: 5/28/2009
Posts: 1213
Location: Luxembourg
fsvgm777 wrote:
By the way, you need to make sure to apply a stereo mode when muxing for the YouTube encode. This can be done either via ffmpeg or mkvmerge, both should produce the same or very similar results. For ffmpeg (note, this is an example, not accomodating for where it's located, though be aware that this will currently not work with the ffmpeg executable that's in the package):
ffmpeg -i ".\output\encode_youtube.mkv" -c copy -metadata:s:v:0 stereo_mode=left_right ".\output\encode_vb_youtube.mkv
For mkvmerge:
".\programs\mkvmerge.exe" -o ".\output\encode_vb_youtube.mkv" --compression -1:none --stereo-mode 0:1 --aspect-ratio 0:1852/2160 ".\temp\video_youtube.mkv" ".\temp\audio_youtube.ogg"
YouTube has since broken compatibility for either method, despite this page saying otherwise for the FFmpeg method. However, said page mentions another way of getting stereoscopic metadata, namely via x264. Note that this page implies it only works on MP4 or MOV; however, it works just fine on MKV (I have tested that myself), and ffmpeg isn't needed. All that's needed is to add the following to the x264 line.
--frame-packing 3
This tells x264 it's a stereoscopic video, specifically side-by-side (L is on the left, R is on the right). The downloadable encode remains unchanged.
Steam Community page - Bluesky profile Oh, I'm just a concerned observer.