PDA

View Full Version : Armageddon Recorder (Under development)


solemnwa~1
21 Jan 2012, 15:06
I'm working on a program to automate video creation from WA replay files (with audio!), the current form sort-of works and I'll have a test release out soon(ish).

A couple of questions:

What frame rate divider values are acceptable? Integers? Floats? To which precision?

What video formats would you like to be able to encode to? I'm currently using VirtualDub to handle the encoding, so anything VirtualDub supports and can be used through the scripting interface is acceptable.

Thanks

dcrew
21 Jan 2012, 21:58
We can already do this no? Right Click a Replay > Export Video

http://screensnapr.com/e/eok99G.png

solemnwa~1
21 Jan 2012, 22:43
That tells WA to dump a screenshot periodically, this combines that function with some code to record/sync the audio and then run it through an encoder.

solemnwa~1
22 Jan 2012, 00:19
Still lots of work to do, but it works as long as you don't look at it funny:

armageddon-recorder.exe (http://www.solemnwarning.net/armageddon-recorder.exe)

You'll also need to download VirtualDub if you don't already have it and put armageddon-recorder.exe in the VirtualDub directory before running it. Only uncompressed AVI and "MSU Screen Capture Lossless Codec (http://www.compression.ru/video/ls-codec/screen_capture_codec_en.html)" are currently known.

Before trying to capture video, open (recording) volume control and select the loopback audio source (usually "Stereo Mix"), otherwise you won't get any audio.

GreeN
22 Jan 2012, 01:59
Keep in mind that the engine only records and exports (what are essentially keyframes) at a maximum of 50fps; Factors of 50 will produce the smoothest results.

MSU Screen Capture Lossless Codec (http://www.compression.ru/video/ls-codec/screen_capture_codec_en.html) is commonly used for encoding. You can find more info about it here: http://worms2d.info/Creating_a_Worms_movie

franpa
22 Jan 2012, 09:22
Why not use Xvid for encoding? More up to date/better?

GreeN
22 Jan 2012, 14:37
Because Xvid is crap. The quality loss during compression is phenominal.

OutofOrder
22 Jan 2012, 23:44
MSU Screen Capture Lossless Codec (http://www.compression.ru/video/ls-codec/screen_capture_codec_en.html) is commonly used for encoding. You can find more info about it here: http://worms2d.info/Creating_a_Worms_movie
That article got a really needed update. You can count on MSU SC to be the most efficient codec out there for WA video, but it's definitely not fast enough at decoding, and seeking to the middle of a video clip within your editor will take too much time.
I've been recommending video makers to try using PNG sequences as video sources (as it's now pointed in the article) for a while now.

solemnwa~1
24 Jan 2012, 18:06
New version: armageddon-recorder.exe (http://www.solemnwarning.net/armageddon-recorder.exe)

Added MSU lossless video codec and an option to not create a video file so you can use the PNG frames as a source when editing as suggested above (they will be in the usual capture directory).

Current job/idea list:

Allow external VirtualDub directory to be chosen
Save PNG frames/audio in given directory
Pick unused prefix to avoid stomping over existing recordings.
More video formats, compression options
Automatic selection of loopback audio source
Audio format selection (currently hardcoded as stereo 44.1kHz 16bits/sample)


Any suggestions/opinions so far?

franpa
25 Jan 2012, 03:58
Because Xvid is crap. The quality loss during compression is phenominal.

As is the the file size. It's what you get with lossy compression, 30 seconds of 1920x1080 32bit video footage compressed down to less then 5MB from 2 gigabytes while retaining respectable amount of picture quality.

GreeN
25 Jan 2012, 11:02
It's what you get with lossy compression

http://franpaderp

Muzer
25 Jan 2012, 18:52
As is the the file size. It's what you get with lossy compression, 30 seconds of 1920x1080 32bit video footage compressed down to less then 5MB from 2 gigabytes while retaining respectable amount of picture quality.

If you use a good lossless algorithm on WA with backgrounds turned off, etc., I'd expect it'd be almost as good as, if not better than, a lossy one.

solemnwa~1
25 Jan 2012, 19:48
Again: armageddon-recorder.exe (http://www.solemnwarning.net/armageddon-recorder.exe)

Now loads encoder list using the VFW API, this doesn't seem to be a complete list however as ffdshow-provided encoders such as MJPG aren't shown on my system (nor are they in VirtualDub though). I'm thinking about providing a few preset video encoders/formats rather than supporting all codecs and options like VirtualDub tries to.

Also allows manual selection of WA and VirtualDub directory.

Lex
26 Jan 2012, 11:42
Ideally, you should use x264 to encode instead of virtualdub. H264 is a superior format for lossy and lossless video compression; the best that exists, even. X264 is the best h264 encoder and it can currently encode to lossless GBR24P (24-bit RGB, basically; playable with LAV Filters in windows or mplayer2 in linux), as well as all its other formats and settings. You can use x264 in your project along with any audio codec(s) you may want to use by using ffmpeg, which is currently the most advanced multi-format encoding and decoding library. It includes libx264. Zeranoe's ffmpeg builds (http://ffmpeg.zeranoe.com/builds/) are handy for such a project.

For comparison, h264 lossless encodes I make from Lagarith lossless encodes are usually ~1/3 of the size; both in RGB pixel formats.

franpa
26 Jan 2012, 14:42
Bleh why use a CLI program instead of Vdub? Especially when Vdub lets you edit your video? It's why I use Xvid.

solemnwa~1
26 Jan 2012, 15:48
Ideally, you should use x264 to encode instead of virtualdub. H264 is a superior format for lossy and lossless video compression; the best that exists, even. X264 is the best h264 encoder and it can currently encode to lossless GBR24P (24-bit RGB, basically; playable with LAV Filters in windows or mplayer2 in linux), as well as all its other formats and settings. You can use x264 in your project along with any audio codec(s) you may want to use by using ffmpeg, which is currently the most advanced multi-format encoding and decoding library. It includes libx264. Zeranoe's ffmpeg builds (http://ffmpeg.zeranoe.com/builds/) are handy for such a project.

For comparison, h264 lossless encodes I make from Lagarith lossless encodes are usually ~1/3 of the size; both in RGB pixel formats.

I've done some testing with ffmpeg and got quite nice quality/compression videos. I haven't got it to export uncompressed AVI properly yet. The video works ok if I force the pixel format to bgr24 but there's no sound and the video length is longer than the video stream and audio combined.

Lex
28 Jan 2012, 06:21
Why would you ever want to export uncompressed AVI? Just export lossless bgr24 h264 and flac in a matroska video (mkv) container. Both stream formats are lossless and fully compatible with ffmpeg for further encoding to lossy formats.

I'm not sure about those other issues you mentioned, but they're certainly not part of the normal process. You can ask about your issues in #ffmpeg on freenode. The people there are very knowledgable and experienced. FFmpeg is by-far the most advanced and modern video encoding/decoding system available. As far as I know, nothing else (except LAV Video Decoder, which uses ffmpeg for decoding in a filter for players like MPC-HC) can handle bgr24 in h264 properly, even though it's the best lossless video format for rgb sources such as video games.

solemnwa~1
28 Jan 2012, 14:41
I want an uncompressed AVI option simply because it works with everything. I also get the following message when I try to encode a bgr24 H264 video:

Incompatible pixel format 'bgr24' for codec 'libx264', auto-selecting format 'yuv420p'

Lex
29 Jan 2012, 18:22
Try "rgb". That's the relevant option in x264 CLI standalone, as in this lossless CLI example, pasted from a 1-line batch file I wrote.

A:\tools\x264\x264 --preset medium --qp 0 --output-csp rgb --output "C:\media\video\capture\sonictripletrouble-zeupar-rgb.mkv" "C:\media\video\capture\dega.avi"

It might be "rgb" in ffmpeg also, even though the format is technically gbr (green, blue, red; 8 bits per channel). I was wrong when I said "bgr24" earlier. I should have said "gbr24", as that would be far more accurate.

Regarding your question about frame duration earlier, just set the frame rate to exactly 50 fps. Each frame should last exactly 20 milliseconds. If you're muxing to matroska, this can be specified in the timecode file. If you want to do vfr deduplication to save space, there's a nice avisynth plugin by Grunt at tasvideos.org called ExactDedup.

solemnwa~1
29 Jan 2012, 23:59
New version: armageddon-recorder.exe (http://www.solemnwarning.net/armageddon-recorder.exe)

Redesigned/rewrote a large chunk of code for dealing with capture to make it work better and fixed some other bugs. You'll need ffmpeg.exe in the same directory to create videos. Creating uncompressed AVI currently doesn't work properly (still no audio).

Lex
30 Jan 2012, 02:58
solemnwa~1, this is so beautiful. :') I did a test with my Mission Impossible 2 (famous rope race map) TAS and the audio was synced perfectly, with perfect lossless video in mkv. I want to thank you for making the first great WA replay encoding solution! Now I'll record some mission TASes in 1920×1200 and see how they look. :D

Edit: I have a request. Can you make something to choose audio format? I noticed it exported to 128kbps cbr AAC. Choices for vorbis and flac would be nice. There should be a way to record lossless audio, I think, for further editing. For lossy audio, I would use vorbis with variable bitrate Q=0.25. I've only configured that in a GUI though, so I'm not sure what the CLI options are. Anyway, thank you so much for this amazing and convenient tool!

Edit: I have 2 issues to report.

First, attempting to dump to a file that already exists causes a crash. I've only seen it once. I'll try to reproduce it now. Edit: That's weird. It didn't crash this time. I wonder what caused the crash. I should have taken a screenshot of the crash report, since it had some detailed info that would be relevant to you. ;o Sorry! Edit: I reproduced it somehow. Here's the crash dialog: http://dl.dropbox.com/u/35695760/0000022B.png Edit: I think it happens when you make a recording completely then the GUI pops up again, then you set it up and try to make another recording. It then crashes.

Second, the game lagged for a few frames at one point during the video dump, causing the audio to mess up slightly at that point in the resulting video. Can you make a "2-pass mode" where it first records video using WA's internal png export function, then records audio while just playing the replay back normally, to avoid lag spikes?

Edit: I have 2 more things to note.

Third, is there a way you can automate "scroll lock" mode in the GUI? I noticed you have a "Display background" checkbox, and I was wondering if there could be a similar checkbox for the shift+scrolllock keybind that causes the camera to stay frozen during playback. If not, that's okay. I can just set shift+scrolllock in-game, then run the recorder.

Fourth, the file path boxes seem to get cleared after each time the GUI runs. If there was a way to remember the last paths, that would be ideal. I have my own workaround for it so I don't have to browse each time, but file path memory would be ideal.

Again, I can't thank you enough for this valuable tool.

OutofOrder
30 Jan 2012, 04:38
Hi, i have bug reports and requests if you don't mind:
- allow to enter mmm:ss for timestamps (longer than 59 minutes, ie 120:44). W:A supports these, but arec doesn't and throws an error
- if the video file already exists, ffmpeg (not the GUI) prompts for overwrite and it closes if you choose not to. shouldn't the GUI anticipate this, ideally?
+ default to 50 fps (native W:A frame rate)
+ allow exporting no audio
+ specify the background level (as in, all levels cycled with Insert key in game)
+ allow to reuse files already exported if possible (convenient for trying out different encoding settings)
+ remember last used settings this is just nitpicking
+ what about allowing to encode lossless FLAC audio / uncompressed PCM ? Lex sort of beat me to it above

A side issue: there are sound devices out there that, like mine (Sound Blaster Audigy), don't allow recording from Stereo Mix or similar. It's disabled by their own drivers, particularly on Win Vista and above. Supposedly if you try to detect DirectShow audio capture devices it while using a tool like this one (https://github.com/rdp/virtual-audio-capture-grabber-device) it should also list the capturer as audio input to use instead. (tested and working with ffmpeg)

Please excuse the waterfall of notes :o Great work so far, keep it up :)

Lex
30 Jan 2012, 06:04
Not knowing OutofOrder had posted after me, I heavily edited my above post. It contains much more than it originally did, including a crash report with a screenshot of the runtime error dialog.

Edit: I noticed something else. For the lossy encodes, you specify "pal8" as the pixel format (-pix_fmt), which causes ffmpeg to say "Incompatible pixel format 'pal8' for codec 'libx264', auto-selecting format 'yuv420p'" (http://dl.dropbox.com/u/35695760/0000022C.png). "yuv420p" causes the resulting video to be encoded with TV range of colors (16-240) instead of PC range (0-255), which makes everything look washed out if your player doesn't upscale the color range. Instead, for low and medium quality, you should specify yuvj420p, the full-range version of yuv420p. For high quality, you should specify yuvj444p, which is the YUV format with no chroma subsampling, which looks almost identical to RGB while having slightly better compressibility; very fitting for "high quality".

Edit: I recorded a clip 49 minutes in and the audio in the resulting video was about a quarter-second ahead of the video. I assume this was because of the time it took to fast-forward 49 minutes. The audio was perfectly synced in my recording tests starting from the beginning of the replay. I don't know what can be done about this A/V desync.

raffie
30 Jan 2012, 11:32
There are many different versions (and forks) of ffmpeg. Is there a specific version one needs to use?
I get following error message whan I try to create a H264 video (all qualities):

Lex
30 Jan 2012, 16:51
There are many different versions (and forks) of ffmpeg. Is there a specific version one needs to use?Use the latest static build by Zeranoe (http://ffmpeg.zeranoe.com/builds/). Just copy ffmpeg.exe from the archive into the same directory as armageddon-recorder.exe.

This is probably unrelated to your issue. That's also the crash dialog I posted above.

raffie
30 Jan 2012, 21:03
Use the latest static build by Zeranoe (http://ffmpeg.zeranoe.com/builds/). Just copy ffmpeg.exe from the archive into the same directory as armageddon-recorder.exe.

This is probably unrelated to your issue. That's also the crash dialog I posted above.

Thats the version i got, will either the 32-bit or 64-bit version do? I used the 32-bit version.

solemnwa~1
31 Jan 2012, 19:13
Crash when you try capturing a second game without restarting

I think I know what's happening here, will only take a minute to fix if I'm right.

Audio skewed

This is a more difficult problem to fix - it currently works by inserting 2 frames worth of zeroes at the start of the WAV file and beginning to record audio once WA creates arec_000001.png (Used to be 1 frame and 000000, but using 2/000001 seemed to improve sync for me). I think it only goes out of sync when the machine can't quite keep up, I may update it later to create a seperate WAV file every n frames, so the audio may still skew but it (should) be corrected at the start of the next one.

Different audio formats

I'll add these once the bug pile gets a bit smaller.

"scroll lock mode"

I wasn't aware of this option, I'll add it when I make the game options more powerful later on if it's in the Options key with the other settings.

Path boxes clear

Windows should remember the last used directory, although it will store the directory for each path in the same place. I'm planning to save/restore the directories myself at some point but that's not too high up the list.

mmm:ss times not allowed

Easy to fix.

ffmpeg prompts for overwrte

Also easy to fix.

Allow no audio and different background levels

I could add a "no audio" option, out of curiosity, why do you want it? Different background detail levels will be added later.

Reuse exported files

If you mean the exported frames/audio, it could be done. But isn't likely any time soon.

Pixel formats

The "pal8" pixel format was picked by default from the PNG files, I just left it due to ignorance about video encoding. I'll make it specify those ones instead.

raffie's crash

Did you get that error for the first capture you try to do after starting or when you tried capturing a second game like Lex? I've tested with the 32-bit Zeranoe build.

Thanks for the suggestions so far!

solemnwa~1
31 Jan 2012, 19:34
New version: armageddon-recorder.exe (http://www.solemnwarning.net/armageddon-recorder.exe)

KRD
31 Jan 2012, 20:26
Allow no audio and different background levels

I could add a "no audio" option, out of curiosity, why do you want it? Different background detail levels will be added later.

This is because Armageddon Recorder crashes for those of us who have no audio recording options to select (because our sound drivers either disable or simply don't implement stereo mix). I get an error message very similar to raffie's when trying to record anything.

G'job with it all, by the way. Keep those updates coming! ;)

solemnwa~1
31 Jan 2012, 20:51
This is because Armageddon Recorder crashes for those of us who have no audio recording options to select (because our sound drivers either disable or simply don't implement stereo mix). I get an error message very similar to raffie's when trying to record anything.

G'job with it all, by the way. Keep those updates coming! ;)

You have no recording devices at all?

Can you post the error you get?

solemnwa~1
1 Feb 2012, 00:42
Here we go again: armageddon-recorder.exe (http://www.solemnwarning.net/armageddon-recorder.exe).

I think I've worked out a way to keep the audio synced, it's worked for me but it might end up distorted on a slow/loaded machine. Please try it and let me know how you get on.

KRD
1 Feb 2012, 02:45
You have no recording devices at all?

Nope, not since I disabled the laptop's built-in microphone; there's nothing to select in Armageddon Recorder. This is how I set it up (using the executable that you just released):

http://shrani.si/f/1A/HW/R72njDf/1.png

Can you post the error you get?

Here's the one I get right after clicking OK for the first time:

http://shrani.si/f/9/5G/4LHmWOU8/2.png

And here's the following ones that pop up each time I Ignore the previous one (because apparently I like taking screenshots):

http://shrani.si/f/3q/sr/2NFq6LST/3.png
http://shrani.si/f/3m/wv/1l1YrwYh/4.png
http://shrani.si/f/1p/uI/3L8D5TNK/5.png
http://shrani.si/f/2E/7G/3IRWxee0/6.png

And so then this is what I'm left with after all the ignoring:

http://shrani.si/f/1x/11k/4rME1urU/7.png

When I close that, I get a final couple of these:

http://shrani.si/f/3k/7t/1LC7ietk/8.png

And then I'm left with just a single frame of the video and a tiny .wav in my \User\Capture\ folder:

http://shrani.si/f/21/Mx/3o2JlXwF/9.png

*Wipes brow.*

solemnwa~1
1 Feb 2012, 12:22
Weird. Do your sound card drivers present mic/line in/etc as different devices rather than channels on a single input device?

I'll add a "no audio" option today.

solemnwa~1
1 Feb 2012, 13:49
"None" audio source added: armageddon-recorder.exe (http://www.solemnwarning.net/armageddon-recorder.exe)

OutofOrder
1 Feb 2012, 14:35
My reason to request no audio was different.
Worms video makers (http://wormtube.worms2d.info/) using your program to generate video source clips will not necessarily want to add in-game audio to their own video projects. If they know this beforehand, they might even save space by choosing not recording it.

Either way, cheers :) KIU

Lex
1 Feb 2012, 16:09
Solemnwarning, I've done great things with your tool so far. I've made a super-easy high-compression high-quality encoding script which uses output from armageddon-recorder and encodes it to 3 highly modern formats. I suggest you (and anyone who wants to encode WA replays for YouTube, nicovideo, or non-streaming easily and well) check it out. :) It is here: http://lex.clansfx.co.uk/worms/waencode.7z. Extract it all to some directory that has plenty of space (sorry; had to work around an x264 bug), then run it. :)

Here are some examples of what I've made with it:

Mission 1 TAS:

http://dl.dropbox.com/u/35695760/wamission1-tas-1turn-6.86sec-lex.mkv

Mission 1 TAS in high quality (YUV 4:4:4 10-bit):

http://dl.dropbox.com/u/35695760/wamission1-tas-1turn-6.86sec-lex-hq.mkv

Mission 1 TAS on YouTube:

http://youtu.be/g5n_Qo2u_F8

Mission 2 TAS:

http://dl.dropbox.com/u/35695760/wamission2-tas-2turns-0.00sec-lex.mkv

Mission 2 TAS in high quality (YUV 4:4:4 10-bit):

http://dl.dropbox.com/u/35695760/wamission2-tas-2turns-0.00sec-lex-hq.mkv

Mission 3 TAS:

http://dl.dropbox.com/u/35695760/wamission3-tas-3turns-5.28sec-lex.mkv

Mission 3 TAS in high quality (YUV 4:4:4 10-bit):

http://dl.dropbox.com/u/35695760/wamission3-tas-3turns-5.28sec-lex-hq.mkv

All the videos are very well-compressed and are 1920×1080 resolution to fit on high-resolution screens. They run at the game's full frame rate of 50 fps. They play back perfectly with a relatively recent machine (from the past 3 years) and LAV Video Decoder in MPC-HC. Cueshark said even VLC can play the normal-quality ones. If you have playback issues, try installing and using LAV Video Decoder from LAV Filters. If you don't know how to set that up, google it. ;o

There are some obvious audio glitches from the recording process in armageddon-recorder. I would still like to see that "2-pass" mode implemented, where the audio recording is done separately from the video recording, to avoid these audio glitches. Your fixes so far have been amazing. Please keep it up! :D

solemnwa~1
1 Feb 2012, 16:40
I've been doing more experimenting with the aggressive syncing code, but it's still glitching on my machine. Moreso today than last night for some reason...

I'm not sure if it might be the sound API having too much latency for start/stop commands, I can't really see any way to make my code for it much smaller.

Lex
1 Feb 2012, 17:23
My suggestion is to instead, just implement a 2-pass mode. The first pass records video only and the second pass records audio only (during normal replay playback). What are your thoughts on that?

solemnwa~1
1 Feb 2012, 17:30
It presents the same problem in trying to sync 44.1kHz audio to an inaccurate <=50Hz clock, moreso since there's no clock to sync it to without the frames. I've been thinking it over more and I think it's going to have to involve some form of smoothing in combination with better sync code, to avoid distortion where each chunk of audio is cut/padded to fit the current frame count.

Cueshark
1 Feb 2012, 17:46
I just used your application solemnwa~1. Very nice result and I'm more than happy with the quality of the syncing.

Great job! Will save me a lot of time when producing worms movies in the future :)

Do you know about the IRC channel #worms? It's on the gamesurge network. Be great to see you there to discuss this and other worms related things.

solemnwa~1
1 Feb 2012, 18:22
Glad to hear it, the quality of the syncing seems a bit inconsistent, perhaps it varies depending how much delay there is on average between the frames being created and detected.

Lex
2 Feb 2012, 07:33
Your latest version of armageddon-recorder crashes almost immediately every try now. Here's the error message.

http://dl.dropbox.com/u/35695760/0000023E.png

It doesn't happen if I disable audio recording.

Have you considered releasing the source? I wouldn't want to touch the sync code, but I'm interested in looking at the encoding presets. In particular, the single-threaded lossless encoding is much slower than it could be on my 4-core 8-thread CPU. Also, I would look at using x264 for 10-bit 4:4:4 encoding. Of course, all this would be under your license, declaring what I could or couldn't do with the source. Mainly, I just want to see it for collaborative discussion with you. :)

Also, I was considering writing a page on the Worms Knowledge Base (http://worms2d.info/Software) for this tool. If you'd like to write it, go ahead. If not, I'll gladly do it. I just want to respect your wishes regarding page title, screenshot, icon, etc. If none of that matters to you, I can figure it out myself. :)

lDarKl
2 Feb 2012, 08:49
Was just gonna try this but I'm getting the exact same error as Lex. :(

solemnwa~1
2 Feb 2012, 15:11
For those who aren't in IRC, another update: armageddon-recorder.exe (http://www.solemnwarning.net/armageddon-recorder.exe)

Lex
2 Feb 2012, 15:57
Highly recommended! Also, come one, come all to #worms (http://worms2d.info/Worms_on_GameSurge), where video encoding is a-happenin'! We (mostly solemnwarning) will make WA replay encoding better still!

That version has very good audio sync for me. With my latest test, I can't tell that my resulting video isn't actually in-game. It looks and sounds perfect. Of course, that's when watching the lossless rgb encode.

lDarKl
2 Feb 2012, 17:55
The new release (and some help from Lex) fixed it for me. I'm amazed at how smooth this works, really nice work sir! :D

StepS
2 Feb 2012, 18:17
Great job man, keep it up! :D

raffie
2 Feb 2012, 21:44
After an initial crash, it somehow worked for me now, and the result is amazing, very good job!

Right now I can't use a Project-X replay though unfortunately. The error message reads:
Format error: Cannot play game file "C:\thefilename.wagame"

franz
2 Feb 2012, 23:39
should I wait until final version comes out? this tool sounds great ^^ but it looks like new version comes out many times

solemnwa~1
3 Feb 2012, 01:07
I'm not sure when there'll be a "final" version, there's still plenty of improvements to make to this one yet.

Speaking of which: armageddon-recorder.exe (http://www.solemnwarning.net/armageddon-recorder.exe)

Now has chat behaviour option and remembers last used directories in replay/video browse dialogs.

KRD
3 Feb 2012, 04:35
Yay, those chat controls include the option to disable the phone! Very neat.

It's all working great for me now, under the circumstances. The circumstances being that I can't actually record any audio because my sound drivers won't let me, but that's out of your hands. :confused:

StepS
3 Feb 2012, 13:56
Right now I can't use a Project-X replay though unfortunately. The error message reads:
Format error: Cannot play game file "C:\thefilename.wagame"

it will not work with PX, because PX omits the screenshooting feature (it extends to the Export Video too). As Entuser said, "it is hard to fix", maybe due to the 32-bit rendering.
Disable PX temporarily when using armageddon recorder.

As about recorder's side, there could be a temporary workaround: rename wkPX.dll before recording, and then rename it back when WA is closed :D

PS: the wkb article (http://worms2d.info/Armageddon_Recorder) has been added. Everyone feel free to adjust to it.

raffie
3 Feb 2012, 14:50
it will not work with PX, because PX omits the screenshooting feature (it extends to the Export Video too). As Entuser said, "it is hard to fix", maybe due to the 32-bit rendering.
Disable PX temporarily when using armageddon recorder.
As about recorder's side, there could be a temporary workaround: rename wkPX.dll before recording, and then rename it back when WA is closed :D

I think u misunderstand, it works fine with PX installed, it just doesn't work when loading a PX-enabled replay. I'm not sure wether the application starts wa.exe to capture the replays or wormkit.exe. I'd say if WormKit is disregarded it is quite logical that replays that use Project-X won't work.

StepS
3 Feb 2012, 14:59
I think u misunderstand, it works fine with PX installed, it just doesn't work when loading a PX-enabled replay. I'm not sure wether the application starts wa.exe to capture the replays or wormkit.exe. I'd say if WormKit is disregarded it is quite logical that replays that use Project-X won't work.

it wouldn't work anyway. Yes, it uses WA.exe instead of WormKit.exe to record, but if you also use WormKitDS (http://worms2d.info/WormKitDS), then you will see that it's not possible.
So, probably, the recorder should aim at renaming the PX DLL rather than forcing running WA.exe (think of RubberWorm or others?), because it's the only one who is making bad things here.
What about the executable, the Recorder should use the one from the registry value for "Export Video" - this will allow WormKit users to record the rubberworm (etc.) videos properly.
Or maybe it would be better to be able to choose the executable of the game (WA.exe or WormKit.exe) in the options of Recorder. And as the default, put the one from the registry value said above (if for some reason it doesn't exist - use WA.exe).

Lex
3 Feb 2012, 16:53
With the latest release of armageddon-recorder supporting ZMBV (efficient lossless video codec by the DosBox devs), I have updated and improved my WA video encoding script extremely. It's now even easier to use and doesn't have the hard drive space problem the old script had. All you do is put a lossless ZMBV+FLAC video called "wadump.mkv" into the same directory and run the script. It will encode 2 very small and high-quality videos automatically using the provided tools. :)

My user-friendly WA video encoding script can be found here, along with its necessary tools: http://lex.clansfx.co.uk/worms/waencode.7z

Also, if you want to upload WA video to YouTube, it should be noted that the newly-added and highly efficient ZMBV codec works with YouTube perfectly. Simply use ZMBV as the video codec and FLAC as the audio codec and YouTube will handle it as well as it can. :)

edit: It turns out that when I wrote this post, I somehow didn't know that ZMBV does not work with YouTube perfectly. I'm sorry for the misinformation I've given. Ideally, use ZMBV as a processing format, then use x264 to encode to convert to lossless h264 except for color conversion to YUV 4:2:0.

solemnwa~1
21 Feb 2012, 13:04
It's been a while since I last posted here, but the development hasn't (completely) stopped: armageddon-recorder.exe (http://www.solemnwarning.net/armageddon-recorder.exe)

2-pass audio recording is now implemented and mostly works, feedback on any replays it doesn't work with would be appreciated.

raffie
21 Feb 2012, 15:56
Do u think you could enable WormKit module-enabled replays like for games that use Rubberworm and/or Project-x? All the games I play have some modules enabled (mostly PX), so as much as I would love to use this neat tool, I can't!

solemnwa~1
21 Feb 2012, 21:41
It already does (untested)

raffie
22 Feb 2012, 08:52
It already does (untested)

Well slap my ass and call me Sally , I shall have to test that for you then when I get home!

StepS
22 Feb 2012, 14:11
It already does (untested)

This will not work with Project X enabled, as, like I already said, Project X breaks compatibility with screenshooting and exporting video due to the direct x 32-bit rendering. I'm not sure if this is ever going to be fixed or not, so right now Armageddon Recorder should rename wkPX.dll before recording, and then rename it back when the recording is done. A warning should pop up saying that PX needs to be temporarily disabled.
As for loading WormKit modules, it's fine that it's off by default, but I'd like to clarify some things.
First, there's not only WormKit that can be used to load modules, but also WormKitDS (http://worms2d.info/WormKitDS) which makes it possible for WA.exe itself to load modules (without modifying WA.exe). It has a turn-off option. A command-line parameter /nowk has to be used if you want to temporarily disable WormKitDS.
So it should be as follows:

if "Load WormKit modules" is disabled:
if the dsound.dll (WormKitDS's core) is present in the folder, adjust /nowk command-line parameter to the WA launch.
if the dsound.dll isn't present, just use WA.exe as usually.



if "Load WormKit modules" is enabled:
if the dsound.dll is present in the folder, use WA.exe.
if the dsound.dll isn't present, use WormKit.exe.

franpa
23 Feb 2012, 10:52
Would W:A ignore the /nowk argument if WormkitDS isn't installed too? Or would it throw up an error dialog informing the user of the inappropriate CLA?

StepS
24 Feb 2012, 05:32
Would W:A ignore the /nowk argument if WormkitDS isn't installed too? Or would it throw up an error dialog informing the user of the inappropriate CLA?

note what i said
if dsound.dll is present in the folder
dsound and px cannot have other names, otherwise they wouldn't work.
I took everything in fact

franpa
24 Feb 2012, 19:47
Yes, and if it isn't present, will W:A throw up an error saying your using invalid arguments?

As far as I know most installations of W:A by default contain a copy of dsound.dll

Sorry, I was thinking of a different dll file.

StepS
24 Feb 2012, 20:20
Yeah, it is a simple trick - WormKitDS doesn't use any modified DLLs, it loads the native dsound.dll from system32, as well as the modules. And it isn't present in the folder by default.

solemnwa~1
7 Apr 2012, 11:04
I've been busy as of late, but here's a new version (http://www.solemnwarning.net/armageddon-recorder.exe)!

Changes:


2-pass mode for audio capture/sync
WormKit and WormKitDS support
Reduced noise in first pass audio
New video/audio encoding settings


I think I'm going to work on cleaning up the code, gracefully handling errors and fixing any remaining crashes next.