feos, make it part of publication work? Alternatively make a sticky in this subforum with the first post detailing processes for high quality rendering of TASes for different purpouses, maybe with a FAQ section that you later could expand on. Right now everything seems kind of spread out and it can be hard to grasp exactly what to do if you don't have previous experience with the programs even if the process is fairly simple.
This is what's wrong with it: http://i.imgur.com/DY6YRJ2.jpg
another example:
(again left is 1280p upscaled in MPC, middle is 1280p upscaled on YT and right is raw lagarinth encode from Gens on YT)
Notice how it has improved with upscaling but still is far from the quality of the original file. It looks like a jpeg-smush of oatmeal-pictures stringed together and I'm not sure how to avoid that other than keep increasing the resolution.
Thanks for the code! I'll see what I can come up with later today when I got time.
What bitrate did your video have? (If you don't know, take the file size (without audio) in bits and divide it by the length in seconds and then by 1000 - that's your kbits/s value. Or open it up in a video player, e.g. MPC-HC, and look at the file info.)
PS: it's spelled Lararith :)
according to YT itself the average bitrate is 7.6kB/frame (9'568'905 bytes for 1232 frames) which I'm presuming is about 228kB/s (for 30fps video). That's with max settings though (quality = 720p) and including booting splashscreens and whatnot.
No it's spelled Lagarith ;)
EDIT: I realise that it's much much lower than the 6.6MB/frame (with audio) average for the file on my computer but the entire point of the project requires that I upload with the least amount of quality loss possible on YT.
EDIT2: Btw does "AssumeSampleRate(AudioRate / 2)" change the frequency of the audio as well as the tempo? YT 2x speed doesn't effect the frequency so if it does it would make Sonic sound groovy.
>Lagarith
http://i.imgur.com/AX7lYND.jpg
If you don't have the file you uploaded anymore, just dump ca. one minute or so again and encode it. Ignore the audio for now; you can encode that at 192kbit/s and it'll sound fine, especially with older consoles. Btw. kbits (x * 1000 bits per second) is the commonly used unit for both video and audio.
Size doesn't always imply quality. Converting video to h.264 etc. is a fairly complex process, and you can influence it in many ways. The usual ones are preset (from "ultrafast" to "placebo" == how much time you want the computer to spend finding a good encoding solution) and the choice between bitrate mode (you select an upper bound on the data rate; the preset determines how close to the original the result will look) or CRF mode (you select the quality and the preset determines how good the compression (i.e. how small the file) will be). I use x264vfw for that.
Experienced encoders will most likely use CRF mode with a quality setting adapted to the source and with an encoding time they're willing to spend; sometimes that can go to a few gigabytes for the final file and an encoding framerate in the single-digit range, so things like multithreading become very important...
http://avisynth.nl/index.php/AssumeSampleRate
It changes the frequency, i.e. the speed at which the soundcard plays the data. Imagine a vinyl record that spins at half the usual speed.
I don't know what you were expecting TimpZ, YT compresses regardless of what you send. At fast motion like sonic, most people won't see the artifacts you pointed out. Of course it won't ever beat your lossless upscale version. I should point out, the bigger the resolution, the more bits per pixel it gets, and the less artifacts you should see. So yes, upscale it by 12x like I suggested =p.
As for why I extracted the WAV, the MP4 doesn't have audio when you encode the video, nor does the spec allow it regularly, which is why I mux in MKV which supports H.264 + WAV.
As for output to AVI in VDub, that's a no no, as you probably didn't set the correct settings in both VDub and Lagarith to send the correct AVI (aka there is a slight quality loss you probably didn't notice but it probably made YT encode worse than it could). If you want, I can explain what settings were probably not set and why they should be set. The file also will be quite a big larger than using the command line I gave you.
I forgot about the 30 Hz flicker. IMO I take care of it via selecting even/odd frames which makes it look a bit jittery, but IMO preserves the pictures the best.
x264.exe didn't like me outputting an mp4 :/. Also I got a couple warnings when I changed the output to an AVI, not sure what they're about.
This gave me a 65MB file that can't be rendered.
Also I was hoping for as good quality as possible but I just noticed that for example Tee-N-Tee's TAS-encode by feos have the same artifacts so I guess I can't complain too much :p.
The MKV program said something about being a buggy preview. Is that the correct version?
Also I realised that I want inputs to be visible on the screen but I'm unsure how to do that without capturing the emulator with a separate program. Any advice?
Joined: 4/17/2010
Posts: 11476
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
Gens: Tools -> AVI -> Uncheck Clear AVI Screen.
Bizhawk: File -> AVI -> Check Capture OSD.
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.
You can copy'n'paste to/from the command-line window.
The first line means that you're using a certain level but the number of macroblocks (16x16 pixel areas) surpasses the macroblock limit of that level. The second warning basically is the consequence of that: the number of macroblocks coming in per second is larger than the limit.
As for rendering... try mplayer (e.g. with a frontend like smplayer).
Btw. I'm not sure why you'd use the "TV" range for input and output - the input is definitely full range (0..255 for each RGB channel) since you're using an emulator (they always output full-range in RGB colorspace), and I'd assume that most digital TVs can already convert full-range video on their own if needed...
Also, try CRF 16 or even 20, it should be visually very close to the original but much smaller.
The input is TV range because the script already converted to TV range. The output is TV range because YT converts only to TV range. This is why I also converted the input to TV range because YT only supports TV range. I rather control how it is converted than let YT do it.
I think a 65 MB file is pretty small already, lol. Especially with the upload speed he has. I rather send lossless H.264 at that rate. May give slightly better quality on YT!
Since I didn't know x264 doesn't come with MP4 muxer anymore, I'm sorry I told you that way. You should now output to MKV instead. So basically --output <whatever>.mkv
As for playback, you probably don't have the right codecs. Though using the latest MPC-HC should give you the right codecs.... I'd say try MKV and playback that.
Hey,
I have got 2 questions:
1. When do I enable the blend function in the Hybrid Encoding Script and when not? I didn't understand it. What is it for? When do I use it?
2. What changes when I choose it is a handheld video and not a TV based console?
3. When should I set ngdb to true?
Joined: 10/12/2011
Posts: 6439
Location: The land down under.
TASGameplayEncodes wrote:
2. What changes when I choose it is a handheld video and not a TV based console?
Hooray for Spyro.
handheld = truehandheld = false(These images have been resized. Click them to view them.)
Here's a GBA game
handheld = truehandheld = false
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account.Something better for yourself and also others.
blend - set to false if there's no alternate frame flickering in the video
hdframerate is used when blend = false. Drops frames so that the framerate matches the value. YouTube framerate is 30 maximum, so it's default value.
ngdb - use ng_deblink, the most powerful deblink function. It calculates which objects blink, creates a mask and blends within it (does not work for background shaking). Set to true to enable. If false, TASBlend is used instead.
TASBlend function is used when ngdb = false. Use it when the whole video needs to be blended.
Change 0.5 to 1.0 to get half framerate flickering.
Leave empty () for default; some transparency, some flickering - TASBlend style.
Exclude .SelectOdd to prevent framerate reduction.
Replace .SelectOdd with .SelectEvery(5,0,2,4) for 25 fps, PAL encodes
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: 4/17/2010
Posts: 11476
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
Archive.org doesn't load for me anymore. WTF am I supposed to do?
EDIT: It works under Tor though.............
EDIT: It can't upload under Tor!!!
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/12/2011
Posts: 6439
Location: The land down under.
I'm trying to open 21 files in a segmented order but the mine and feos' method has failed.
My method was the manual method of putting AviSource one after the other and feos' way was the AppendSegment method.
Both methods kinda worked but it got to the 2nd clip and stopped half way.
I did a change from opening 21 to just 5 that didn't work then 3 and that didn't work and 2 didn't even show the full clip of 2.
Edit: I was using HybridEncodeScript and apparently that "broke" it, I just did one with just AVISource spam and nothing else and it did the entire thing.
Note: I've done the mkvmerge method before for this 8 hour TAS and the audio will and I'm not joking break about 2 hours in (Audio reached 2gb). Anything related to using mkvmerge will be ignored unless it's manages to have a way to get audio to a low size.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account.Something better for yourself and also others.
Use mkvmerge:
http://puu.sh/csOW1/90f90dc50c.png <- Drag and Drop first file, then click on Append (not add, important!!) and select the other files. Merge them into 1 mkv. If you need a MP4 file, download MKVExtract2, extract the stream, download YAMB/mp4box, merge them into a mp4 container.
I'm trying to open 21 files in a segmented order but the mine and feos' method has failed.
My method was the manual method of putting AviSource one after the other and feos' way was the AppendSegment method.
Both methods kinda worked but it got to the 2nd clip and stopped half way.
I did a change from opening 21 to just 5 that didn't work then 3 and that didn't work and 2 didn't even show the full clip of 2.
Edit: I was using HybridEncodeScript and apparently that "broke" it, I just did one with just AVISource spam and nothing else and it did the entire thing.
Note: I've done the mkvmerge method before for this 8 hour TAS and the audio will and I'm not joking break about 2 hours in (Audio reached 2gb). Anything related to using mkvmerge will be ignored unless it's manages to have a way to get audio to a low size.
Tried AVISource(file1, file2, ...) ?
Also, tried updating MKVtoolnix? mkvmerge just joins the streams, it doesn't do anything else with them.
Joined: 4/17/2010
Posts: 11476
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
Alright. So now I know that Archive.org was blocked in russia. Because it somewhere contained some video that is considered illegal here. Any ideas how to make it work? Under Tor the site loads, but I can't finish an upload. Under proxy it doesn't open. VPN... never tried.
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.
1. Why are you giving x264 the -sar paramenter only for the 10bit444 downloadable? In the Hybrid Encoding Script, only there is --sar "%VAR%". For the right result, shouldn't it be for YT + 512kb stream too?
2. Why don't you use CRF encoding for YT instead of qp in the Hybrid Encoding Script?
Joined: 4/17/2010
Posts: 11476
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
1. Primary encode uses SAR because it isn't rescaled when encoded, like 512kb is. For primary, it saves some file size. And Archove.org wants the already corrected aspect ratio for its streams. Same with variable/constant FPS.
2. What's the exact difference between crf and qp? The latter is used for HDs since 2010, I didn't really ask myself why.
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.
qp
Set x264 to encode the movie in Constant Quantizer mode. [...] qp produces larger files than --crf for the same visual quality. qp mode also disables adaptive quantization, since by definition 'constant quantizer' implies no adaptive quantization.
crf (default: 23.0)
Constant Ratefactor [...] targets a certain 'quality'. The idea is for crf n to give the same perceptual quality as qp n, just in a smaller space. [...] CRF achieves this by reducing the quality of 'less important' frames. In this context, 'less important' means frames in complex or high-motion scenes, where quality is either more expensive (in terms of bits) or less visible, will have their quantizer increased. The bits saved in frames like these are redistributed to frames where they will be more effective.
Joined: 11/13/2006
Posts: 2822
Location: Northern California
You can't encode HD directly on Gens or any other emulator. You need to resize the raw video to HD dimensions, which involves either using a good video editor or learning AviSynth code.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on BlueskywarmCabin wrote:
You shouldn't need a degree in computer science to get into this hobby.