Locked

Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Publisher is a person who encodes TASes our players produce, creates torrents and screenshots, and publishes the movie on the main site. There are 2 encodes that are required now:
  • Archive.org 480p stream (8-bit 4:2:0 MP4)
  • YouTube HD stream
The first one is uploaded to Archive.org, HD stream is uploaded to TASVideosChannel on YouTube. Screenshots are picked from the lossless dump and then either saved as PNG and optimized, or saved as JPG. If something does not work out right, use our Wiki: LiveChat to solve all kinds of problems (Discord is preferred). Encoder is a person who only makes encodes and has a permission to upload to TASVideosChannel. Those encodes are then used by a publisher. Some encoders then become publishers. Guidelines exist, to help doing everything correctly. If you don't follow all the flow this post mentions while creating publication files, they will most likely be not used for an actual publication. Otherwise everyone is welcome to participate and help us handle the publication job! This thread is locked and kept for announcements only. To discuss its contents, make a quote of the needed post and reply to it in Thread #12461: Ask a question, get an answer!.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Since huge changes are announced in the News, I'll use this thread to post small updates of the workflow. Tests with rc-lookahead setting showed that it does not give any size profit (if several kilobytes isn't profit for you), while it gives a huge memory load, especially for higher resolutions. In some cases using lower values gave even smaller files. And there is some speed boost for higher resolutions with lower lookahead. So we decided to remove rc-lookahead setting from encoding commands. This way it will be set to default value of 40 which is okay.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Guga
He/Him
Joined: 1/17/2012
Posts: 838
Location: Chile
Looks like x264.nl pretty much won't update anymore, so. Thankfully, I have found a while ago a site that had pretty recent builds of x264: http://komisar.gin.by (please only download the exes from the clear section, and ignore the *_64 builds) Remember to always have your x264 builds updated, sometimes there can be really good improvements about encoding.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Anti-aliasing has been our highest standard for encoding 3D (polygon-based) games for quite some years. It was possible with Dolphin (internally), Mupen64 (via special plugins) and PCSX (via special plugins). BizHawk added mupen+ core, and also pugins that can do antialiasing. There's also a build of PSXjin that has an anti-aliasing plugin embedded. The point of this technique is to dump video at high resolutions, making the plugin recalculate the polygons and improve their look significantly. The video is then downscaled to SD using something like LanczosResize, and for HD it is upscaled to whatever resolution Youtube is fed (if one's monitor doesn't allow dumping at that res right away). My recent tests show that for SD encodes, it's mostly better to still dump at native resolutions! Because otherwise it will look redundantly blurred. But for HD encodes, prior anti-aliasing is still obviously better. So to come up with a guideline, use whatever looks better for SD encodes, and anti-aliasing for HD.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Guga
He/Him
Joined: 1/17/2012
Posts: 838
Location: Chile
Guga wrote:
Looks like x264.nl pretty much won't update anymore, so. Thankfully, I have found a while ago a site that had pretty recent builds of x264: http://komisar.gin.by (please only download the exes from the clear section, and ignore the *_64 builds) Remember to always have your x264 builds updated, sometimes there can be really good improvements about encoding.
Reposting so it can be remembered! 2525 came out, and there are still publications with older revisions, so go on and update. EDIT: If your antivirus says it's a trojan, ignore it. It's a false positive.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
So we're finally moving to 60fps youtube! It's not absolutely standard for browsers, and not all viewers use browsers that have full support for it, so we'll be using some safe strats. Encoders: https://sourceforge.net/p/feos-tas/code/HEAD/tree/trunk/Misc/TASEncodingPackage2.7z?format=raw (test first!) Always check the dump and see how heavily the game relies on alternate frame flickering. If not too much (even if it's there), you can encode strait 60fps HD, YouTube now has a smart frame-drop algorithm to not kill blinking totally for those who can't go 60fps. If it's a game with sprite limit being overcame by the amount of objects on the screen, which causes heavy flickering, or the TASer abused alternate frame movement, use ng_deblink (but without frame drop). It will leave all the motion 60fps, and only blinking objects will become translucent (as they do on TV) for those who can't watch 60fps. It is known that any 50fps footage also requires deblink. Viewers: 60fps HD encodes now can be watched from movie modules and discussion threads (wiki modules will follow soon). To watch them you need Google Chrome, Firefox, or Internet Explorer 11. See details here.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
After this request, and break of automatic youtuber updating, here's what's now required to do when you replace youtube links: - Add a new link to the publication module. - Go to http://tasvideos.org/SystemTVCControl.html, Ctrl+F, paste the Video ID of your youtuber. - Edit its entry, put the publication number as Movie ID, Save. - Find it once again and click Update. The above are now also the usual steps for publishing a movie. - Find the Video ID of the youtuber you've replaced. - Edit it, set Visiblity: Unlisted, Save. - Edit again and set Movie ID: -1, Save. If the video you're replacing is erroneous, it could be marked for deletion in the Special title. But if it's an official youtube encode that's being replaced by the author's encode on his own channel, you don't have to set Movie ID to -1, only unlist. If you set Movie ID to -1 before unlisting, you won't be able to update the actual video on youtube.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
VirtualBoy movies now require special encode steps. 0. Get the filters: - https://sourceforge.net/projects/feos-tas/files/Anaglyph.dll/download - put to avisynth plugins folder - http://www.pantarheon.org/AviSynth3DToolbox/ - zip or installer 1. Get the latest VBjin build: https://sourceforge.net/projects/feos-tas/files/VBjin_r103.7z/download 2. Record AVI for left and right screens separately: View -> Video Display -> Left/Right Only. Save them as R.avi and L.avi. 3. For downloadables, use the following code instead of regular AVISource:
Language: avisynth

