Avdump2
Welcome to the remarkably sparse avdump2 wiki page, lovingly hand created over many minutes.
Build 3804 represents an initial public release of avd2. It represents a complete rewrite of the original avd1 code, runs against a new build of MediaInfoLibrary, contains a number of custom solutions for a number of formats, represents a significant investment of time and energy by Arokh, and is just generally nifty.
What is it
Avdump2 is a video codec identification utility - identifies which video codec and audio compression method is used on video files. Furthermore it calculates the used bit rates, the length, identifies the number of used audio channels and more.
It, like its predecessor, is mainly based on mediainfo, but significantly enhanced and changed to fit AniDB's needs by Arokh.
Supported formats
Most major file formats are supported to some degree. While hashes are created for all file types, stream details remain shakey for others (notably 'swf'). Because of that for some filetypes (underlined) only the hashes get auto-creqed. Others are supported but not allowed on AniDB (marked in italic).
- Video files: asf/wmv, avi, flv, m2ts, mkv, mov, mp4, mpg/mpeg, ogm, ogv, qt, rm/rmvb, swf, ts, webm
- Subtitle files: ass, idx, lrc, mks, smi, srt, ssa, sub, txt
- Audio files: aac, ac3, dts, flac, mka, mp3, ogg, ra, wav, wma
- Archive files: 7z, ace, rar, zip
Download
DOWNLOAD(RAR) (Build 3804) MD5 = EBD9AEA4ED6E415D436D1B7DF6F308A4
Usage
Avdump is a simple command line client:
- avdump [-<options> ...] <media file/folder> [<media file/folder> ...]
Options
Switch | Type | Description | Default | Example |
---|---|---|---|---|
ac:<username>:<udp_api_key> | Auto-creqing | Enable automatic creqing. You should always use this option when dumping anime files! Also enables error reporting. | -ac:tard:monkey | |
noerr | Auto-creqing | Disable error reporting. You should not disable this as it helps finding and fixing bugs. | -noerr | |
host:<hostname>:<port> | Auto-creqing | Hostname of AniDB UDP API server | -host:api.anidb.info:9002 | |
lport:<port> | Auto-creqing | Local UDP port used for autocreqing. Only needed when behind "strict" firewalls. | -lport:12345 | |
tout:<timeout_in_seconds>:<number_of_retries> | Auto-creqing | Timeout for sending dumps | -tout:10:3 | -tout:25:6 |
bsize:<KB_per_block>:<number_of_blocks> | Input | Buffer size for hashing. | -bsize:512:16 | |
ext:<comma separated list> | Input | Comma separated extension list. | Process all supported extensions | -ext:avi,mkv or -ext:-zip |
ms:<miliseconds> | Input | Monitor sleep duration in milliseconds. Use with -m. | -ms:60000 | -ms:120000 |
acerr:<file path/name> | Logging | Write file paths of failed dumps to file. | -acerr:acerr.txt | |
extdiff:<file path/name> | Logging | Write mismatched extensions and file paths to file. | -extdiff:extdiff.txt | |
exp:<file path/name> | Logging | Export ed2k-links to the specified file. Very useful when mass adding files. | -exp:ed2k.txt | |
done:<file path/name> | Logging | Skip paths present in log and append paths to newly processed files. | -done:done.txt | |
hlog:<file path/name> | Logging | Export hashes to file. | -hlog:"$CRC$ $ED2K$":hlog.txt | |
log:<file path/name> | Logging | Write output to file. | -log:log.txt | |
M | Output | MediaInfo dump | -M | |
X | Output | MediaInfo XML dump | -X | |
y | Output | XML creq format | -y | |
Y | Output | AVD2 creq dump | -Y | |
c | Control | Do not recurse into subfolders. | -c | |
m | Control | Monitor folder(s). Use with -ms. | -m | |
p | Control | Pause when done (hold cmd window). | -p | |
q | Control | Pause after each file. | -q | |
r | Control | Random file order. | -r | |
t | Control | Print time used for each file. | -t | |
T | Control | Print total elapsed time. | -T | |
w | Control | Suppress progress (silent). | -w | |
z | Control | Delete files after parsing. | -z | |
0 | Hashing | For CRC (because the CRC of a 0 byte file is 00000000). | -0 | |
1 | Hashing | For SHA1 (because of the 1). | -1 | |
2 | Hashing | For ED2K (because of the 2). | -2 | |
3 | Hashing | For Tiger (because a tiger in the house minimizes the Three Great Risks -- thieves, fire, and evil spirits). | -3 | |
4 | Hashing | For MD4 (because of the 4). | -4 | |
5 | Hashing | For MD5 (because of the 5). | -5 | |
6 | Hashing | For TTH ... because that's what's left :p | -6 | |
a | Hashing | All (available) hash algorithms. | -a | |
e | Hashing | Print eD2k-link. | -e | |
d | Hashing | Print AniDB link. | -d | |
D | Hashing | Open AniDB link in default browser. | -D | |
u | Hashing | Print elapsed time after hashing. | -u |
Changes From Avdump Classic
- AVD2 now runs on the managed .net platform. This will not affect most, as .net comes pre-installed with current versions of windows. XP or older may have to install the platform manually. While it has been tested on mono, such testing has not been exhaustive. We would be very interested in hearing how it behaves in such an environment.
- While most command line parameters remain the same, there are some exceptions.
- The "-o" parameter is no longer available in avd2.
- The "-n" parameter is no longer available in avd2.
- The meaning of the numeric parameters has changed.
- In the event of an internal error, AVD2 will submit an error report back to AniDB. The error report contains no user-details (see sample), but is attached to the user name supplied with the -ac parameter. While error reports are only submitted if -ac is specified, they can be disabled by the addition of the -noerr parameter. That said, for the purposes of initial testing, we respectfully request that error reports not be disabled, so bugs can be found and fixed.
Sample Exception Report
<FileExceptions> <Information> <AVDump2CLVersion>0.1.3734.0</AVDump2CLVersion> </Information> <Exceptions> <AVDump2CL.Exceptions.AVD2Exception thrownOn="20110303 05.27.26.9254"> <Message>Error in DisplayBuffer</Message> <System.ArgumentOutOfRangeException> <Message> Non-negative number required. Parameter name: totalWidth </Message> <StackTrace> <Frame> at System.String.PadHelper(Int32 totalWidth, Char paddingChar, Boolean isRightPadded) </Frame> <Frame>at l.a(f A_0, Progress A_1)</Frame> <Frame>at l.a(f A_0, Dictionary`2& A_1)</Frame> </StackTrace> </System.ArgumentOutOfRangeException> </AVDump2CL.Exceptions.AVD2Exception> </Exceptions> </FileExceptions>
Auto-creqing
Avdump2 is the AniDB auto-creqing system. Some more or less important notes:
- To be able to use this feature you’ll need an AniDB account and you have to define the UDP API Key in your profile. All data sent to the server will be logged with IP and uid.
- It is possible to run more than one instance of Avdump at once, but not more than ten will work OK. At the moment only 10 sessions per ip are allowed by the server, meaning the eleventh instance will terminate the first.
- There is no direct connection between data sent to AniDB and creqs generated. The data received will just be stored for later processing. There is no way to check the current status for a dump. Usually, it should take at least 24 hours from the moment you dump a file till the data actually changes. If any irregularities occur, or when there is too much data pending, it will take more time.
- The creqs generated will report the user who sent the data first (for a specific file) as the creqer.
- You may dump files currently not in the database. The data is still stored and will be used later if/after the file has been registered.
- Files creqed by the new system will be locked, meaning some fields will not be possible to change. Notify a moderator if you are sure that some of the data locked for a specific file is wrong.
Why didn't this file get dumped?
- The file in AniDB is registered with wrong size and/or ED2K hash.
- The package never reached the server.
- The decryption or decompression failed at server side (rare).
- The dump is not valid XML (rare).
Why isn't this file verified?
Even if the file is dumped it doesn't mean it will get auto-creqed (and verified). Here are the reasons:
- The file is corrupt/invalid (example).
- The provided data is considered "incoherent". (Indicates a bug in Avdump.)
- The dump was marked unfit for file verification by an AniDB Moderator.
Known issues
- In some cases MediaInfoLib (MIL) used by Avdump2 might report an audio stream to have 0 or 3 channels.
- Anamorphic .asf/.wmv and .mpg/.mpeg files might not get detected correctly and will report the PAR instead of the DAR.
Changelog
0.1.????.? : 2001.03.?? - no need to redump everything
- fixed the bug that caused avdump2 not to retry sending a dump when facing a timeout
- video-only mp4 files got wrongly detected as m4v
- automatic detection of 32/64bit and use of the correct mediainfolib
- check of mediainfolib version to prevent the usage of untested versions
- added -crcerr parameter to log files where the calculated crc is not found in the filename
- added -x parameter to simulate parameterless avdump1 output
- removed Tiger and MD5 checksums from dumps sent to the AniDB server
0.1.3084.0 : 2011.03.12
- initial release