Scope
This document covers the use of the Windows utility called File2rtp2. This utility reads a file and sends it via AoIP (normally as AES67 packets) to some AoIP receiver.
Description
This utility is particularly useful for sending the contents of a WAV or MP3 to a network over AoIP. This does NOT have to be used specifically for Axia. The first use of this utility was was to test sending audio from a computer running Telos Z/IPStream X/2 software to a Lawo Power Core. In theory, it could be used to send audio to any AES67 network. In this case, it was a test of a Windows virtual machines (running on VMWare) ability to reliably send audio.
File2rtp2
Download the file
Click here to download the file file2rtp2.7z and extract it to a location on your computer.
When extracting, there is a password on the file of "telos"
Example of how to use the utility
C:\Users\Administrator\Downloads>file2rtp2.exe -f "P9542.WAV" 239.192.9.195:5004 -loop -24 -b 192.168.2.24 -ptp 0 -sr 48000 -pt 96 -prio 5 -yield 0 -pkts 300

C:\Users\Administrator\Downloads> - Location of the utility.
-f "P9542.WAV" - Name of the file used for the test.
239.192.9.195:5004 - Multicast address to send the file to. Note, multiple addresses can be used to create additional streams with the same audio source.
-loop - tells File2rtp2 to continually loop the file.
-24 - bit depth of the multicast stream (not the bit depth of the source audio file).
-b 192.168.2.24 - IP address of the local network card to bind to. This is where the multicast will be sent.
-ptp 0 - File2tcp2 uses PTP snooping for accurate sending. This is the PTP clock domain. If not specified, the system clock is used.
-sr 48000 - Sample rate of the multicast stream. The source audio file has no bearing on this. The file will be sample rate converted to the rate specified here.
-pt 96 - Payload type of the multicast stream
-prio 5 - Process priority. These are Windows priority levels;
5 - Realtime
4 - High
3 - Above Normal
2 - Normal
1 - Below normal
0 - Low
-noloop - Priority setting must be set to 5 for -noloop to work. Causes the file to not loop. Will stop at the end of the file.
-yield 0 - to allow you to set the yield behavior for the busy-loop. For example -yield 0 turns off yielding of extra time to the OS
-pkts <count> - option to allow you to preload a specified number of packets of audio so it doesn't have to read from the file. Preloading packets can help with latency (file reads can be intensive).
The <count> value is multiplied by 1000, so a count of 300 (from our example) means 300,000 packets. With AES67, packets are 1ms, therefore 300,000 packets are also 300,000 ms, or 300 seconds, or five minutes. Suggest setting it to 300 (or something large) so it reads the whole file to memory. It will stop at the end of the file, so setting a packet count higher than the file is not a problem.
-wt - wait time. The default is 2000 (2 msec). The info printed on the screen will indicate what process took longer than the 2000 microseconds. If no warnings then wait time is under 2000. For example, you can see here that the "sleep" process took longer than 2000 microseconds, so it printed a message.

Windows task switching latency can be up to 10ms. So in this case, "sleep" of 3975 microseconds is of no concern. Try a setting of 1500 or 1100 if you want to see what it might be on your system. 1100 seems to be a reasonable number on a bare metal machine. VMWare, 2000 to 3000 microseconds seems more normal.
-nolog - won't log from the send loop, you'll still get other messages
-tc - Sets the send thread priority to time-critical,
Here's an example of what you'll see on the screen.
C:\Users\Administrator\Downloads>file2rtp2.exe -f "P9542.WAV" 239.192.9.195:5004 239.192.9.197:5004 -loop -24 -b 192.168.2.24 -ptp 0 -sr 48000 -pt 96 -prio 5 -yield 0 -pkts 300
file2rtp v2.0.3 (C) Ioan L. Rus, Janis Timma, TLS Corporation 2013-2022.
Options:
Clock: PTP, domain 0
File : P9542.WAV (loop)
Send : 48000 Hz, 24 bit, stereo, 48 frames per pkt
Bind : 192.168.2.24
To : 239.192.9.195:5004 239.192.9.197:5004
Prio : real-time priority
TPrio: normal
Yield: 0
Log : yes
Warn : 2000 microseconds
Load : 300000 preload packets
Info: Setting process priority class to real-time priority...
Waiting for PTP clock...
Info: New PTP clock selected, IP 192.168.2.254
Info: Update PTP clock, delta=6277133 microseconds
P9542.WAV -> (loop, 24 bit)
Info: Preloaded 218301 packets
Samples since epoch = 79090360962001, packetFirstTimestamp=2833173457
Info: elapsed=188878828 ms, samples=48, ts=2833173505, totalPackets=0...
Info: elapsed=188880843 ms, samples=96480, ts=2833269937, totalPackets=2009...
Info: elapsed=188882859 ms, samples=193248, ts=2833366705, totalPackets=4025...
Info: elapsed=188884875 ms, samples=290016, ts=2833463473, totalPackets=6041...
Info: elapsed=188886890 ms, samples=386736, ts=2833560193, totalPackets=8056...
Notes on this utility
This is provided with the hope that you will find it useful to your application. It's provided with no guarantees, warranty, or support of any kind.
Additionally, this is not Axia specific utility and therefore does not participate in other Axia services;
Streams created from this utility are not advertised via any method (Livewire Advertisement, SAP, SDP, RAV, etc).
The utility can not use Livewire for clocking. Using the system clock and sending to a Livewire network will result in synchronization issues and audio artifacts because the Livewire sync will be different from that of the computer.