Difference between revisions of "Creating a Worms movie"
From Worms Knowledge Base
CyberShadow (Talk | contribs) m (→Exporting video frames from a replay file: fix typo) |
m (Not sure why there was that "colo" there, but I suppose it was not intended.) |
||
(12 intermediate revisions by 6 users not shown) | |||
Line 7: | Line 7: | ||
{{Warning| | {{Warning| | ||
− | The process of making a movie '''may take a considerable amount of | + | The process of making a movie '''may take a considerable amount of storage'''.<br/> |
− | If you want high quality video, please have in mind that a 10+ minutes long movie can fill a few hundred | + | If you want high quality video, please have in mind that a 10+ minutes long movie can fill a few hundred gigabytes of uncompressed raw video.<br/> |
'''You can reduce the space''' taken by raw video by compressing it to a ''lossless'' format (no quality loss saving considerable disk space) or to a ''lossy'' format (small files with noticeable loss of quality). This will be mentioned later in the article.}} | '''You can reduce the space''' taken by raw video by compressing it to a ''lossless'' format (no quality loss saving considerable disk space) or to a ''lossy'' format (small files with noticeable loss of quality). This will be mentioned later in the article.}} | ||
Line 29: | Line 29: | ||
The video extracting feature of W:A allows you to extract video frames from a replay file. Each frame is stored as a PNG file. If your replay file is named TESTVIDEO.WAgame, your video will be extracted to a User\Capture\TESTVIDEO\ folder | The video extracting feature of W:A allows you to extract video frames from a replay file. Each frame is stored as a PNG file. If your replay file is named TESTVIDEO.WAgame, your video will be extracted to a User\Capture\TESTVIDEO\ folder | ||
− | + | {{Note|The following steps can be automated (to some extent) using a Windows batch file. If you have too many replays waiting for video extraction, you should consider [[Creating a Worms movie/Batch exporting video frames|batch-exporting video frames]].}} | |
[[Image:WA_ExportVideo.png|thumb|Export Video dialog]] | [[Image:WA_ExportVideo.png|thumb|Export Video dialog]] | ||
Line 42: | Line 42: | ||
#** You may choose any resolution supported by your monitor. Otherwise, W:A will automatically fall back to a standard resolution. | #** You may choose any resolution supported by your monitor. Otherwise, W:A will automatically fall back to a standard resolution. | ||
#** For 4:3 shots, recommended values are 800x600, 1024x768 or 1280x960. | #** For 4:3 shots, recommended values are 800x600, 1024x768 or 1280x960. | ||
− | #** For 16:9 shots, recommended values are | + | #** For 16:9 shots, recommended values are 1280x720 or 1600x900. |
− | #*: | + | #*:{{Note|As you will find out later, the resolution of these video frames doesn't have to match exactly the final resolution of the video. You may use zooming techniques or change the panorama in a way only parts of the original image will be shown. It's useful if you have this planned beforehand to decide which resolution use (and save disk space in the end).}} |
#* '''Basename''': each frame will be saved using this basename value as a prefix. | #* '''Basename''': each frame will be saved using this basename value as a prefix. | ||
# Click '''Ok''' to start extracting the video. | # Click '''Ok''' to start extracting the video. | ||
#* In-game action will be captured, but you may still override the automatic camera by left-clicking and moving the mouse around if you want to focus somewhere else. | #* In-game action will be captured, but you may still override the automatic camera by left-clicking and moving the mouse around if you want to focus somewhere else. | ||
− | === Converting frames to video files with VirtualDub === | + | ==== Why not use FRAPS, or software alike, to generate video sources? ==== |
+ | FRAPS is realtime video capturing software which can be used instead of PNG sequences. Inevitably, any screen capturing software like FRAPS will be unable to capture video at the game's real frame rate (50 FPS), which will lead to skipped/duplicate frames (jerkiness) and/or framerate conversion artefacts (blur). | ||
+ | |||
+ | ''If you want the best quality'', don't use FRAPS to export video from W:A. Unless "Force lossless RGB capture" is enabled, FRAPS uses lossy compression since it needs to run in real time. Enabling "Force lossless RGB capture" and setting FRAPS to record at your video refresh rate will cause FRAPS to capture video accurately (assuming your computer is fast enough), but will also capture any duplicate frames resulting from WA's refresh rate synchronization. This is not ideal and is very error-prone. | ||
+ | |||
+ | === (Optional) Converting frames to video files with VirtualDub === | ||
+ | {{Warning|[[wikipedia:Non-linear_editing_system|NLE]]s in general (Vegas and Premiere in particular), allow importing a sequence of image files '''as a single video clip''', which can be added to a timeline and treated like a video file in itself. By doing so it takes away the need to compress those sequences to video file sources, provided that you have spare disk space available. | ||
+ | PNG files are well compressed and clips made from these will seek quickly, '''much like a very fast and very efficient codec'''. Therefore, you should consider ommiting this whole step and simply use PNG sequences as source video in your editor.}} | ||
+ | |||
Open '''VirtualDub'''. This program will let you merge every extracted video frame into a single AVI file. It also has a batch mode which will let you queue jobs in order to save multiple files in one run. | Open '''VirtualDub'''. This program will let you merge every extracted video frame into a single AVI file. It also has a batch mode which will let you queue jobs in order to save multiple files in one run. | ||
Line 63: | Line 71: | ||
# Now you must choose one of three compression methods: [[w:Lossless data compression|lossless]], [[w:Lossy compression|lossy]] or uncompressed (raw video). The following are instructions for lossless compression (recommended), but if you want to try with any of the other methods, see [[Creating a Worms movie#Video compression in VirtualDub|below]]. | # Now you must choose one of three compression methods: [[w:Lossless data compression|lossless]], [[w:Lossy compression|lossy]] or uncompressed (raw video). The following are instructions for lossless compression (recommended), but if you want to try with any of the other methods, see [[Creating a Worms movie#Video compression in VirtualDub|below]]. | ||
## Go to '''Video''' menu, choose '''Compression...'''. It will open a new dialog box. | ## Go to '''Video''' menu, choose '''Compression...'''. It will open a new dialog box. | ||
− | ## | + | ## [[Creating a Worms movie#Video compression in VirtualDub|Select and configure a video codec of your choice.]] |
− | + | ||
## Click '''Ok'''. | ## Click '''Ok'''. | ||
# Go to '''File''' menu and consider: | # Go to '''File''' menu and consider: | ||
Line 78: | Line 85: | ||
When encoding is over, you can delete the extracted frames folder(s) in User\Capture\ if you want to, as they will no be longer needed. | When encoding is over, you can delete the extracted frames folder(s) in User\Capture\ if you want to, as they will no be longer needed. | ||
+ | |||
+ | === (Optional) Converting frames to video files with ffmpeg === | ||
+ | |||
+ | # <tt>ffmpeg -r 50 -i basename_%06d.png out.mkv</tt> | ||
=== Editing === | === Editing === | ||
Line 91: | Line 102: | ||
Depending on the video editor you're using, you may have more than one AVC codec available. Whatever your choice, it's best to configure it to encode in two passes. Video bitrate depends much on video resolution, and partly on the fps setting. | Depending on the video editor you're using, you may have more than one AVC codec available. Whatever your choice, it's best to configure it to encode in two passes. Video bitrate depends much on video resolution, and partly on the fps setting. | ||
− | * '''Stay with the same fps value you've been using so far.''' If you choose a different fps setting from value used to encode your exported videos, it is very likely that the movie will show artifacts, i.e. frames partially | + | * '''Stay with the same fps value you've been using so far.''' If you choose a different fps setting from value used to encode your exported videos, it is very likely that the movie will show artifacts, i.e. frames partially overlapping as if they were transparent. |
* A 800x600 movie can use an average of around 2000kbps (and peaks of 3000kbps) and remain at great quality. You should still experiment with values and decide which is the configuration that best suits your goal. | * A 800x600 movie can use an average of around 2000kbps (and peaks of 3000kbps) and remain at great quality. You should still experiment with values and decide which is the configuration that best suits your goal. | ||
{{Warning| | {{Warning| | ||
Line 101: | Line 112: | ||
== Video compression in VirtualDub == | == Video compression in VirtualDub == | ||
− | + | In order to convert your W:A frame sequences to video (the [[Creating a Worms movie#Converting frames to files with VirtualDub|second step]] of movie creation), it is recommended to compress to lossless video using the MSU Screen Capture codec. There are also other codecs you can try and use. | |
+ | |||
+ | === Example: Configuring MSU Screen Capture under VirtualDub === | ||
+ | Go to the '''Video''' menu and choose '''Compression...'''. Make sure 'MSU Screen Capture Lossless Codec' appears in the list and select it. If it doesn't, you should [http://www.compression.ru/video/ls-codec/screen_capture_codec_en.html download it, install it] and open VirtualDub again. | ||
+ | {{Note|MSU Screen Capture is possibly the best lossless codec available to compress W:A video sequences. It offers very high compression at a decent decoding speed.}} | ||
+ | '''Make sure''' you're using VirtualDub 1.9.10+, as it fixed an important problem in the AVI data that made the file unreadable in some video editors. | ||
=== Lossless alternatives === | === Lossless alternatives === | ||
Line 119: | Line 135: | ||
# Select '''x264vfw - H.264/MPEG-4 AVC codec''', and click on '''Configure'''. A new window opens. | # Select '''x264vfw - H.264/MPEG-4 AVC codec''', and click on '''Configure'''. A new window opens. | ||
#* Under '''Rate Control''', choose '''Single pass - lossless'''. | #* Under '''Rate Control''', choose '''Single pass - lossless'''. | ||
− | #: | + | #:{{Note|As explained above, H.264 lossless will convert the video colorspace, resulting in loss of quality. However, using the "lossless" setting will ensure no further quality loss after colorspace conversion. W:A video still compresses to very small files with this setting.}} |
#* Under '''Output''', check '''VirtualDub hack'''. | #* Under '''Output''', check '''VirtualDub hack'''. | ||
# Click '''Ok''' to close. Click '''Ok''' again. | # Click '''Ok''' to close. Click '''Ok''' again. |
Latest revision as of 18:53, 8 September 2024
Creating a Worms Armageddon movie is a process that involves several steps. This article will mainly cover the technical aspects of them.
Contents
Preliminary advice
The most important thing when creating a movie is to have a clear idea of what you want it to be like. This includes having a script (a mental sketch of it may be enough, but writing down the story or timeline works even better) and having replay material available containing the moves you're planning to add to the movie. Consider and fetch the music and/or sound effects you want to use. Sometimes ideas are born out of the material you already have, sometimes you get the idea first then create or collect your material, and most of the time it's both.
In the process of making a movie, you will find yourself reviewing your idea and changing details, maybe going back to creating new replays or rewriting the script. This is a natural process that will make your final movie better and more enjoyable. Do not expect your movie to be awesome simply because you're choosing the highest frame rate or the best codec settings. Be patient, take your time and follow the steps. It will eventually come out nicely.
The process of making a movie may take a considerable amount of storage. |
Getting started
From now on, it will be assumed that you already have script and material ready. You will also need the following software:
- Worms Armageddon installed and updated.
- VirtualDub 1.9.10 (or newer), an open source video processing utility.
- One of the following:
- Adobe Premiere Pro
- Sony Vegas Pro (not Movie Studio, which is a more limited version than Vegas Pro)
- Any other timeline-based video editing software of your preference.
Getting W:A ready for video extraction
.WAgame replay files contain the gameplay you want to show in your movie. W:A will extract video frames using the same interface configuration you have chosen for in-game play. So here are a few things to have in mind before extracting video:
- Disable the background gradient (presing the Insert key in-game), because otherwise it will greatly increase your final video size. Do it unless you really need to display the background gradient, objects and clouds.
- If the replay was played online, you can disable the telephone animation that shows up when chat lines are sent. If you want to do this, open the Phone_Disable.reg registry tweak found in the Tweaks folder.
Creating the movie
Exporting video frames from a replay file
The video extracting feature of W:A allows you to extract video frames from a replay file. Each frame is stored as a PNG file. If your replay file is named TESTVIDEO.WAgame, your video will be extracted to a User\Capture\TESTVIDEO\ folder
Note: The following steps can be automated (to some extent) using a Windows batch file. If you have too many replays waiting for video extraction, you should consider batch-exporting video frames.
Repeat these instructions for every of your collected replay moments.
- Browse to the folder containing your chosen replay file.
- Right-click a replay file, then choose Export video...
- In the dialog box that opens, fill in:
- Frame skip: If you want the smoothest possible framerate, choose 1 (equals to 50FPS). A value of 2 is acceptable and it will halve used disk space, although it will cut down framerate by half (25FPS). Any higher values will noticeably drop the smoothness of animation.
- Start at/End at: fill in the start and end moments of the particular move, turn or series of turns which you want to extract.
- Resolution: Low resolutions result in smaller video files, but also show a smaller part of the action. High resolutions allow for better quality and broader perspective but take much more disk space. You should choose any resolution as long as you keep aspect ratios consistent between video files.
- You may choose any resolution supported by your monitor. Otherwise, W:A will automatically fall back to a standard resolution.
- For 4:3 shots, recommended values are 800x600, 1024x768 or 1280x960.
- For 16:9 shots, recommended values are 1280x720 or 1600x900.
Note: As you will find out later, the resolution of these video frames doesn't have to match exactly the final resolution of the video. You may use zooming techniques or change the panorama in a way only parts of the original image will be shown. It's useful if you have this planned beforehand to decide which resolution use (and save disk space in the end).
- Basename: each frame will be saved using this basename value as a prefix.
- Click Ok to start extracting the video.
- In-game action will be captured, but you may still override the automatic camera by left-clicking and moving the mouse around if you want to focus somewhere else.
Why not use FRAPS, or software alike, to generate video sources?
FRAPS is realtime video capturing software which can be used instead of PNG sequences. Inevitably, any screen capturing software like FRAPS will be unable to capture video at the game's real frame rate (50 FPS), which will lead to skipped/duplicate frames (jerkiness) and/or framerate conversion artefacts (blur).
If you want the best quality, don't use FRAPS to export video from W:A. Unless "Force lossless RGB capture" is enabled, FRAPS uses lossy compression since it needs to run in real time. Enabling "Force lossless RGB capture" and setting FRAPS to record at your video refresh rate will cause FRAPS to capture video accurately (assuming your computer is fast enough), but will also capture any duplicate frames resulting from WA's refresh rate synchronization. This is not ideal and is very error-prone.
(Optional) Converting frames to video files with VirtualDub
NLEs in general (Vegas and Premiere in particular), allow importing a sequence of image files as a single video clip, which can be added to a timeline and treated like a video file in itself. By doing so it takes away the need to compress those sequences to video file sources, provided that you have spare disk space available.
PNG files are well compressed and clips made from these will seek quickly, much like a very fast and very efficient codec. Therefore, you should consider ommiting this whole step and simply use PNG sequences as source video in your editor. |
Open VirtualDub. This program will let you merge every extracted video frame into a single AVI file. It also has a batch mode which will let you queue jobs in order to save multiple files in one run.
- Go to File menu, then choose Open video file.... It will open a file prompt.
- Browse to your User\Capture\ directory and open the folder which contains extracted video frames. Select the first frame (usually basename_000000.PNG where "basename_" is the basename value you chose when extracting video) and click Open.
- VirtualDub will automatically load and sort the frames.
- Go to Video menu, then choose Frame Rate.... It will open a dialog box.
- Choose Change frame rate to (fps). Here you will have to enter the FPS (frames per second) value of your movie, depending on the "frame skip" value you chose when extracting this video. Click OK to close the dialog box.
- With a frame skip of 1, you must enter 50. If you chose 2, the FPS value must be 25.
- Go to Video menu
- Make sure Full processing mode is selected.
- Choose Color depth..., then a window opens. In Output format (...) select Same as decompression format.
- Go to Audio menu, make sure No audio is selected.
- Now you must choose one of three compression methods: lossless, lossy or uncompressed (raw video). The following are instructions for lossless compression (recommended), but if you want to try with any of the other methods, see below.
- Go to Video menu, choose Compression.... It will open a new dialog box.
- Select and configure a video codec of your choice.
- Click Ok.
- Go to File menu and consider:
- If you are going to encode only one video file this time, choose Save as AVI... and a file save prompt will open.
- Browse to the folder where you'll place your raws, then enter a file name.
- Hit Save and the program will start encoding the file.
- If you are planning to encode more than one video, then choose Queue batch operation and inside Save as AVI.... It will open a file save prompt.
- Browse to the folder where you'll place your raws, then enter a file name.
- Hit Save.
- Repeat steps 1, 2 and 8 for each extracted video sequence. The settings will be remembered for every video as long as you don't close VirtualDub.
- When you're done, go to File menu, then choose Job control.... A new window will open.
- Hit the Start button. The program will start encoding every video file.
- If you are going to encode only one video file this time, choose Save as AVI... and a file save prompt will open.
When encoding is over, you can delete the extracted frames folder(s) in User\Capture\ if you want to, as they will no be longer needed.
(Optional) Converting frames to video files with ffmpeg
- ffmpeg -r 50 -i basename_%06d.png out.mkv
Editing
In the previous step you've created the video files needed to add to your video. Now it's time to import them in your favourite video editing tool, so you will be able to organize them according to your script, add effects, etc.
Editing in Sony Vegas Pro
In Vegas Pro, simply click on the Import media... button or go to File menu, select Import then Media.... Browse to the folder where you keep your encoded video files, and select all the files that you're going to add to your movie. These will be added to your media pool, and you can drag them from there to the timeline, into any video track you make.
If you're new to Vegas Pro, it is highly recommended you look for tutorials and FAQs and read them. Learn to use the program and become familiar with its features: panning, zooming, the Trimmer, plugin effects, transitions, generated media, etc. The better you know the program, the easier and nicer editing will be.
Encoding the movie
Either if you want to preview your project or create the final video, you have to properly configure movie encoding. Currently one of the best choices is the Matroska format (.mkv), using .H264 AVC which compresses video greatly at an impressive high quality. You can also choose MP4 as format, which is a very popular AVC container.
Depending on the video editor you're using, you may have more than one AVC codec available. Whatever your choice, it's best to configure it to encode in two passes. Video bitrate depends much on video resolution, and partly on the fps setting.
- Stay with the same fps value you've been using so far. If you choose a different fps setting from value used to encode your exported videos, it is very likely that the movie will show artifacts, i.e. frames partially overlapping as if they were transparent.
- A 800x600 movie can use an average of around 2000kbps (and peaks of 3000kbps) and remain at great quality. You should still experiment with values and decide which is the configuration that best suits your goal.
When choosing the encoding resolution, you have to make sure you're using the same aspect ratio of the project. Otherwise, the video image will be stretched. |
Worms videos with an aspect ratio of 4:3 look very nice at 800x600 (or even 640x480)!
Encoding for WormTube
If you're aiming to publish your video at WormTube, it is recommended that you encode your video file using AVC in a .MP4 format, in order to allow HD video streaming in addition to SD streaming.
Video compression in VirtualDub
In order to convert your W:A frame sequences to video (the second step of movie creation), it is recommended to compress to lossless video using the MSU Screen Capture codec. There are also other codecs you can try and use.
Example: Configuring MSU Screen Capture under VirtualDub
Go to the Video menu and choose Compression.... Make sure 'MSU Screen Capture Lossless Codec' appears in the list and select it. If it doesn't, you should download it, install it and open VirtualDub again.
Note: MSU Screen Capture is possibly the best lossless codec available to compress W:A video sequences. It offers very high compression at a decent decoding speed.
Make sure you're using VirtualDub 1.9.10+, as it fixed an important problem in the AVI data that made the file unreadable in some video editors.
Lossless alternatives
There are several other lossless codecs available, such as FFV1, Lossless JPG (all of which come bundled with ffdshow); YUVSoft Lossless Video; MSU's Lossless Video (not Screen Capture); CamStudio Lossless; etc.
If you want to use any of the other lossless codecs, just select them from the Compression... window (for FFV1, HUFFYUV or Lossless JPG, you'll have to select them within ffdshow Video Codec's configuration dialog).
With default settings, some lossless codecs such as FFV1, HUFFYUV, Lossless JPG, CamStudio and YUVSoft will convert the colorspace during compression. There will be a mild quality loss because of this. In order to prevent it, you can try loading the PNG sequence in VirtualDub via an AVISynth script. |
Finally, there's H.264 lossless which does in fact lose quality when compressing W:A video regardless the colorspace settings, and this can not be prevented by the use of an AVISynth script (the colorspace will be converted regardless). For W:A video sequences, you should instead treat it as a lossy codec.
Lossy codecs
Using a lossy codec ensures that your video sources will be very small files and decode very fast, at the expense of image quality. Depending on your project or your PC, you may still want to use this method.
A recommended codec to use with VirtualDub is H.264/MPEG-4 AVC via x264vfw. Once you have it installed, follow these steps:
- Go to Video menu, choose Compression....
- Select x264vfw - H.264/MPEG-4 AVC codec, and click on Configure. A new window opens.
- Under Rate Control, choose Single pass - lossless.
Note: As explained above, H.264 lossless will convert the video colorspace, resulting in loss of quality. However, using the "lossless" setting will ensure no further quality loss after colorspace conversion. W:A video still compresses to very small files with this setting.
- Under Output, check VirtualDub hack.
- Click Ok to close. Click Ok again.
Also, there's another method to encode W:A video with H.264 without using VirtualDub.[1].
As a last resort, and if you have ffdshow installed on your system, you can try MPEG-4 ASP. It offers less quality than H.264 and sometimes worse compression, so it's not recommended.
- Go to Video menu, choose Compression.... It will open a new dialog box.
- Try encoding with MPEG-4 (XVID FOURCC) and a high average bitrate (should be higher the bigger the resolution you chose for your video).
Uncompressed video
This is not recommended, but you can use uncompressed video. It's not necessarily faster than some lossless codecs, and it may take lots of disk space. If you still want to use it:
- Make sure it's chosen by going to menu Video, then Compression.... The option (Uncompressed RGB/YCbCr) should be selected, hit Ok.
References
- ↑ Fast and simple way to encode replays (W:A devblog)