Publisher
Joined: 4/23/2009
Posts: 1283
feos wrote:
I edited my post regarding plugins. And as I said, I didn't bother pondering, so I didn't recall that nes is progressive scan.
Ah okay, now I get it. I just got the impression from your "told ya" that you knew about it but just didn't bother to speak up =p. Had no idea you forgot too, lol. As for the plugin, so far the best deinterlacing results I get is from QTGMC on real interlace material (I don't count telecine clips to be real interlace). Do you have one that you like better?
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
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.
Player (169)
Joined: 7/1/2016
Posts: 263
Feos, what will be your method of upscaling for this? PointResize only?
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Let me check... [Some time later] Here's my OLD script back from when youtube couldn't do 60fps.
Language: avisynth

DirectShowSource("VTS_01_1.mpg") AssumeTFF() SeparateFields() PointResize(last.width/2, last.height) Crop(14,8,-26,-8) clip1=SelectOdd.Crop(0,0,0,last.height).AddBorders(0,0,0,0) clip2=SelectEven.Crop(0,0,0,last.height-1).AddBorders(0,1,0,0) Interleave(clip1,clip2) ConvertToRGB32 ng_deblink(0.5) SelectOdd PointResize(950,720) return last
I wouldn't do cropping these days, because overscan is part of the output that's then 4:3'd on a TV or a tuner. Also this script downscales the tuner/dvd recorder output to 1x, so it probably loses some color info. A better approach would be upscaling the height by 2 instead, and then both sides in the end.
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.
Publisher
Joined: 4/23/2009
Posts: 1283
feos wrote:
Don't ask.
While you sure did a ton of work, that wasn't a deinterlacer for interlaced material >_>.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
The answer is, I don't care about your nifty filters. I love authentic NTCS/PAL artifacts.
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.
Publisher
Joined: 4/23/2009
Posts: 1283
feos wrote:
The answer is, I don't care about your nifty filters. I love authentic NTCS/PAL artifacts.
To each their own =D. I personally find interlace artifacts on progressive screens to be terrible. Course interlace on interlace screens is fine.
Dimon12321
He/Him
Active player (478)
Joined: 4/5/2014
Posts: 1120
Location: Ukraine
Are there any differences in encoding Doom in 50 fps and 60 fps for YT? YT supports 50 fps and Doom outputs 35 fps maximum, so theoretically there should be no differences, but I'd like to read your opinions. Maybe there are some lost frames on practice?
TASing is like making a film: only the best takes are shown in the final movie.
Publisher
Joined: 4/23/2009
Posts: 1283
Dimon12321 wrote:
Are there any differences in encoding Doom in 50 fps and 60 fps for YT? YT supports 50 fps and Doom outputs 35 fps maximum, so theoretically there should be no differences, but I'd like to read your opinions. Maybe there are some lost frames on practice?
You know, it had not crossed my mind that 50 FPS would work too. Honestly, you would have to compare how often the frames are "off" by in 50 vs 60 to figure out which is better. I'll figure that out in a bit. Edit: In theory, there is a difference. The timing for each one is different. 50 FPS may sync more than 60 FPS. Who knows until someone figures it out. In general though, the more FPS, the harder it is for a human to tell. I mean 1000 FPS is perfect sync =p.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Is it known for sure that YT can't output 35fps?
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.
Masterjun
He/Him
Site Developer, Skilled player (1968)
Joined: 10/12/2010
Posts: 1179
Location: Germany
For now, yes. See this post for framerate tests. 40 fps and lower get reduced to 30 fps. 41-60 fps work fine.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
YT Y U SO HACKY BASTARDS What were then thinking when disabling 31-40 specifically?!!
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.
Masterjun
He/Him
Site Developer, Skilled player (1968)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Dimon12321 wrote:
Are there any differences in encoding Doom in 50 fps and 60 fps for YT?
Aktan wrote:
In theory, there is a difference. The timing for each one is different. 50 FPS may sync more than 60 FPS. Who knows until someone figures it out.
Aktan and I did some crazy calculations and then I created a script to test this. Here are the results in a sorted list. (I tested frame rates from 1 to 105 FPS, adjusting to 35 FPS) Left numbers are frame rates, and right numbers are average amount of seconds of errors, per second (so basically: average error; multiply by 100 and you have cool percentages). Clearly 35, 70 and 105 FPS score highest, since they don't have any error. Result: With YouTube (since 35 FPS is unavailable), the best frame rate we can reach is 60 FPS.
Aktan wrote:
In general though, the more FPS, the harder it is for a human to tell. I mean 1000 FPS is perfect sync =p.
Well a human, for sure, but mathematically speaking, the average error per second would be ~0.0085714285714286 seconds. :D
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Dimon12321
He/Him
Active player (478)
Joined: 4/5/2014
Posts: 1120
Location: Ukraine
So, updating a 70/105-fps video on YT will have the same playback as a 60-fps video? And yeah, your stuff is crazy))
TASing is like making a film: only the best takes are shown in the final movie.
Publisher
Joined: 4/23/2009
Posts: 1283
Dimon12321 wrote:
So, updating a 70/105-fps video on YT will have the same playback as a 60-fps video? And yeah, your stuff is crazy))
No, 70/105 FPS video would have no wrong timing at all. It is better than 60 FPS. But since YT doesn't support 70 or 105, we are stuck with 60 FPS.
Dimon12321
He/Him
Active player (478)
Joined: 4/5/2014
Posts: 1120
Location: Ukraine
No-no, I mean, is it better to upload 70/105-fps video (it's gonna be compressed by YT to 60-fps) rather than to upload 60-fps video directly? Or it's just a waste of time on higher quality rendering?
TASing is like making a film: only the best takes are shown in the final movie.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
If YT just throws away the extra frames then they can also be removed before uploading; saves a bit on the file size.
Publisher
Joined: 4/23/2009
Posts: 1283
Dimon12321 wrote:
No-no, I mean, is it better to upload 70/105-fps video (it's gonna be compressed by YT to 60-fps) rather than to upload 60-fps video directly? Or it's just a waste of time on higher quality rendering?
Probably a waste of time.
Editor, Player (67)
Joined: 6/22/2005
Posts: 1041
Now for a real waste of time: I've been thinking about getting back into encoding and chose [17] NES Super C "1 player" by Genisto in 13:18.35 as a test (it's on at least one of these lists). I'm using TASEncodingPackage. The YouTube audio encoding step fails with this error:
avs2pipemod[info]: writing 849.817 seconds of 44100 Hz, 1 channel audio.
Error: Not found fmt or data chunk (RIFF WAVE header error).avs2pipemod[info]: total elapsed time is 0.016 sec.
avs2pipemod[error]: only wrote 1012 of 37476915 samples.
A test dump of the same game from BizHawk doesn't cause errors. The info.txt generated by avs2pipemod -info has
a:sample_rate    44100
a:format         integer
a:bit_depth      16
a:channels       2
a:samples        846795
a:duration[sec]  19.202
for the BizHawk dump and
a:sample_rate    44100
a:format         float
a:bit_depth      32
a:channels       1
a:samples        37476915
a:duration[sec]  849.817
for the Famtasia dump. The audio encoding did not fail for the 10bit444 and 512kb encodes of the Famtasia dump. Any thoughts? EDIT: OK, so the problem seems to be that "Vorbis doesn't like the 32bit float WAV" from the Famtasia dump. The solution is to insert
ConvertAudioTo16bit()
after the AviSource line in encode.avs. Thanks to Aktan and fsvgm777 on IRC for the info.
Current Projects: TAS: Wizards & Warriors III.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
So is there a way to overcome the avi import count limit of avisynth? Or just "encode what you can import as segments and then splice"?
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.
Joined: 10/14/2013
Posts: 335
Location: Australia
I don't think so. My understanding (which may be incorrect) is that it's tied to memory, which is in turn tied to the fact it's 32-bit. That being said, provided it's a standard CFR situation and I've dumped using lagarith, I often load up "segment000.avi" in virtualdub, append "segment001.avi" (which appends sequentially until it stops finding numbers following the naming pattern) and then save using direct stream copy to a second single-segment file. It takes a bit of time (as it's copying the streams, it takes about as long as copying a file of whatever the size of the video is) and more HDD space, but afterwards you can delete the input files afterwards and then only have to worry about importing a single file when it comes to AVISynth.
I'm not as active as I once was, but I can be reached here if I should be needed.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
My problem is that it uses tons of resolution changes, resulting in 117 segments and only 8GB of total size. For SDs I just did what you said and encoded the combined parts, but for HD I want to avoid shrinking the hires slides between levels, as well as upscaling gameplay to 2x. I want to upscale every segment to 4K and only then stitch them together. EDIT: I tried switching to ffms2 in my segmented importer function and got this:
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.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
Is the application you're encoding with large address aware? Maybe you could somehow pipe the output of one script to another one running in a different process.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
I fixed the overflow by changing my importing function, but then I had to dump the new method too, because ffmpegsource2 would introduce av desync of several seconds for certain segments depending on no one knows what. So I ended up doing partial encoding. I can post that segment and the command I used to check the desync if you're interested.
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.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
Nah, I wouldn't be able to help with that anyway. The last time I used something other than AVISource or DSS2 was when I was still encoding DVDs.