left = Greyscale(AVISource("L.avi")).Levels(0, 1, 171, 0, 255) right = Greyscale(AVISource("R.avi")).Levels(0, 1, 171, 0, 255) Anaglyph(left, right, "grey") AudioDub(left)
4. For YouTube HD, you'll need to have 2 planes to use the yt3d filter, each with subtitles and logo. If you're not using bitmap font for subtitles (that allows them to look nice when upscaled), you'll have to encode both planes to HD first, then apply the yt3d, greyscale and levels to both of them on the second pass. Otherwise, make 2 encodes in SD and then use them for the second pass (make sure to disable logo and subs this time). The first pass requires a lossless codec. The second pass would be this:
Language: avisynth

left = Greyscale(AVISource("1.avi")).Levels(0, 1, 171, 0, 255) right = Greyscale(AVISource("2.avi")).Levels(0, 1, 171, 0, 255) yt3d(left, right) AudioDub(left)
5. YT stream also needs this tag: yt3d:enable=true Note: you might want to change the subtitles color to $009D9D9D, so it matches the color scheme provided by the Levels() function. EDIT: Thanks creaothceann. Nope, it breaks the automation. Which can be seen here btw http://pastebin.com/5UpWkBm4
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Spikestuff
They/Them
Editor, Expert player, Publisher (2254)
Joined: 10/12/2011
Posts: 6324
Location: The land down under.
Let's write about when VBjin force dumps in Anaglyph, even though you want to dump one screen only. Also known as The Red Alarm Effect: What you want to do is split side by side. So now you have a Red screen and a Blue screen next to each other, unless you chose Greyscale, which is also fine. Now after you complete the avi dump, make sure you crop 400 twice (Assuming you have separation at 16), so both colours have their own screen. At this point you'd realize, that you can't use the normal levels version which feos has provided (from me). That code only works for pink dumps. For Red screen
Language: avisynth

Levels(0, 1, 124, 0, 255).Levels(0, 1, 254, 0, 255)
For Blue screen
Language: avisynth

Levels(0, 1, 47, 0, 255)
Now those that used Greyscale for dumping use:
Language: avisynth

Levels(0, 1, 255, 0, 157)
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. These colours are pretty neato, and also these.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
For games that run at 30 fps (duplicating every frame), reducing the framerate for youtube is required, due to YouDoot. The script I provide in TAS Encoding Package 2 has a halffps toggle, use it to cut every other frame out of the video. http://tasvideos.org/forum/viewtopic.php?t=18128 Also, we can't let YouPoop do aspect ratio correction for us, since it won't anymore. Update your scripts to include "manual" aspect ratio correction. http://tasvideos.org/forum/viewtopic.php?t=18100
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
I improved the AppendSegment function to optionally resize, if you specify width > 0
Language: avisynth

