Further Adventures Exploring BirdDog NDI TV Monitor for Android
My initial experiment with BirdDog NDI TV Monitor for Android on the Tivo Stream 4K turned in less than stellar results, but it did generate some interest amongst NDI users online. I accept that the Tivo device is a somewhat vintage host platform.
One person mentioned that Birddog had presented the application at NAB 2023 running on a current generation of Chromecast. I haven’t had a Chromecast since it was first introduced. It certainly is the definitive Android TV device. So, I bought a brand new Chromecast with Google TV. The very latest version capable of 4K & HDR.
This latest Chromecast has only two connectors: HDMI for connection to the TV, and USB-C for power.
Avoiding Wi-Fi
Consistent with the initial experiment, I wanted to ensure that Wi-Fi performance did not taint the result. I would need an adapter to put the Chromecast on our Ethernet network. Google offers two models of such adapters; one with micro-USB for older Chromecasts, and a newer model with USB-C (pictured.)

However, upon close examination of specs, I found that both of these support only 10/100 Mbit Ethernet. To be able to display a full-bandwidth NDI stream at 1080P60 requires around 130 Mbps. So, the Google offerings simply would not suffice.
Digging deeper, I found that C2G offers a Gigabit USB-C Ethernet adapter with power delivery. At almost $43, it was almost as the same price as the Chromecast itself. Oh, well. In for a penny, in for a pound.
Moar Power!
At first, it did not seem like this adapter was able to power the Chromecast. Connecting it inline with the power supply that came with the Chromecast, the device did not boot.
I was initially dismayed, recalling that the similar adapter for the first generation Chromecast didn’t work with other devices as I had hoped.
Thinking that it might be starved for power, I tried again using a spare 65w power supply I keep for my laptop. That combination allowed the Chromecast to boot normally.
Once booted and connected to Ethernet, I was able to disable the Wi-Fi interface. Thus I am certain that the rest of my experiment was conducted using only Ethernet.
Establishing a Baseline
With the Chromecast 4k now comfortably on my network, I decided to begin by establishing a baseline. Could it play the forensic clip directly from YouTube? The creator uploaded it in 2160p60. Would it play it at best resolution & frame rate?
As this clip plays you can see me navigate into the menu that confirms playback at 2160p60. Parking my GoPro in front of the TV hardly does this justice. The combination of the Chromecast and the TV does display the clip at 2160p60. Details are crisp and motion is smooth.
Actually, if you look very closely there is the one or two little hiccups in the motion of the sweep hands. I suspect this is the result of streaming the 4K60 clip from YouTube. The glitch appears to coincide with those moments when the device is requesting more data from the router.
My apologies for the video quality. At this time of year my office is quite dark when it’s cloudy outside. Further, there’s a skylight and a ceiling flan that leads to flickering. The GoPro on auto exposure is doing it’s best, but it’s quite noisy. The idea is not to show great video, but confirm the nature of the motion being presented.
Revisiting Full NDI 1080p60
The test setup varied a little. This time, I used a little Chromebook as the video source. It was playing the same YouTube clip of an analog frame clock with sweeping hands. Acknowledging the hardware limit of the Chromebook, the clip has been downloaded and is playing from a local file. The external display is set to 1080p60.
This allowed me to repurpose my Lenovo X1 Carbon (8th Gen i7) laptop as the host for NDI Studio Monitor, to verify the nature of the NDI stream on the network.
The clip starts after a reboot of the Chromecast. It shows me starting clip playback on the Chromebook. Then I launch NDI TV Monitor for Android and select the Birddog Mini as the source.
It’s quite easy to see the sweep movement of the clocks on the two laptops is very smooth. While the display in the TV is better than my first experiment, it’s still not 60 fps. It moves in steps. It’s a more reliable, consistent 1080p30. In fact, if you look carefully at the frame count in the lower right corner of the TV, I think it’s only displaying even frame numbers.
I let the test run for over five minutes to get some sense of the stability of the arrangement.
NDI-HX
I don’t normally concern myself with NDI-HX, the compressed variant of NDI. My impression is that NDI-HX was created to specifically address situations where it was necessary to pass something NDI-like over bandwidth limited links, most typically Wi-Fi.
Further, NDI-HX was designed to leverage existing H.264 encoders with only minor modifications to firmware. This allowed hardware companies like Sony & Panasonic to add NDI-HX connectivity to their existing line of PTZ cameras, which already has hardware H.264 encoders.
Making it easy for hardware companies to integrate into the NDI ecosystem was a way to encourage the adoption of NDI as a widespread standard, even though it’s an entirely proprietary protocol.
The compression scheme, based upon a tweaked variation of H.264, trades a little added latency for dramatically reduced bandwidth. Where full 1080p60 NDI demands 130 Mbps…an equivalent NDI-HX stream needs less than 60 Mbps.
In my past Cluecon projects I used a Kiloview N2 Portable Wireless HDMI to NDI-HX Video Encoder to provide a wireless camera over event Wi-Fi. Unfortunately, this device is not in my personal inventory.
NDI Screen Capture HX
It occurred to me that I had access to one other NDI-HX source. Newtek’s free NDI Tools suite includes a screen capture app that’s NDI-HX enabled. NDI Screen Capture HX leverages the H.264 encoder hardware (aka nvenc) on nVidia GPUs to deliver hardware accelerated encoding.
This screen capture app allowed me to experiment with sending different kinds of NDI-HX streams from my GTX-equipped desktop to the NDI TV Monitor app for Android.
While I tried 4k and 1080p60 streams, these were wholly unsuccessful. So, this example is a 1080p30 stream. Here’s the test setup:
Source:
- Desktop PC with nVidia GTX card
- Connected to 1G Ethernet
- Display set for 1080p60
- Playing YouTube clip, also 1080p60
- Screen Capture HX
- Resolution set to 1080
- Frame rate set to p30
- Bandwidth set to High
- Using H.264
Verification:
- Lenovo X1 Carbon Gen 7 (i7-8xxx)
- Connected to 1G Ethernet
- NDI Studio Monitor viewing the live NDI stream
Presentation:
- Chromecast 4K on Vizio M50
- Connected to 1G Ethernet
Observations
As ever, I start by power cycling the Chromecast. Once it’s booted and displaying something other than black, the auto-iris on the GoPro adjusts, so you can see the sweep hands on the clock face.
You can see the laptop playing the NDI stream in NDI Studio Monitor. It plays without issue. Not buttery smooth like the 1080p60 original, but about what I’d expect for p30. And utterly, unflappably stable.
You can see me navigate through the Chromecast menu, launch the Birddog app and select an NDI source. Thereafter the TV is playing the same stream as the laptop. The Birddog app initially presents a banner that includes a report of the stream size and frame rate.
The presentation on the TV is problematic. The sweep hands occasionally stutter. Also, there’s occasionally some breakup of the image. Since this is not evident on the laptop screen, it must be an artifact of the Chromecast and/or NDI TV Monitor app.
Close
After all this experimentation, I have questions. Is layering the watermark over the NDI stream is taxing on the hardware? Is the hardware built into an Android TV is more/less capable that the Chromecast 4K? What’s the proposed use case? It could be addressing a very narrow application, like digital signage, where the combination of high-resolution and low-frame rate, at lost cost, is potentially acceptable.
Yes, I have questions.

