This topic and its replies were posted before the current version of LEADTOOLS was released and may no longer be applicable.
#1
Posted
:
Sunday, December 28, 2008 4:44:51 PM(UTC)
Groups: Registered
Posts: 6
Hi, I am required to convert a live TCP stream with some KLV data from another source and stream the final output out. I use the Demo applications but not sure if I did it wrongly or misread the API...
1) LEAD Network Server to stream my desktop (with address of 192.168.199.1:27015)
2) KLV Converter (I modified such that it added in 5 KLV data every sec), source stream is tcp://192.168.199.1:27015 and target stream is tcp://192.168.199.1:111.
3) MPEG2Transport is streaming to 192.168.199.1:111 so that I can see the KLV data from the stream
4) Error is shown at MPEG2Transport - "LTMM Error: A non-blocking socket operation could not be completed immediately"
Any advise regarding this? Do I need to modify the demo codes?
Thanks!
#2
Posted
:
Tuesday, December 30, 2008 5:39:22 AM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
By default, the KLV data is not re-streamed in our demos. You must add the code that re-streams it. To do that, use the ILMMpgDmxCallback and ILMKlvParser interfaces of the LEAD MPEG2 Transport Demultiplexer to retrieve the data from the source stream. You can then add them to the target stream using the ILMKlvBuilder Interface of the LEAD MPEG2 Transport Multiplexer.
Thanks,
Maen Badwan
LEADTOOLS Technical Support
#3
Posted
:
Sunday, January 4, 2009 8:02:06 PM(UTC)
Groups: Registered
Posts: 6
Sound good to me, Right now, I am trying to reuse the VideoConferencing demo project such that when i start the server, it will stream and add KLV data into the live stream. In the project, under MainForm.cs and _menuItemServerStart_Click method, i used the AxltmmCaptureCtrl object and try to initiate a LEAD MPEG2 Transport Multiplexer object.
LMMpg2MxT mpMux = (LMMpg2MxT) axCaptureCtrl.getSubObject(13);
I hit an error saying interface is not supported, i try using getSubObjectDispatch(), the same error occurred.
Can u please advise if
1) it is possible to add KLV data in live streaming applications using the ltmmCapture interface?
2) otherwise, is there any sample codes such that ltmmCapture interface can add KLV data? Should I use the exisitng ltmmCapture object or instantiate a new one?
3) is the API able to display live streaming with KLV data embedded?
Thanks!
#4
Posted
:
Monday, January 5, 2009 6:53:37 AM(UTC)
Groups: Guests
Posts: 3,022
Was thanked: 2 time(s) in 2 post(s)
Can you tell me which demo did you modify? From your post it seems you are modifying the C# Video Conferencing demo, is this correct? Also, which version of LEADTOOLS v15 or v16 are you using?demo?
#5
Posted
:
Monday, January 5, 2009 4:16:58 PM(UTC)
Groups: Registered
Posts: 6
Hi, I am using C# Video Conferencing demo project in v16. Also, I am trying to add in KLV data while capturing live streaming. Thanks a lot!
#6
Posted
:
Wednesday, January 7, 2009 4:28:16 PM(UTC)
Groups: Registered
Posts: 6
Hi Team,
Can u please advise if
1) it is possible to add KLV data in live streaming applications using the ltmmCapture interface? is there any sample codes such that ltmmCapture interface can add KLV data? Should I use the exisitng ltmmCapture object or instantiate a new one?
2) is the API able to display live streaming with KLV data embedded?
Regards.
#7
Posted
:
Thursday, January 8, 2009 3:27:21 AM(UTC)
Groups: Registered
Posts: 6
I am not too familiar with the API. Does LEAD MPEG2 Transport Multiplexer's ltmmCapture which stream live using StartCapture() method, can also use WritePrivateData()? How should ILMKlvBuilder interface should be called through ltmmCapture?
#8
Posted
:
Thursday, January 8, 2009 7:40:54 AM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
First, you are trying to use our video conferencing demos which use the network filters. These do not use MPEG2 transport and do not support klv. You need to use the UDP filters. Basically, you need to modify MPEG2 Transport demos, NOT the conferencing demos.
You can find the MPEG2 Transport demo on the following folder on your machine:
[LEADTOOLS Multimedia 16]\Examples\Ltmm\Dotnet\CS\MPEG2Transport
About displaying server live streaming with KLV data, you should be able to set the targetformat to ltmmCapture_TargetFormat_MPEG2_TRANSPORT and set the targetfile to udp://....
The new transport multiplexor will allow you to manually add KLV.
Please provide me with details about what exactly you are trying to do, so that I can provide you with the information that you need.
Thanks,
Maen Badwan
LEADTOOLS Technical Support
#9
Posted
:
Tuesday, January 13, 2009 7:28:10 PM(UTC)
Groups: Registered
Posts: 6
Hi,
I would like to embed some KLV data to a live stream. I can do it either these 2 ways
a) Use LtmmCapture to do live capture and encode KLV at the same time
b) Firstly, do LtmmCapture to live capture to stream out using network filter. Second, get the stream and use LtmmConvert to encode KLV. Then, the end result is stream out to a different port
For (a), i have tried to code using UDP filters for the MPEG2 transport to do the streaming but i could not locate the LMUDPSnk or LMUPSrc libraries in the evaluation package v16. So I attempted with (b).
This is what I tested using v16 demos but in C++ for a standalone desktop...
1) Launch Net Server with these settings
Video Device: LEAD Screen Catpure (2.0)
Audio Device: None
Pre-defined Settings: H264 128K Frames/Second Most Important
Video Compressor: LEAD H264 Encoder (4.0)
Audio Compressor: LEAD AMR Encoder
Connection: Default (192.168.199.1:27015)
2) Launch KLV Converter with these settings
Source: tcp://192.168.199.1:27015
Target: tcp://192.168.199.1:8501
Audio Compressor: LEAD MPEG Audio Encoder (2.0)
Video Compressor: LEAD MPEG2 Encoder (3.0)
Processing Filters (Video & Audio) : Nothing
Conver Streams: Audio and Video are checked
3) Launch MPEG2Transport with these settings
Open Stream: tcp://192.168.199.1:8501 (Omitted Network card)
I hit an error message, "LTMM Error: A non-blocking socket operationcould not be completed immediately." If my source is an normal avi file in KLV Converter, it can be converted to add KLV data and stream out in MPEG2Transport successfully.
It would be great if you can provide the following
i) A simple MPEG2 Transport demo which can do live capture using LEAD MPEG2 Transport UDP Source and Sink filters, as well as writing private data (KLV data)
ii) Resolve the error message I have mentioned above. Do I need to configure somethings in those demos or my desktop to resolve the error?
Thanks a lot!
#10
Posted
:
Thursday, January 15, 2009 4:43:02 AM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
Please check the following demo:
[LEADTOOLS Multimedia 16]\Examples\Ltmm\Dotnet\CS\ConvertKLV
This demo shows how to use ltmmConvert object to write a KLV data.
Please try to use the same code with LtmmCapture object.
Thanks,
Maen Badwan
LEADTOOLS Technical Support
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.