Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
I don't think the emulator is confused at any point. It's simply that the avi files are written at exactly 60fps, but the framerate of the console is not 60fps. For both gb and gba:
1) Actual framerate (as emulated by vba) is approximately 59.7fps.
2) Individual frames can be much longer than that if the video hardware is stopped.
(Note that #2 is not often seen in gba emulation, but it can happen).
The result is that no matter what, there will be an occasional dup frame, and in the case of GB, very often many more dup frames.
Try this script to see it in action:
Language: lua
--run me while dumping an avi
gui.register (function ()
gui.text (1, 133, "fct: " .. vba.framecount (), "#FFFFFFFF", "#000000FF")
gui.text (1, 126, "avi: " .. avi.framecount (), "#FFFFFFFF", "#000000FF")
end)
See also system.cpp:
Language: cpp
--linearFrameCount;
do
{
++linearFrameCount;
/*
current frame is prepped and dumped here
*/
}
while (linearFrameCount < linearSoundFrameCount); // compensate for frames lost due to frame skip being nonzero, etc.
Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
Warepire wrote:
ThatGugaWhoPlay wrote:
FRAPS' output is .avi. It would give better quality just using AviSynth and x264.
When AviSynth can capture a game, let me know.
You don't seem to be understanding what he's saying at all, or what AviSynth is and does. You have a FRAPS AVI capture, you want to make a final encode of it. Load it into AviSynth with one of the Source() commands, make whatever modifications you want to it, and then feed that to x264. It's a perfectly acceptable processing system.
(Hell, what do you think your beloved Anri-Chan does? All it is is a bunch of wrappers and scripts on top of AviSynth)
Warepire wrote:
He is planning on making a lets play on a game that does not have replay files and isn't runnable in Hourglass, FRAPS captures games quite well, and that Anri-Chan program already handles FRAPS avi's pretty well. The HQ / IQ qualities look pretty good when uploaded on YT as well. And overall, it is a simple solution.
Anri-Chan is not simple. Something like megui is simple.
Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
Warepire wrote:
In your case, get FRAPS, then run the dumps through SpeedDemosArchive's Anri-Chan tool, produce only the HQ or IQ quality and upload that on whatever video hosting service you like.
Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
looks nice... but it takes 4 seconds to render a frame on my i5 2500k@4.0 ><
edit: that's in vdub... doesn't take nearly as long in avs2pipemod, wonder why
Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
sabrewolf wrote:
It's under the .avi section, and works. The problem is the file size. I want the file size to be smaller than 1 gig. Plus, I'm talking about recording a .fm2 movie with the emulator, then replaying the movie and recording an avi file. When I try to replay the .fm2 file, it does not work. So I can't capture the .avi. If I record straight to .avi, it works, but the game is laggy as hell, and the file is huge and gets broken into parts.
For smallest filesize, makesure camstudio is on gzip compression level 9 (it's in the codec options).
I have camstudio on my computer, but I have a laptop and when I record, there is no sound. Also, looked for the "lossless codec" and could no find it.
*EDIT* Never mind, I found it. I'll give that a try. Thanks
after you've installed that, it should show up on your list of available codecs for video capture
Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
I've been getting this every time I used gens ever, but I never posted about it until now since it wasn't until a discussion about lsnes that I realized what the problem (might) be.
I get the following two error messageboxes every time I start gens11 svn296:
Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
Solved (thanks to Ilari)
Because psxjin is junkus, your lua script ceases to exist once the interpreter hits the end of the file. This is in contrast to emulators like VBA, where the script stays running until you stop it, and so can still do stuff if it has hooks registered.
This fully freezes the value in question:
Language: lua
memory.writeshort (0x00097ba0, 68)
print ("initial set")
memory.registerwrite (0x00097ba0, function ()
print ("hook hit")
memory.writeshort (0x00097ba0, 68)
end)
print ("hook installed")
while true do
emu.frameadvance()
end
Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
Dario_ff wrote:
Neat program, but it seems it has some problems when closing down fullscreen applications and then the output video gets invalid.
I'm currently trying out this guide tho using VirtualDub and a fair share of other software. Looks promising, a friend said he had really good results with it. Thanks for the help tho!
http://www.genadmission.com/vdubguide.html
That doesn't do anything to help out with the problem under discussion, though. You can record at a different framerate than the game plays, but you can't slow anything down.
If you want to do real time capture of a modern 3d game, dxtory is probably your best bet (well, its dshow capture pin, anyway; dunno about the rest of the app).
Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
nanogyth wrote:
natt wrote:
.
Yah, the ending is a non-event because its a 2-player race and the 2nd player hasn't finished yet.
Can I finish the 2nd player and splice in whatever ending happens then?
Ahh, that explains it. I'd prefer no splice personally because it goes against authenticity.
Honestly, given all of this information, it doesn't sound like there is a good way to cut this video.
Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
nanogyth wrote:
must include the full ending (with at least one full loop of the ending song for those games that have them).
Ok, I can extend it to include a full loop of the song.
The video must start at the beginning of the input file (normally console start-up) and
The .smv starts from a save state.
Is that part ok, or does the missing input need to be added?
It should start from wherever the smv starts. Why the smv starts where it does was was a judge thing, not my problem.
As far as the ending goes, use your best judgement... I dislike where this encode ends not particularly because of the song (it's the same song that has been running the whole race), but because it seems "abrupt" and unprofessional; it looks like something may have been cut off, even if that's not the case.
Duration of the video
The video must start at the beginning of the input file (normally console start-up) and must include the full ending (with at least one full loop of the ending song for those games that have them).
Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
Lex wrote:
What does this do that ffvideosource() with the "fpsnum" and "fpsden" arguments defined doesn't?
I've used ffvideosource() on a vfr video and defined fpsnum and fpsden to convert to cfr, which seemed to work well for me. Is there something it does wrong?
The basic operation completed is the same, but there are a number of differences.
1) My plugin works on anything with a matroska v2 timecode file, which can be from FFMS or from other sources.
2) My plugin interprets the timecode for a frame as the frame's start time, which is consistent with dedupc/exactdedup, jmd streamtools, mpc-hc playback (with file muxed by mkvmerge or x264). FFMS interprets the timecode for a frame as the frame's center time, which can cause some weirdness: http://doom10.org/index.php?topic=25.msg9997#msg9997
3) My plugin has a number of facilities to determine how "correct" the VFR->CFR conversion was. You get a listing of exactly how many dups and drops there were, a measure of the error in frame start timing, as well as a visual graph you can watch to see how the VFR times and CFR times line up. If your source was originally at some point cfr or mostly cfr, you can exactly recover that with some manual observation and TimecodeFPS. With FFMS's conversion, if you chose 60fps for a 59.94fps file, it may be difficult to determine that anything went wrong at all. Among the possible applications are use with threshhold based (non-exact) dedup to recover 23.976fps material from a dirty analog source (eg VHS tape). (Although current "interlace scanning" methods for that are pretty good.)
Editor, Emulator Coder, Experienced Forum User, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
Here's my command output running it:
(Note that I put placeholder title/desc/tags and filled them out for real later)
D:\encodes>ytu\ytu speedygonzales-tas-ilari_youtube_crf0.0.mkv "2000M" "yt:stret
ch=4:3"
YouTube Uploader Copyright (C) Nach 2012
File: D:\encodes\speedygonzales-tas-ilari_youtube_crf0.0.mkv
Size: 1438316871
MD5: eb37c0fa507f4177f47c7e246735a87d
Please enter a description. Press Enter/Return thrice when you are done.
For more information, see http://tasvideos.org/2000M.html
Title: 2000M
Description: For more information, see http://tasvideos.org/2000M.html
Tags: yt:stretch=4:3
Continuation ID: 1
1438316871/1438316871 [*************************] 100% 247.831 KB/s 0:00:00:00
1438316871/1438316871 [*************************] 100% 222.231 KB/s 0:00:00:00
1438316871/1438316871 [*************************] 100% 196.632 KB/s 0:00:00:00
1438316871/1438316871 [*************************] 100% 171.031 KB/s 0:00:00:00
1438316871/1438316871 [*************************] 100% 171.031 KB/s 0:00:00:00
1438316871/1438316871 [*************************] 100% 171.031 KB/s 0:00:00:00
1438316871/1438316871 [*************************] 100% 171.031 KB/s 0:00:00:00
1438316871/1438316871 [*************************] 100% 171.031 KB/s 0:00:00:00
URL: http://www.youtube.com/watch?v=1zQ6WTMhuIk
Of particular interest is how there are 8 lines of progress... Does that mean 7 restarts? I unfortunately wasn't watching at the very end, but i can tell that, at 95%+ done, there was only still the one line, at about 256KB/s. I find 7 restarts all crowded up at the end slightly suspicious.