MKV ReSample

Download ReScene

ReScene is a command-line utility written in C# and requires the Microsoft .NET Framework 2.0 or greater to run. It has also been tested (thx Antioch) on the multi-platform mono framework version 1.9.1 under linux.

You can get the current source here. I'm leaving the source code for Beta 6 (the last version from the old monolithic codebase) here as well. Some of you might find it a bit easier to follow than the newer, more object oriented code.

I have also removed the information about the platform-independent C port that was previously listed here. That version has been left behind by improvements in the .NET version and has not been updated (it was functionally equivalent to ReScene .NET Beta 2). If you're interested in looking at the code anyway, you can download it here.

If you have bug reports, feature requests, questions, or just want to chat about all things rescene, you can find all the world's leading ReScene experts in our IRC channel

Reference (.NET) Version GUI (thanks to sobmorok)
ReScene .NET 1.2 (Jun 9 2010)

Changes in 1.2
  • Added support for archives with Unicode (actually UTF-8) encoded file names.
  • Fixed a bug that caused errors when reconstructing archives with extra data (or padding) in their File Blocks. Specifically, if an archive contains a file that has a packed size larger than its original size (something that shouldn't ever happen with m0 compression), older versions of ReScene would repeat the last valid buffer of data to fill the difference, resulting in CRC (and SFV) errors on the last reconstructed file. This build fills the difference with null bytes instead and does not include the extra data in the CRC calculation. Note that although this change seems to have fixed all known issues with such archives, since there's no reason for the situation to occur in the first place, there's no guarantee this fix will handle all such archives in future.
ReScene GUI 1.3.2 (Dec 5 2010)

  • .srs tab: checkbox to put sample on release folder w/o asking
  • added support with working dir
  • batch .srr tab: respects the .srs tab
  • fixes in store dialog
  • various bugfixes
ReScene .NET 1.1 (Mar 19 2010)

Changes in 1.1
  • Added -r switch to enable support for auto-locating renamed files. When this switch is used, if a file needed for reconstruction cannot be located in the input directory, the program will look for another file with the same extension and file size and attempt to use it instead.
  • Added archived file list to the output when using the -l switch.
  • Fixed a bug that caused an error when reconstructing a release that had directory structure preserved in the RAR archive. Now no attempt is made to open directories or 0-byte files during reconstruction since no data would be needed from them anyway.
ReScene GUI 1.3.1

  • Based on ReScene .NET 1.2.
  • Includes batch mode and ReSample functionality.
ReScene .NET 1.0 (Oct 14 2009)

Changes in 1.0
  • Added -p switch to enable support for saving/restoring path information to/from SRR files. During SRR creation, the -p switch will enable saving relative path information with the file names stored in the SRR. During reconstruction the -p switch will allow ReScene to re-create a sub-folder structure for the release (e.g. CD1, CD2) provided the SRR file has the paths stored.
  • Added -h switch to allow you to specify rename hints during reconstruction. If you renamed one or more of the original files after extracting them, this feature will allow you to tell ReScene the new name of the file so it can locate it and use it. Hints are given as a pair, separated by a colon (e.g. original.mkv:newname.mkv).
  • Added -y switch to assume Yes to all prompts to overwrite files.
  • Added automatic CRC checking during reconstruction. RAR files now have their stored data checked against the CRC value from the RAR header when they are rebuilt. This allows ReScene to detect and warn you if a file from which you are reconstructing is corrupt. Since this check only validates the data inside the RAR, it is still recommended you sfv check the release after reconstruction. If you do intend to sfv check, you can disable the automatic CRC check with the -u switch to make the process run a little faster.
  • Added -u switch to disable automatic CRC checking. See previous change entry for details.
  • Improved error handling for invalid commandline parameters.
  • Improved handling of invalid records in sfv files.
  • ReScene is now 'officially' released! Woo! This doesn't mean anything other that I consider it to be reliable and stable at this point (as it has been for a long time). The files you created with the Beta versions will work just fine. We'll just have real version numbers from now on...

ReScene .NET Beta 11 (Jul 18 2009)

Changes in Beta 11
  • Fixed a bug that caused an out of memory (or other unexpected) error when processing RAR files without the LARGE_BLOCK flag set on the RAR File blocks.
ReScene .NET Beta 10 (Jun 11 2009)

Changes in Beta 10
  • Fixed a bug that caused an error when running ReScene from the root of a drive.
ReScene .NET Beta 9 (Jun 1 2009)

Changes in Beta 9
  • Fixed a bug that might caused an error when creating an SRR file on a RAR set with no SFV. Specifically, if the RAR set used the new-style naming and there was only a single RAR file in the set, ReScene would return an 'index out of bounds' error.
  • Added logic to correct the case of the working directory when a cd command had been used with the wrong case. This would have resulted in the SRR file name having the incorrect case when using the -d switch.
  • Added serveral performance optimizations to code that is shared with ReSample (e.g. CRC32 calculations).
ReScene .NET Beta 8 (May 12 2009)

Changes in Beta 8
  • Added support for old-style RAR Recovery Records. Previous ReScene versions only recognized the new (NewSub) type.
ReScene .NET Beta 7 (May 10 2009)

Changes in Beta 7
  • Added support for RAR sets with no SFV. Pass the first RAR from the set to ReScene, and it will find all remaining RARs from the set.
     ex: srr release.rar
  • Added support for mutiple multiple input files (RAR or SFV) to be processed into a single SRR file.
     ex: srr releasepart1.sfv releasepart2.sfv -s *.nfo
  • Added -l switch to list info about the files contained in an SRR file
     ex: srr release.srr -l
  • Added -x switch to extract all stored files contained in an SRR file without reconstructing the RARs.
     ex: srr release.srr -x
  • Changed all file handles to use shared read-only locks when possible. This will allow ReScene to be run against read-only media or file systems. It may also allow you to open files in use by other programs (provided those programs open the files with shared locks as well)
  • Changed the way relative paths are handled. In previous ReScene versions, all paths were considered relative to the one and only input file (first argument). For example, in the command line 'c:\srr.exe d:\stuff\release.sfv -s *.nfo', when looking for .nfo files to store, ReScene would look for them in the same folder as release.sfv. It was rather counterintuitive, and is incompatible with the new ability to use multiple input files. In the new version, all relative paths are considered relative to the working directory, or if the -i switch is used, relative to the input folder. To get the equivalent behavior of the example command in the new version, you would need to use: 'c:\srr.exe d:\stuff\release.sfv -s *.nfo -i d:\stuff' or 'c:\srr.exe d:\stuff\release.sfv -s d:\stuff\*.nfo'. In most cases, use of the -i or -o swicthes should clear up any differences in the behavior between the old and new versions.
  • Removed handling for switches beginning with / to improve linux compatibility. All switches must be prefixed with - rather than / (as the documentation has always indicated)
ReScene .NET Beta 6 (Jan 31 2009)

Changes in Beta 6
  • Added support for RAR files with .001, .002, etc naming scheme.
  • Added ability to add stored files to an existing SRR file.
     ex: srr release.srr -s afile.txt
  • Added -o switch to specify output file or directory path. Can be combined with -d.
     ex: srr release.sfv -d -o c:\srrfiles
  • Added -i switch to specify input path for extracted files.
     ex: srr release.srr -i c:\extractedfiles
       -o d:\reconstructedrelease
ReScene .NET Beta 5 (Jan 17 2009)

Changes in Beta 5
  • Fixed a bug that would cause the RAR block parser to enter an infinite loop if a block header is corrupted. Rare case, but I fixed it anyway.
  • Updated the Usage info (-? switch) with better syntax guide, examples, and a version message.
ReScene .NET Beta 4 (Jan 14 2009)

Changes in Beta 4
  • Fixed a bug that saved incorrect file name length in stored files in certain situations. Specifically, if the SFV file name was a different length than the other stored file name(s), the lengths of the other stored file name(s) would be wrong in the header. (thanks to BudSmoker for alerting me to the problem)
ReScene .NET Beta 3 (Jan 12 2009)

Changes in Beta 3
  • Fixed a bug in the SFV parser that didn't handle empty/undersized lines correctly.
  • Added a check for unknown flags in SRR file blocks. The application will now warn if it encounters a flag it doesn't understand.
  • Added a generating application name field to the SRR header block. Now that there is more than one application, this will tell you which one created a given SRR
  • Added -s switch to allow for storing arbitrary (e.g. .nfo) files in the SRR
  • Added -d switch to force the name of the SRR file to come from its parent directory name rather than the SFV name
ReScene .NET Beta 2 (Jan 3 2009)

Changes in Beta 2
  • Added support for rebuilding RAR Recovery Records, resulting in smaller file sizes for SRR files
ReScene .NET Beta 1 (Dec 22 2008)

Initial public release