Syncing Live Video With Live Metadata (such as GPS) sources
We have a video stream with embedded metadata (KLV). We are pulling the video into evostream through udp and pushing it out through either through rtsp or HTML5 (we have not decided which yet). We are also extracting the metadata containing GPS info (latitude, longitude, altitude) using FFMPEG. FFMPEG then pushes the data to our KLV processor. We could then push the data ourselves out through web sockets to all browsers viewing the video but we currently have the issue that the meta data and video are out of sync by several seconds. If we push the metadata through evostream along with the video does evostream have the ability to sync the timestamped metadata with the video frames.
The EMS will timestamp the metadata against the video frame that is currently being processed. It cant move the metadata forward or backwards in time against the stream, partly because the EMS does not cache either video or metadata, or rather it caches as little as possible, to minimize added latency across the work flow. To add to this, the EMS is metadata format agnostic. This means that the EMS really doesnt know, or want to know, about the metadata. This gives the EMS the advantage of being able to receive KLV data, Intel VMF/UMF, images, whatever. But what this also means is that if you are passing a timestamp as part of the metadata, the EMS wont know about it. You could skip your KLV processor and just have FFMPEG push the metadata into the EMS. Or potentially skip the insertion into TS and instead push it to the EMS’s TCP acceptor.