OSWMxfTool VERSION V1.5 (2010-07-29)
This product is used by...
The OSWMxfTool
The key features of this product are:
Here's the command-line interface of OSWMxfTool:
==================================================================
OSWMxfTool (Version: 1.5) (c) 2010 by Originate Software GmbH ================================================================== -USAGE_1: OSWMxfTool PFE "c:\folderA\inputFile.mxf" "c:\folderB\outputFile.mxf" fcIn fcOut -Mode:mode1,mode2,mode3... -USAGE_2: OSWMxfTool WTF "c:\folderA\WatchfolderConfig.xml" -Activation: OSWMxfTool ActivateSW -MODE param strings: StartTCUseMxfHeaderAsRef => Use the 'MXF-Header-TC' as base for output-timecode (Default: Use Essence/Frame-TC!) StartTC=hh:mm:ss/ff => Use a custom start-TC value (25fps TC!). CorrectETC => Correct Essence-TC to new LINEAR timecode based on 'StartTC'. MidnightTCWrap => 23:59:59/24 + 1 frame = 00:00:00/00; Otherwise: 24:00:00/00 Force169 => MXF-Header AND Essence: Set aspect-ratio metadata to 16:9. Force43 => MXF-Header AND Essence: Set aspect-ratio metadata to 4:3. AspectRatioUseMxfHeaderAsRef => Essence: Set aspect-ratio metadata to same value than in MXF-Header. ForceAudioTo4x16 => Convert PCM-data containers to 4 Tracks x 16 Bit ForceAudioTo8x16 => Convert PCM-data containers to 8 Tracks x 16 Bit ForceAudioTo4x24 => Convert PCM-data containers to 4 Tracks x 24 Bit ForceAudioTo8x24 => Convert PCM-data containers to 8 Tracks x 24 Bit InputAudioIgnoreChannelValidFlags => Ignore 'channel valid flags' (=try to read 8 PCM-values per sample) AddRIP => Add a 'Random Index Pack' to the output-MXF. (Not recommended) OutputWRUseTempFileMode1 => Add text-prefix 'ZZZ_' to the output-filename during MXF-writing! EnableMXFInfoOutputFile => Write an additional file with DEBUG info! (DO NOT USE IN PRODUCTION) <!> Please combine this option with: CorrectETC,ForceAudioTo8x16 <!> This tool expects an input-MXF file of the following type: Op1a IMX (MPEG-2, 30..50 MBit/s), PAL 25fps, Audio: 4x or 8x PCM Example: Config-XML to define a filesystem-folder as a "watchfolder":
<?xml
version="1.0" encoding="utf-8"
?>
<!--
============================================================================
OSWMxfTool (V1.5+): Watchfolder-Config DEMO FILE
Remarks:
1) The folder that will be monitored by the system has to be defined
in the <WatchfolderPath>-XML-node.
-Local folder syntax: C:\myFolder
-Network folder syntax (SMB): \\myServer\myFolder
1b) A watchfolder (C:\myFolder) *may* contain 1..N subfolders, p.ex:
C:\myFolder\subfolderA, C:\myFolder\subfolderB
You have to define which of these subfolders have to be monitored by this program (XML-node: <WatchfolderSubfolders>).
Example:
<WatchfolderSubfolders>
<Subfolder_0>subfolderA</Subfolder_0>
<Subfolder_1>subfolderB</Subfolder_1>
</WatchfolderSubfolders>
If the program should process the contents of the main watchfolder (<WatchfolderPath>)
you have to add a special entry:
<WatchfolderSubfolders>
<Subfolder_0>@WTF_ROOT@</Subfolder_0>
...
</WatchfolderSubfolders>
2) Up to 100 "FileGroups" can be specified (FileGroup_0 .. FileGroup_99).
The watchfolder-logic is checking each detected file for a
"FileNamePattern"-match (AND, when necessary: "SubfolderNamePattern"-match) by traversing all FileGroup_X specifications
in NUMERIC ORDER.
The first FileGroup-specification that matches, will be used to process the input-file.
2a) Regular expression examples:
a1) All files with name-pattern: *.mxl (p.ex: hello.mxf, fileA122-32.mxf)
=> RegExp: ^[\w\d\s_-]*\.mxf
a2) All files with name-pattern: ABC_1234.mxf (p.ex: ABC_0000.mxf, ABC_2222.mxf)
=> RegExp: ^ABC_\d\d\d\d\.mxf
a3) Syntax parts:
\w : "word character" (A-Z,a-z)
\d : "digit" (0-9)
\. : the "." character (needs to be "escaped" with a \, like other special-chars: * $ { } [ ] .)
[a-z] : any character in the char-set (a,b...,z).
[a-z]* : 0..N times "any character in the char-set (a,b,..,z)"
[a-z]{2,5} : 2..5 times "any character in the char-set (a,b,..,z)"
^ : The regular expression has to "hit" the beginning of the string
a4) For more info:
http://www.radsoftware.com.au/articles/regexlearnsyntax.aspx
3.) FileReadyDetectionLogic
3a) OSW.MXF-IMX.FileHasMxfFooter : MXF-file contains a valid footer;
therefore: High probability that the MXF-processing will work
3b) OSW.FileSizeNotGrowing : Checks if the size (in bytes) of the input-file
has not grown during the last 30+ seconds.
4.) "Actions":
4a) Fcn: OSW.MXF-IMX.PFE_ProcessAllFrames
FcnParam0: Mode-string(s)
REM:
4b) Fcn: OSW.CopyFile
FcnParam0: (not used)
REM: Transfer a COPY of the input-file to the output-file/location.
4c) Fcn: OSW.NoOperation
FcnParam0: (not used)
REM: No output-file is created; This action always returns "Success".
Therefore this action will invoke the fcns in the "OnSuccess"-Block.
4d) Fcn: OSW.FTPClient_Tx
FcnParam0: FTP_Host=myFtpServer.com; FTP_Username=myUserName; FTP_Password=myPwd; FTP_UseStandardProxy=false; FTP_ReadWriteTimeoutMs=600000
REM:
This fcn will try to transfer the input-file to a FTP-server.
4e) Useful 'text-variables'
e1) in XML-node <OutputFile_FileName>:
- @INPUTFILE_NAME@ : name (without extension) of input-file
- @INPUTFILE_FULLNAME@ : name (with extension) of input-file
e2) in XML-node <OutputFile_Folder>:
- @WATCHFOLDER_PATH@ : full path of main-watchfolder
- @SUBFOLDER_NAME@ : name of the subfolder where the input-file has been detected
5.) "OnSuccess", "OnFailure"
Depending on the completion status of the "Action"-fcn the watchfolder-logic
executes the additional steps that are defined in these tags.
5a) Empty-strings or missing-XML-tags mean: Do nothing!
5b) "InputFile_MoveToFolder": Do a "MOVE"-filesys-operation on this file
(=fast, but does only work within the same drive, filesystem-tree; Otherwise this operation will fail!)
5c) "InputFile_CopyToFolder": Do a "COPY"-filesys-operation on this file
(=slower, but works between 2 drives or even 2 servers)
5d) "InputFile_Delete": Run a "DELETE"-filesys-operation on this file
5e) "OutputFile_Rename": Optionally renames the output-file after the successful transfer of the
output-file into the OutputFile_Folder.
============================================================================
-->
<OSWMxfTool>
<WatchfolderConfig>
<Name>Demo
Watchfolder Config</Name>
<LogFolder>C:\OSWMxfTool\Log</LogFolder>
<RemoteCtrlPort>50000</RemoteCtrlPort>
<AutoShutdownMode>0</AutoShutdownMode>
<WatchfolderPath>C:\OSWMxfTool\Demo_Watchfolder</WatchfolderPath>
<WatchfolderSubfolders>
<Subfolder_0>@WTF_ROOT@</Subfolder_0>
</WatchfolderSubfolders>
<FileGroup_0>
<FileNamePattern>^[\w\d\s_-]*\.mxf</FileNamePattern>
<SubfolderNamePattern
/>
<FileReadyDetectionLogic>OSW.MXF-IMX.FileHasMxfFooter</FileReadyDetectionLogic>
<Action>
<Fcn>OSW.MXF-IMX.PFE_ProcessAllFrames</Fcn>
<FcnParam_0>CorrectETC,AspectRatioUseMxfHeaderAsRef,ForceAudioTo8x16,InputAudioIgnoreChannelValidFlags</FcnParam_0>
<OutputFile_FileName>@INPUTFILE_NAME@_out.mxf</OutputFile_FileName>
<OutputFile_Folder>C:\OSWMxfTool\Demo_Watchfolder_OUTPUT\OK\</OutputFile_Folder>
</Action>
<OnSuccess>
<InputFile_MoveToFolder
/>
<InputFile_CopyToFolder
/>
<InputFile_Delete>true</InputFile_Delete>
</OnSuccess>
<OnFailure>
<InputFile_MoveToFolder>C:\OSWMxfTool\Demo_Watchfolder_OUTPUT\NOK</InputFile_MoveToFolder>
<InputFile_CopyToFolder
/>
<InputFile_Delete>false</InputFile_Delete>
</OnFailure>
</FileGroup_0>
<FileGroup_1>
<FileNamePattern>^[\w\d\s_-]*\.xml</FileNamePattern>
<SubfolderNamePattern>subfolderB</SubfolderNamePattern>
<FileReadyDetectionLogic>OSW.FileSizeNotGrowing</FileReadyDetectionLogic>
<Action>
<Fcn>OSW.CopyFile</Fcn>
<FcnParam_0
/>
<OutputFile_FileName>@INPUTFILE_FULLNAME@</OutputFile_FileName>
<OutputFile_Folder>C:\OSWMxfTool\Demo_Watchfolder_OUTPUT\OK\</OutputFile_Folder>
</Action>
<OnSuccess>
<InputFile_CopyToFolder
/>
<InputFile_Delete>true</InputFile_Delete>
</OnSuccess>
<OnFailure>
<InputFile_MoveToFolder>C:\OSWMxfTool\Demo_Watchfolder_OUTPUT\NOK\</InputFile_MoveToFolder>
</OnFailure>
</FileGroup_1>
</WatchfolderConfig>
</OSWMxfTool>
Option: OSWMxfTool_Admin_UI (web/silverlight-based): Displays/ controls the activity of 1..N OSWMxfTool-agent-EXEs. ![]() Interested? Please contact Originate Software GmbH for additional information and license cost.
|
|||||||||||||||||