# Multisegment AVI import function AppendSegment( \ string base, \ int first_val, \ int last_val, \ string format, \ int wide, \ int high \){ AviSegment = base + string(first_val, format) + ".avi" result = wide > 0 \ ? AviSource(AviSegment).LanczosResize(wide,high) \ : AviSource(AviSegment) return (first_val < last_val) \ ? result + AppendSegment(base,first_val+1,last_val,format,wide,high) \ : result }
Examples:
Language: avisynth

AppendSegment("hd_", 0, 5, "%01.0f", 0, 0) # no resizing AppendSegment("hd_", 0, 5, "%01.0f", 320, 240) # resizing
I also updated the avisynth highlighter to work with /* */ comments properly. https://sourceforge.net/projects/feos-tas/files/userDefineLang.xml/download
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
For recent Sega Master System movies, and only in case the TAS syncs on BizHawk 1.11.7 or later (likely), you need to display the overscan for proper aspect correction. To do so, simply check "Display Overscan" on the SMS menu. However, since you're going to have an uneven height (243 lines), you need to add a 244th scanline, with this line (provided by creaothceann):
Language: Avisynth

StackVertical(last, Crop(0, Height-1, 0, 0))
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Clarification about antialiasing, anisotropic filtering and internal resolution. For emulators that support this, the method that looks the best is the following: Set up your GPU to force maximal 3D settings for antialiasing and anisotropic filtering, and dump at native resolution for downloadable encodes and the screenshot, and at HD for Youtube, using whatever internal resolution you can afford: minimal one for HD encodes is 720p, which is then upscaled to something above 1080p, maximal known to be used is 4K. That way you don't have to worry about whether the plugin you're using supports all this or not, and also when dumping at native resolution, you get a better picture than if you downscale from HD or just dump at native res without the goodizers.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Just recently Nach implemented my old request of auto-reporting the time difference for publications that obsolete something. So now, when you pick the movie to be obsoleted from the dropdown list when you're publishing something, in addition to copying the description and movie classes from the obsoleted run, it will also report the time difference in the form of a frames module:
Improved by [module:frames|amount=3522] seconds.
Exceptions are DOS, MSX, GameCube and Wii. DOS and MSX framecounts are artificial, as those systems don't have reliable constant refresh rate and can change it on the fly. The site parses their real time instead and synthesizes the framecount out of that, assuming 60 fps (while most DOS games run at ~70). GCN and Wii framecounts that the site parses are input poll counts, the actual time is determined by the tick count, which isn't part of the usual submission info. So for these 4 platforms, the improvement is reported as plain time difference:
Improved by 1:58.70 minutes.
Do not the leave the automated report as is! 1. Rephrase it to fit into the actual description. 2. Add the intended region (ntsc or pal) as the fps argument:
Improved by [module:frames|amount=3522|fps=ntsc] seconds.
That will make the site use the framerate from the database for the platform the movie belongs to.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
I moved TASEncodingPackage to github some time ago, and per Fog's suggestion, I switched to this direct zip link, that will always have all the latest files: https://github.com/vadosnaprimer/TASEncodingPackage/archive/master.zip Also note that it's not TEP2 anymore, because freesub started working for me again, so I switched back to it.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Arcade games aspect ratio Every game FinalBurnAlpha emulates is supposed to be displayed on a regular CRT TV: - 4:3 for horizontally aligned games - 3:4 for vertically aligned games For MAME, the latest release of the -rr branch displays the intended aspect ratio in the console window, considering all existing factors (screen orientation, amount of screens, CRT vs. LCD, etc.). Just use that in your encode. To set custom aspect ratio other than 4:3, edit it in .avs (waspect and haspect variables) and .bat (SAR_w and SAR_h).
Encoding script got some updates, and x264 builds were updated: https://github.com/vadosnaprimer/TASEncodingPackage/commits/master
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
So a couple months ago we moved to x64 encoding tools. I even stopped updating the x86 version. Here's the link to the package: https://github.com/TASVideos/TASEncodingPackage/archive/x64.zip Thread #19197: x264 - x64 versus x86 It's also hosted in the main tasvideos organization now.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
We finally sorted out how to do the best aspect ratio correction for youtube. Since now, we are upscaling directly to 2160p (4K) with PointResize(), setting the proper width right away, instead of resizing in 2 passes: 1 for scaling and 1 for ARC. Also the subsampling method for HD has changed from point to lanczos. If point is used, the midcolor artifacts are much more obvious on color edges. With lanczos they are way smoother. The updated package is here: https://github.com/TASVideos/TASEncodingPackage/archive/x64.zip
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
For PAL PS1 TASes, we need to dump with Alternate Sync checked. Otherwise, this will be the outcome. Note how it's severely off-pitch at the start. For reference, this is what it's supposed to sound like (Alternate Sync checked).
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
General rules on the player entries http://tasvideos.org/PublisherGuidelines.html#GeneralRulesOnTheEntries We're currently in the process of renaming all player entries to meet this ruling. It's a lot of work, because no consistency was applied ever, and there's a ton of entries. Publishers, always follow these rules, don't let it become a bigger mess!
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
During the last 3 months TAS Encoding Package got some huge updates and fixes. global.bat
  • The batch can be run from command line, accepting the arguments that it lists when you call it without them.
  • The batch provides a way to set any aspect ratio before encoding.
  • The batch prints you help if you type /?
  • The batch's window caption reports what operation it is doing, and when everything is done, it stays open and says ALL DONE
