Sometimes it is absolutely critical that you have your real-time video streaming without any signal interruptions. For example, your recording system cannot deal with "holes" in the video as you must sync multiple streams to the same time base. Or, your video and telemetry come from different sources and you still must have the metadata even if the video is currently not available (it is frequently interrupted because of the radio link or it does not exist at all at the beginning).
Here is when the STANAG Flywheel functionality of the KlvStreamInjector comes in handy.
The STANAG Flywheel engine synchronizes its internally generated synthetic video to the incoming video stream, so whenever stream interruption occurs the video flywheel steps in, providing video of the same profile (based on user-supplied bitmap) along with proper TS tables. KlvStreamInjector can still accept metadata packets (or generate the default ones), so your clients will continue to receive a valid video with data.
So, here is how to do this:
KlvStreamInjectorProc.exe -i udp://184.108.40.206:30120 -o udp://220.127.116.11:30122 --flywheelVideoFrameFile c:\tmp\StreamError.bmp
- -i is your source udp TS multicast stream sent over 18.104.22.168:30120
- -o is the target output stream (can be unicast or multicast)
- --flywheelVideoFrameFile specifies the location of the flywheel image from which the video will be generated.
If you want to add a default Klv info (with the dynamically incremented timestamp), just enable the default packet insertion and the required insertion interval:
KlvStreamInjectorProc.exe -i udp://22.214.171.124:30120 -o udp://126.96.36.199:30122 --flywheelVideoFrameFile c:\tmp\StreamError.bmp -p defaultPacket.bin -t 1000
- -p is a path to the default packet
- -t specifies that we want to insert the metadata every 1000 ms.