Metadata is received but video frame metadata is not received

bfaizal

New member
Hi,

We tried NDI Streaming in webOS and we faced the similar issue. We don't have any firewall exceptions.

our case: ndi_product metadata is received but video frame metadata is not received.

0:00:00.200857500 19926 0x1a4d580 DEBUG ndireceiver src/receiver.rs:721:gstndi::receiver:<source> Received metadata at timecode 0:00:00.000000000: <ndi_tally_echo on_program="false" on_preview="false"/>
0:00:00.200874140 19926 0x1a4d580 DEBUG ndireceiver src/receiver.rs:721:gstndi::receiver:<source> Received metadata at timecode 0:00:00.000000000: <ndi_product

Please provide any suggestions on the above issue.

Detailed Logs:

0:00:00.351097700 27205 0xdc3600 DEBUG ndireceiver src/receiver.rs:580:gstndi::receiver:<source> Starting NDI connection...
0:00:00.351123800 27205 0xdc3600 DEBUG ndireceiver src/receiver.rs:584:gstndi::receiver:<source> Connecting to NDI source with NDI name 'None', URL/Address Some("10.221.44.53:5961") and URI Some("ndi://10.221.44.53:5961")
0:00:00.355911660 27205 0xe95720 DEBUG ndireceiver src/receiver.rs:688:gstndi::receiver:<source> No frame received yet, retry
0:00:00.363338440 27205 0xe95720 DEBUG ndireceiver src/receiver.rs:721:gstndi::receiver:<source> Received metadata at timecode 0:00:00.000000000: <ndi_tally_echo on_program="false" on_preview="false"/>
0:00:00.413410140 27205 0xe95720 DEBUG ndireceiver src/receiver.rs:688:gstndi::receiver:<source> No frame received yet, retry
0:00:00.463791740 27205 0xe95720 DEBUG ndireceiver src/receiver.rs:688:gstndi::receiver:<source> No frame received yet, retry
 
Does this happen using the example code from within the NDI SDK itself? Perhaps there is an issue with this rust wrapper that you're using: src/receiver.rs.
 
Hi @brianbrice
as you mentioned , we tried testing with example code provided within NDI SDK. And it worked fine for us.

Server :
./NDIlib_Send_Video_and_Audio : from example within NDI SDK

Client :
gst-launch-1.0 ndisrc ndi-name="LGWEBOSID\ (My\ Video\ and\ Audio)" url-address=10.221.44.53:5961 ! ndisrcdemux name=demux demux.video ! queue !
videoconvert ! lxvideosink




This was successful. But below is the failure case for us

Failure case : NDI file streaming does not work with client.
Server : Stream NDI source file from VLC player
Client :
gst-launch-1.0 ndisrc ndi-name="LGWEBOSID\ (My\ Video\ and\ Audio)" url-address=10.221.44.53:5961 ! ndisrcdemux name=demux demux.video ! queue !
videoconvert ! lxvideosink

On further analysis on our failure case , we could see that NDIlib_recv_capture_v3 is not able to succeed in capturing audio / video data.

let res = NDIlib_recv_capture_v3(
ptr,
&mut video_frame,
&mut audio_frame,
&mut metadata_frame,
timeout_in_ms,
);

match res {
NDIlib_frame_type_e::NDIlib_frame_type_audio => Ok(Some(Frame::Audio(
AudioFrame::BorrowedRecv(audio_frame, self),
))),
NDIlib_frame_type_e::NDIlib_frame_type_video => Ok(Some(Frame::Video(
VideoFrame::BorrowedRecv(video_frame, self),
))),
NDIlib_frame_type_e::NDIlib_frame_type_metadata => Ok(Some(Frame::Metadata(
MetadataFrame::Borrowed(metadata_frame, self),
))),
NDIlib_frame_type_e::NDIlib_frame_type_error => Err(()),
_ => Ok(None),
}



Another observation is
Success case : videotestsrc works with client

Server : gst-launch-1.0 videotestsrc ! ndisink

Client :
gst-launch-1.0 ndisrc ndi-name="LGWEBOSID\ (My\ Video\ and\ Audio)" url-address=10.221.44.53:5961 ! ndisrcdemux name=demux demux.video ! queue !
videoconvert ! lxvideosink

So any idea why videotestsrc worked with client and whereas filesrc is not working with client.
 
Back
Top