#1
Posted
:
Monday, January 8, 2018 4:39:31 PM(UTC)
Groups: Registered
Posts: 2
I have been looking at the example MPEGTS/KLV example posted in the examples forum, and although it assembles a MPEGTS stream and KLV data stream, I cannot seem to be able to decode this stream using any of the KLV tools available. Using a 3rd party decoder, I can extract and see the two streams.
I have tried a couple other 3rd party products also, but other than showing the KLV PID there is no data.
Is the injected KLV data in some odd format???
Edited by moderator Thursday, January 11, 2018 8:58:09 AM(UTC)
| Reason: Not specified
#2
Posted
:
Thursday, January 11, 2018 9:10:36 AM(UTC)
Groups: Tech Support
Posts: 366
Thanks: 1 times
Was thanked: 4 time(s) in 4 post(s)
Hello,
LEADTOOLS can build and create KLV conforming to SMPTE 336M-2007. This includes support for the Universal Metadata Set, Local Metadata Set, and the Minimum Metadata Set. One example of an application of this standard is the one used for systems of type UAS (Unmanned Air System): Datalink Local Metadata Set Motion Industry Standards Board (MISB) STD 0601.5
Can you tell me more about your overall goals here? Does your application need to both read and write KLV or just write KLV?
The LEADTOOLS MPEG-2 Transport Player demo is written to parse out KLV for the Predator UAV metadata. It will receive all of the KLV LEADTOOLS finds in the incoming file or stream, but it only knows how to parse for specific keys. The KLV it can decode is put into a private data window to be displayed to the user. Have you tried using this demo also?
Walter Bates
Senior Support Engineer
LEAD Technologies, Inc.
#3
Posted
:
Thursday, January 11, 2018 8:12:32 PM(UTC)
Groups: Registered
Posts: 2
Thank you Walter, our use case is just for that purpose of taking UAS/RPAS footage and injecting KLV meta data.
I have looked at your demo V19 and that was the one I was testing with. From what I could see from the demo code, you are just manually injecting some KLV data into the frame rather than decoding an incoming stream. But unless I insert the WriteKLVData() function into the section where it is writing the PID etc, no data is inserted.
Thanks
Andrew
#4
Posted
:
Friday, January 12, 2018 9:52:45 AM(UTC)
Groups: Tech Support
Posts: 366
Thanks: 1 times
Was thanked: 4 time(s) in 4 post(s)
The Multimedia SDK has separate demos for writing KLV and parsing KLV. As I noted before, the MPEG-2 Transport Player demo parses incoming data. It doesn't care if the input is a file with KLV, a stream with KLV, or just a regular MPEG file/stream. The ConvertKLV and ConvertKLV (MMS) demos are designed to write KLV at the beginning of an output file. The KLV is written with an offset so it points to what frame it goes with. In a typical streaming case though, the KLV would be written with or near the frame it goes with. The demos that we ship do not illustrate this though since we do not have a good method of generating useful KLV on the fly. So these demo just write specific to files as an illustration.
After writing KLV, the private data stream will need to be closed. With the
MPEG-2 TS Mux interface, there is an AutoClosePrivateData property that indicates whether the toolkit will close the private data stream or the user will call ClosePrivateData(). While inserting KLV into the stream, I believe the mux will hold on to the data until the stream is closed. Then it will output the KLV data.
Walter Bates
Senior Support Engineer
LEAD Technologies, Inc.
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.