Subtitles
  • I tried insanely hard to make vertical positioning between all encodes indentical, regardless of the aspect ratio applied.
  • Subtitles now try to resize the font if aspect ratio applied is too heavy. This is achieved by using ng_bighalo at resolutions lower than HD. Tweak bighaloCutoff to force it at even lower resolutions. Bitmap fonts that are normally used can't be resized like that.
Extra HQ encodes
  • The batch allows to do fine-tuned HQ encodes that are upscaled by a desired factor. You can specify several factors in a row, and it will encode with all of them in one go. The factor you chose is in the end appended to the encode filename.
  • You can now tell encode.avs script to downscale some footage that was captured at higher resolutions. It's needed when you want to make an HQ encode of some 3D game that you captured at HD. You set hq_hiResSrc to true, set hq_baseWidth and hq_baseHeight to the native 1x res, and it downscales the HD footage to the resulting res. Pixelated 2D doesn't need that setup.
  • Audio settings were tweaked accordingly.
For the full list of changes, see https://github.com/TASVideos/TASEncodingPackage/commits/x64
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
I forgot to explain the usage of New multisegment import. The main thing with it is that for HD, it doesn't rescale all the segments to the SD gameplay res before going HD. It upscales each segment separately straight to HD. This includes PSX BIOS screens, SNES hires mode, any other cutscenes that have resolution higher than that of main gameplay. No need for special hacks anymore. To enable multisegment import, you set ms to true. For it to work you need your emulator to dump you avi segments with numeric indexes appended at the end of the filename. You pick the segment that presents main gameplay for the primary avisource, just don't call the file "movie.avi", let it keep its number. If it's a segment #5, your command will become AviSource("movie_5.avi") or something like that. Assign proper values to your ms_ variables.
Language: avisynth

ms = true # enable multisegment import ms_base = "movie_" # common string for all segment names ms_start = 0 # number of the first segment ms_end = 13 # number of the last segment ms_format = "%1.0f" # string format: http://avisynth.nl/index.php/Internal_functions#String
All the parameters of your primary segment will be assigned to all the segments it will import, and when the primary segment goes HD, they will automatically go HD as well. If the very first segment doesn't have a number attached to it, attach manually the number that should fit if you look at the numbered files and use common sense. Unfortunately, you can't import more than some 50+ segments within a single script. If you have that many that it refuses to import them all, encode in parts and then splice them together. I won't be explaining it here, because you shouldn't attempt that if you don't know that workflow already.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
I moved the scripts to 3-entry subtitles. Each entry is 2 lines now, it should help positioning the subs so they don't cover anything important. There's also subXoffs now. It allows to move subtitles away from internal game borders and overscan area.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Post subject: nice job feos, you've never done this
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Updating obsolete movies on TVC If you're publishing a movie that obsoletes some other, find the obsoleted movie's ID on Wiki: SystemTVCControl and hit Update on it. If you don't have the privs for that, ask a publisher (or someone else who has the tvc_access privilege). Not needed anymore.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Updated the winXP package (linked in the OP as well now): https://github.com/TASVideos/TASEncodingPackage/archive/x86.zip
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.

Locked