New version of Lenkeng HDMI over IP extender – LKV373A (Update 6. sep 2019)

Last week I’ve got the new version of Lenkeng HDMI extender – LKV373A. This version states incompatibility with previous version and usage of new HDbitT protocol so I was wondering what did Chinese engineers invent this time.

This blog is a log of my findings as they went through time. If you want a short review of the device watch this video from OpenTechLab (thank you!):

If you want to know more, just read the blog.

Getting the stream

After plugging HDMI input into sender and connecting sender directly with notebook, I saw following packets in tcpdump:

11:06:02.781619 IP 192.168.1.238.5004 > 239.255.42.42.5004: UDP, length 1328
 11:06:02.781892 IP 192.168.1.238.5004 > 239.255.42.42.5004: UDP, length 1328
 11:06:02.782172 IP 192.168.1.238.5004 > 239.255.42.42.5004: UDP, length 1328
 11:06:02.782542 IP 192.168.1.238.5004 > 239.255.42.42.5004: UDP, length 1328
 11:06:02.782775 IP 192.168.1.238.5004 > 239.255.42.42.5004: UDP, length 1328
 11:06:02.783042 IP 192.168.1.238.5004 > 239.255.42.42.5004: UDP, length 1328

This was a great news because so heavy multicast traffic means a lot of data (most probably video) and no need to send control packets to start the stream.

So I started vlc and set udp://@239.255.42.42:5004 as input. Some choppy video appeared, but it was unusable and following errors were appearing in console:

Invalid UE golomb code
 [h264 @ 0x7f73c4ce78e0] cbp too large (3199971767) at 74 44
 [h264 @ 0x7f73c4ce78e0] error while decoding MB 74 44
 [h264 @ 0x7f73c4d76920] mb_type 535 in P slice too large at 18 41
 [h264 @ 0x7f73c4d76920] error while decoding MB 18 41
 [h264 @ 0x7f73c4d2f100] mb_type 264 in P slice too large at 78 32
 [h264 @ 0x7f73c4d2f100] error while decoding MB 78 32
 [h264 @ 0x7f73c4ce78e0] dquant out of range (-270) at 10 13
 Invalid UE golomb code
 [h264 @ 0x7f73c4d76920] cbp too large (3199971767) at 74 44
 [h264 @ 0x7f73c4d76920] error while decoding MB 74 44
 [h264 @ 0x7f73c4ce78e0] error while decoding MB 10 13
 [h264 @ 0x7f73c4cd35c0] cbp too large (540) at 35 16
 [h264 @ 0x7f73c4cd35c0] error while decoding MB 35 16
 [h264 @ 0x7f73c4d2f100] cbp too large (540) at 77 7
 [h264 @ 0x7f73c4d2f100] error while decoding MB 77 7
 [h264 @ 0x7f73c4d76920] dquant out of range (-270) at 44 36
 [h264 @ 0x7f73c4d76920] error while decoding MB 44 36
 [h264 @ 0x7f73c4ce78e0] mb_type 535 in P slice too large at 35 2
 [h264 @ 0x7f73c4ce78e0] error while decoding MB 35 2
 Invalid UE golomb code
 [h264 @ 0x7f73c4cd35c0] cbp too large (3199971767) at 70 44
 [h264 @ 0x7f73c4cd35c0] error while decoding MB 70 44
 [h264 @ 0x7f73c4d2f100] P sub_mb_type 7 out of range at 37 6
 [h264 @ 0x7f73c4d2f100] error while decoding MB 37 6
 [h264 @ 0x7f73c4cd35c0] dquant out of range (135) at 35 16
 [h264 @ 0x7f73c4cd35c0] error while decoding MB 35 16
 Invalid UE golomb code

So I tried to proxy video thru ffmpeg (latest compiled version)

./ffmpeg -i udp://@239.255.42.42:5004 -vcodec copy -f mpegts udp://127.0.0.1:1234

and I’ve got significantly better video in VLC (udp://@:1234).

But then I noticed in pcap, that packet length was 1328B but I knew it should  be integer multiply of 188 (typicaly 1316 bytes) if it was mpegts stream.So my next thought was: this must be RTP!

I started VLC, set input to rtp://@239.255.42.42:5004 and the result is here:

vlc_rtp


I’ve got beautifully clean stream of my other desktop. Job’s done!

Stream quality

Bitrate of the stream is quite high, about 15Mbps, but unfortunately, it doesn’t stream in FullHD, but in strange resolution 1728×1080@30fps.  If i lowered the resolution to 1280×720, I’ve got 60fps. Used codecs are H264 and mpga.

lkv373a_bitrate
lkv373a_codecs

You can stream directly to youtube with audio reencoding with this command:

ffmpeg -i udp://239.255.42.42:5004 -vcodec copy -codec:a aac -b:a 128k -f flv rtmp://a.rtmp.youtube.com/live2/<stream key>

Latency

In following videos you can compare the latency of the old and the new HDMI extender. Left monitor shows source (secondary output is fed to HDMI sender), right monitor shows HDMI receiver output and notebook shows stream captured from network.

Old extender has latency of about 100ms.

New extender is slightly slower, latency is about 400-500ms.

HDCP

All this was done with PC output without HDCP encoding. When I connected sender to a DVD player, receiver was working OK but VLC couldn’t play the stream. Although it was showing high bitrate, nothing was played. If you want to examine the stream, you can look into this PCAP.

This could be possibly solved by HDMI splitter which removes HDCP encoding. I’ll update this section later when I test it.

Network

The device acquires its IP address from DHCP. If there is no DHCP server in the network, it sets default IP 192.168.1.238 as you can see in first tcpdump.

Builtin web interface allows only firmware upgrade. There are some signs (in commented parts of the page) it could set some stream parameters. I’ll investigate this later and update.

Price

You can buy the sender for about 40$ with shipping which is really not bad price for “HDMI to RTP” converter. On the other side, I don’t recommend you to buy the receiver. You can buy other more capable device (e.g. Raspberry PI) which can do the same job for less money or better. Well, you can buy it, if you want to save yourself from some fun with building it 🙂

This time it was not much about hacking, I’d say it was more discovering. I hope you liked my post and will give some feedback. Looking forward for it.

Let’s stream!

Update 12. jun 2016

I’ve got my own sender yesterday. These are new findings.

When I tried to use the sender the same way I used the borrowed one, it was not working. So I started with the first thing: capturing packets:

11:18:45.134036 IP 10.1.0.99.5004 > 239.255.42.42.5004: UDP, length 1316
11:18:45.134287 IP 10.1.0.99.5004 > 239.255.42.42.5004: UDP, length 1316
11:18:45.134542 IP 10.1.0.99.5004 > 239.255.42.42.5004: UDP, length 1316
11:18:45.134787 IP 10.1.0.99.5004 > 239.255.42.42.5004: UDP, length 1316
11:18:45.135133 IP 10.1.0.99.5004 > 239.255.42.42.5004: UDP, length 1316
11:18:45.135394 IP 10.1.0.99.5004 > 239.255.42.42.5004: UDP, length 1316
11:18:45.135639 IP 10.1.0.99.5004 > 239.255.42.42.5004: UDP, length 1316

You can see, these packets are only 1316 bytes long what corresponds to standard mpegts encapsulation. So I tried to run VLC like this: vlc udp://@239.255.42.42:5004 and it worked:

Screenshot from 2016-06-11 11-04-36
Screenshot from 2016-06-11 11-04-43

It was a sad surprise, when I saw the resolution 1280×720. I tried to restart the device, change computer resolution but nothing helped. Btw, even when this sender uses pure mpegts, it works with the other receiver (I didn’t expect that).

Embedded webserver

Embedded webserver shows only forms for firmware upgrade:

lkv_main

There are some commented parts (everything is in data zip below if you want to see) about audio settings, but I wasn’t able to construct correct command to set anything. The webpage includes also some .js script from where I was able to construct few commands which worked:

- set audio settings (doesn't work)
http://192.168.1.238/dev/info.cgi?action=audioinfo&selaudio_type=1_AAC&selaudio_sprate=48000&selaudio_brate=256

- reboot device (works OK)
http://192.168.1.238/dev/info.cgi?action=reboot&reboot=Reboot

- set network settings (works OK)
http://192.168.1.238/dev/info.cgi?action=network&ipaddr0=10&ipaddr1=1&ipaddr2=0&ipaddr3=99&netmask0=255&netmask1=255&netmask2=255&netmask3=0&gw0=10&gw1=0&gw2=0&gw3=1

- reset to default (doesn't work)
http://192.168.1.238/dev/info.cgi?action=Reset&Reset=Reset

- this should set MAC address (untested)
http://192.168.1.238/dev/info.cgi?action=macaddr&macaddr0=yy&macaddr1=yy&macaddr2=yy&macaddr3=yy&
macaddr4=yy&macaddr5=yy

This was a dead end so I started hardware hacking.

Hardware

The mainboard contains two (probably custom made) chips. I guess one receives data from hdmi and encodes them. The other communicates over network, runs webserver and packetizes the stream. Let’s see the pictures:

PHOTO_20160611_093204
PHOTO_20160611_095005
PHOTO_20160611_094941

On the top side you can see two serial eeproms 25Q32 which are 32Mbit (4MB) flashes holding the firmware.

So I tried to extract the firmware:

PHOTO_20160611_121025

The result is in this zip.

It contains lkvm-4M.bin file downloaded from the eeprom. This file has a few sections:

  • 0x00000000 – 0x00024e03 – SMEDIA02 …….456789ABCDEF 18.02.2016 14:44:42  (encoded – some strings suggesting bootloader)
  • 0x00080000 – 0x0016ee5d – SMEDIA02 …….456789ABCDEF 28.022016 14:44:47 (encoded – probably the main firmware)
  • 0x00250000 – 0x00250200 – some zeroes with some data
  • 0x00257e00 – FAT with webroot
  • 0x00367e00 – FAT with config
  • 0x003e0000 – MAC + 2 unknown bytes

I couldn’t decode the first two sections but they seem to be a bootloader and the main code. If someone is able to help with that I’d be very thankful.

But the forth and fifth section is interesting. They both contain valid FAT partition. You can see files from both in the zip.

One contains files available via web server (webroot):
./snapshot.jpg
./jedi.rom
./info.js
./backup
./backup/B
./backup/B/iptv.ini
./jquery.min.js
./user_login.html
./backdoor.html
./devmode.html
./iptv_info.html

iptv_info is the default page with firmware upgrade. Interesting file is backdoor.html which contains two iframes, one with iptv_info and one with small_view.html which I suspect to contain forms for setting stream parameters. Unfortunately, this file (small_view.html) doesn’t exist on fat partition and it is unaccessible when requested via web (probably removed from production firmware). devmode.html allows setting device MAC address. iptv.ini holds probably default configuration. Unfortunately it doesn’t contain info.cgi which is used for setting parameters – this is probably embedded into firmware.

Second FAT partition contains only single file:
./iptv.ini – this is the actual configuration (double square brackets because of wordpress):

[[tcpip]]
dhcp                           = n
autoip                         = n
ipaddr                         = 10.1.0.99
netmask                        = 255.255.255.0
gw                             = 10.0.0.1

[video]
hdmi                           = y
cvbs                           = n
videoin_res                    = 1920x1080_60P
videoin_frate                  = 60
videoout_fhd                   = 0videoout_hd=1videoout_brate_fhd=15000
videoout_brate_hd              = 12000
videoout_brate_sd              = 4000

[audio]
audio_type                     = 0_MPEG
audio_sprate                   = 48000
audio_brate                    = 128

[[rtc]]
rtcalarm                       = y
rtcalarm_h                     = 0
rtcalarm_min                   = 0

[[stream]]
udp                            = y
rtp                            = n
multicast                      = y
unicast                        = n
mcastaddr                      = 239.255.42.42
port                           = 5004

[[uart]]
baud_rate                      = 115200

[[user]]]
devicename                     = TX_008BC0095B64
name                           = admin
pwd                            = 123456


I think this is the key! If we know how to online edit this (without writing eeprom), I could probably change videoout_fhd to 1 or change used audio coder or video bitrate.

Serial port

You can see 6 pin header in the middle of board (J4). Voltage on pins is following:

  1. 3,3V
  2. GND
  3. 0V
  4. 2,7V
  5. 3,3V
  6. 0V

I tested all pins with USB-to-Serial TTL adapter, but valid signal was only on pin 1, you can see output here:

Rd 38ee
Rd 38ee
Rd 38ee
Rd 38ee
Rd 38ee
Rd 38ee
Rd 38ee
Rd 38ee
Rd 38ee
Rd 38ee
Mem Addr (0x3a6) 0
Mem Addr (0x340) 2a45
Mem Addr (0x342) 2b8a
Mem Addr (0x344) 1121
Mem Addr (0x346) 1
Mem Addr (0x348) a2
Mem Addr (0x34a) 38ee
Mem Addr (0x34e) 0
Mem Addr (0xb4) 22f8
[MY01]REG (0x005c): 8001
Timer Init
version: 7.1.2.0.11.20160218 ������
iic clock 200000 !
HDMITX I2C Read error, reg = 02
regDeviceID:0x7
---Disable HDMITx---
(382), threshold[0][0] = 0x4da, threshold[0][1] = 0x5b3
(382), threshold[1][0] = 0x40b, threshold[1][1] = 0x4c0
(382), threshold[2][0] = 0x67, threshold[2][1] = 0x79
(382), threshold[3][0] = 0xce, threshold[3][1] = 0xf2
(382), threshold[4][0] = 0xb53, threshold[4][1] = 0x3ff
audio queue_id: 1
video queue_id: 2
MPS_COMMAND_SET_CAPTURE_DEVICE 3 mode 5
MPS_COMMAND_SET_ISP_MODE 0
channel name: AIR_CH_521_6M
--xcpu init--
cmd info addr: 0x2c1eb18
ir data buf addr: 0x2c1f720
ir data write porinter: 0x2c1e928
[MY02]REG (0x005c): 8000
[MainLoop] *irdataddr: 0x2c1f720, *irwptrddr: 0x2c1e928
[MainLoop] irwptr: 0x2c1e928, irbuf: 0x2c1f720
alloc addr: 0x2C20C88, buffer start: 0x2C20C88
tsbitrate: 23751336
after setting: 0x8001, tsoDivider: 1, oriClock: 800, tsBitRate: 80000000, tsoMBitRate: 80
tso out byte rate: 10000000 Bps, null count: 0
pcrClockSrc: 0, pcrDivider: 4
oriClock: 800, clockDivider: 5, pllClock: 160.000000
pcr clock: 40.000000
Enable Hw pcr
tso.c(199), PCR clock : 40.000000 Mhz, regVal: 0xA0
set gpio 13
start write buffer: 0x2C20C88
injectBound: 1063, tso: 10000000, period: 20, injectTime: 1800
90K value per 188 packet: 1, tick in micro: 200
pcr Pid: 0x7D1
service 0: video: 0x7D1, audio: 0x7D2
PCR Pid: 0x7D1 is video pid
9919 Block = 1, (0)
change device ID(3)
Htotal = 2200, Vtotal = 1125, w = 1920 h = 1080, res = 6, fps = 4
Htotal = 2200, Vtotal = 1125, w = 1920 h = 1080, res = 6, fps = 4
Fire Capture and ISP Engine Device(3)!
AV_SYNC_TIMER_INIT -- baseTime = 0
RawVTotal = 3052 MCLK_Freq = 190000.000000 framerate = 59995
dur(17) frame rate(4) = (59995)
Frame rate 4
Encode w 1280 h 720 b 12000 deinter 0 0 fps 4
AV_SYNC_DO_SYNC_INIT Vid 66  Aud 49 FR 59995 FP 16 initDiff 0
First Out Video Timestamp: 316
encoder firmware string: 7.1.2.0.11.20160218
date: 20160218
threshold byte rate: 1228800, per frame size: 20480 bytes
[Debug] Capture Error State Code = 0x704
prev: 0, new: 1
Not Pull HPD
Reset Capture and ISP Engine Device(3)!
Htotal = 1840, Vtotal = 1080, w = 1680 h = 1050, res = 15, fps = 0
Htotal = 1840, Vtotal = 1080, w = 1680 h = 1050, res = 15, fps = 0
E:/lenkeng/case_code/ITE_Extender/FINAL_720P_IPTV_ENCODER_SDK/core/task_stream_mux.c(820), video is reset
pcrClockSrc: 0, pcrDivider: 4
oriClock: 800, clockDivider: 5, pllClock: 160.000000
pcr clock: 40.000000
Enable Hw pcr
tso.c(199), PCR clock : 40.000000 Mhz, regVal: 0xA0
set gpio 13
alloc addr: 0x2C20C88, buffer start: 0x2C20C88
tsbitrate: 23751336
after setting: 0x8001, tsoDivider: 1, oriClock: 800, tsBitRate: 80000000, tsoMBitRate: 80
tso out byte rate: 10000000 Bps, null count: 0
pcrClockSrc: 0, pcrDivider: 4
oriClock: 800, clockDivider: 5, pllClock: 160.000000
pcr clock: 40.000000
Enable Hw pcr
tso.c(199), PCR clock : 40.000000 Mhz, regVal: 0xA0
set gpio 13
start write buffer: 0x2C20C88
injectBound: 1063, tso: 10000000, period: 20, injectTime: 1800
90K value per 188 packet: 1, tick in micro: 200
pcr Pid: 0x7D1
service 0: video: 0x7D1, audio: 0x7D2
PCR Pid: 0x7D1 is video pid
Fire Capture and ISP Engine Device(3)!
AV_SYNC_TIMER_INIT -- baseTime = 0
RawVTotal = 309e MCLK_Freq = 190000.000000 framerate = 59628
dur(34) frame rate(14) = (29814)
Frame rate 14
Encode w 1680 h 1050 b 13500 deinter 0 0 fps 14
AV_SYNC_DO_SYNC_INIT Vid 133  Aud 100 FR 29814 FP 33 initDiff 0
First Out Video Timestamp: 333
threshold byte rate: 1382400, per frame size: 46080 bytes
Time error -- Modified PTS : add (-33) fc 161  Cur 0 Init 33
Time error -- Modified PTS : add (-33) fc 320  Cur 0 Init 33
Time error -- Modified PTS : add (-33) fc 479  Cur 0 Init 33
Time error -- Modified PTS : add (-33) fc 638  Cur 0 Init 33
Time error -- Modified PTS : add (-33) fc 797  Cur 0 Init 33
[Debug] Capture Error State Code = 0x87c4
prev: 0, new: 1
Not Pull HPD
Reset Capture and ISP Engine Device(3)!
Htotal = 1688, Vtotal = 1066, w = 1280 h = 1024, res = 15, fps = 4
Htotal = 1688, Vtotal = 1066, w = 1280 h = 1024, res = 15, fps = 4
E:/lenkeng/case_code/ITE_Extender/FINAL_720P_IPTV_ENCODER_SDK/core/task_stream_mux.c(820), video is reset
pcrClockSrc: 0, pcrDivider: 4
oriClock: 800, clockDivider: 5, pllClock: 160.000000
pcr clock: 40.000000
Enable Hw pcr
tso.c(199), PCR clock : 40.000000 Mhz, regVal: 0xA0
set gpio 13
alloc addr: 0x2C20C88, buffer start: 0x2C20C88
tsbitrate: 23751336
after setting: 0x8001, tsoDivider: 1, oriClock: 800, tsBitRate: 80000000, tsoMBitRate: 80
tso out byte rate: 10000000 Bps, null count: 0
pcrClockSrc: 0, pcrDivider: 4
oriClock: 800, clockDivider: 5, pllClock: 160.000000
pcr clock: 40.000000
Enable Hw pcr
tso.c(199), PCR clock : 40.000000 Mhz, regVal: 0xA0
set gpio 13
start write buffer: 0x2C20C88
injectBound: 1063, tso: 10000000, period: 20, injectTime: 1800
90K value per 188 packet: 1, tick in micro: 200
pcr Pid: 0x7D1
service 0: video: 0x7D1, audio: 0x7D2
PCR Pid: 0x7D1 is video pid
Fire Capture and ISP Engine Device(3)!
AV_SYNC_TIMER_INIT -- baseTime = 0
RawVTotal = 304e MCLK_Freq = 190000.000000 framerate = 60014
dur(17) frame rate(15) = (60014)
Frame rate 15
Encode w 1280 h 720 b 13500 deinter 0 0 fps 15
AV_SYNC_DO_SYNC_INIT Vid 66  Aud 49 FR 60014 FP 16 initDiff 0
First Out Video Timestamp: 316
threshold byte rate: 1382400, per frame size: 23040 byt

I expected pin 3 or 6 to be serial RX but it didn’t respond.

Network

I scanned all TCP ports on the device and found these are open:

Starting Nmap 7.01 ( https://nmap.org ) at 2016-06-12 14:53 CEST
Nmap scan report for 10.1.0.99
Host is up (0.0047s latency).
Not shown: 65531 closed ports
PORT     STATE SERVICE
80/tcp   open  http
7000/tcp open  afs3-fileserver
7002/tcp open  afs3-prserver
9001/tcp open  tor-orport

Nmap done: 1 IP address (1 host up) scanned in 6.03 seconds

I was able to open TCP session to 7000, 7002, 9001 but the device doesn’t send any identification on any of them and doesn’t respond on any input.

Next, I’ll try on to find out how to change streamer settings via http. If you want to help, try to decrypt the firmware or analyze the webroot files to discover the protocol.

I’ll post any results later. See you.

Update 14. jun 2016

I discovered some new http urls:

- this one successfully set video bitrate but unfortunately, still no fullHD

http://192.168.1.238/dev/info.cgi?action=videoinfo&hdmi=y&cvbs=n&videoin_res=1920x1080_60P&videoin_frate=20&videoout_fhd=1&videoout_hd=0&videoout_brate_fhd=30000&videoout_brate_hd=40000&videoout_brate_sd=4000

- this one successfully set destination IP (even to unicast one) but only until device reboot :(

http://10.1.0.99/dev/info.cgi?action=streaminfo&udp=y&rtp=n&multicast=y&unicast=n&mcastaddr=239.255.43.43&port=5004

Today I’ve also got a firmware upgrade package from ebay seller. It seems it flashes iptv.ini in config partition so it might be possible to change video/audio/network settings by modifying this firmware file!

Will test it during the weekend. Stay tuned!

Update 5. jul 2016

Last days I’ve had some heavy communication with the e-bay seller about reseting the device. I managed to get a few firmware upgrade packages from him but none have reset the device configuration file to default. I also tried manually change the contents of the file in config partition but the device always screwed the content after reboot somehow. On the other side, with these changes I managed to get that full resolution I wasn’t able to get before (I don’t know how…).

So far, I haven’t tried to upgrade to the latest firmware because I’ve just got it today and meanwhile I’ve happen to damage the flash chip (it’s read-only now). So for now, I’m waiting for the replacement spi flash.

Btw, I’ve also bought a soic clip to easily flash the device:

And I use 1N4148 diode to avoid back-powering the board with programmer:

We should be able to change the config file easily by modifying firmware upgrade package and upgrading it but it seems to have checksum in last 4 bytes of the file. If you are willing to help, you can try find the algorithm used for computation of these 4 bytes:

lkv-checksum

Iptables rule

If your ffmpeg breaks after receiving zero length MPEGTS packet, try adding this iptables rule: This is not needed anymore with latest ffmpeg compiled from source.

sudo iptables -t raw -A PREROUTING -p udp -m length --length 28 -j DROP

Update 14. dec

Great news! One of my reader (huge thanks to ftp21!) has got an alternative fimware for different device but with the same chipset. I was able to flash it to my device as usual and it works! This firmware contains full settings via web interface, there is a windows app for changing settings and finally: changed destination IP PERSISTS AFTER REBOOT.

Quick howto:

  1. Install FW from usual source (folder IPTV_command_library_and_tool_20160303/TX)
  2. Connect device and your PC to the same network with DHCP
  3. Run IPTV_Control_Center.exe and hit Start Scan (your extender should be detected)
  4. Change to Tx Setup Page and select your device, you will see this:
  5. Write down the IP in right top corner.
  6. Hit Factory Reset to reset login settings to default
  7. Open Device IP in your browser and login as
    user: admin
    pass: 123456
  8. Now you should see this screen. You can set the same settings as in app here, e.g. bitrate, downscale, IP, etc.:
  9. But to set your unicast destination you need to use following URL:
    http://DEV_IP/dev/info.cgi?action=streaminfo&rtp=on&multicast=on&mcastaddr=DST_IP
    e.g.:
    http://192.168.0.87/dev/info.cgi?action=streaminfo&rtp=on&multicast=on&mcastaddr=192.168.0.227

    Maybe some other settings can be changed in this FW version too, I’ll post update when I find out more.

And it also supports more suitable resolution 1920×1090:

Update 31. jan 2017

Hi all!

turtleish (thank you turtleish, others see comments for more) discovered telnet interface in latest firmware (IPTV_command_library_and_tool_20160303/TX). You can simply reset device to factory defaults without messing with crappy Windows utility like this:

$ telnet 192.168.0.73 9999
Trying 192.168.0.73...
Connected to 192.168.0.73.
Escape character is '^]'.
==============================
========IPTV TX Server========
==============================
input>list
set_group_id        get_group_id        set_dhcp            get_dhcp           
set_uart_baudrate   get_uart_baudrate   set_static_ip       get_static_ip      
set_mac_address     get_mac_address     get_lan_status      get_hdcp           
get_video_lock      get_ip_config       set_session_key     set_device_name    
get_device_name     set_video_bitrate   get_video_bitrate   set_downscale_mode
get_downscale_mode  set_video_out_mode  get_video_out_mode  set_streaming_mode
get_streaming_mode  get_fw_version      get_company_id      factory_reset      
reboot              list                exit                
input>factory_reset
Processing factory reset!
System will reboot after few seconds!
Connection closed by foreign host.

After googling some commands, I found this manual which explains many telnet commands and features of similar device from Hall Research: http://www.hallresearch.com/files/manuals/HHD264.pdf
Product info here: http://www.hallresearch.com/page/Products/HHD264-S

There are not much more settings available compared to the web UI except one interresting command: set_session_key . This should “Set session key for encryption”. I tried to set it to zeroes but don’t have HDCP encrypted source at hand. Can someone please experiment with some default keys (0x0000, 0xffff, 0x1111, …) to see if it removes encryption with HDCP secured sources?  Thank you for all your support guys!

$ telnet 192.168.0.73 9999
Trying 192.168.0.73...
Connected to 192.168.0.73.
Escape character is '^]'.
==============================
========IPTV TX Server========
==============================
input>set_session_key
======Invalid Input - Command Format is======
set_session_key [0xhhhh(1~32)]
=============================================
input>set_session_key 0x0000
Ok
input>exit
Good Bye!!!
Connection closed by foreign host.

Update 7. apr 2017

Hi again.

Today I tested to set different session keys but I haven’t got unencrypted stream. I seems, that the key is just one of inputs into some block cipher because similar encoded blocks look different in successive encodings. Just for curiosity, these are image visualizations of unencrypted and encrypted stream. They are both made from streams with static image so there are plenty of zeroes in the stream, only time to time there is a P-frame. Guess which is which 🙂

If you want to look into binary stream dumps, here they are: https://drive.google.com/drive/u/0/folders/0B3mWuDyxrXyKczRPMFRDS1FtTGs

Update 23. may 2017

Today I submitted patch to ffmpeg which ignores zero length packets. We will see if it gets into upstream. If you want to use it now, you can compile branch “ignore-empty-udp” from my github: https://github.com/danielkucera/FFmpeg/tree/ignore-empty-udp
Here’s my bugreport, if you want to push on ffmpeg developers.

Update 20. oct 2017

ffmpeg team accepted my patch! Latest ffmpeg build works without iptables rule or stream proxying. You can download it here:

Update 6. sep 2019

In the past months, there has been a huge progress in the firmware decoding done by joel from https://opentechlab.org.uk/ and others. You can see his channel here: https://www.youtube.com/watch?v=j7JRosD_ua8&list=PLp343iRHegm7PVKeOVDAK-oJphQpN5HNC and related github thread here: https://github.com/jhol/otl-lkv373a-tools/issues/1 . You can follow what’s going on here https://freenode.logbot.info/lkv373a .There has also been some SDKs found for similar ITE chips, maybe we will see some implementation soon.

878 thoughts on “New version of Lenkeng HDMI over IP extender – LKV373A (Update 6. sep 2019)”

  1. Can more than one device receive the stream at the same time? Have multiple computers running VLC each receiving the stream from the one source?

    1. Yes. For best network performance, you should use switch with IGMP snooping to stop broadcasting the stream to whole network.

  2. What about LKV383 “HDbitT” version also sold as monoprice “bit-path”? Any plans to test it?

      1. I know this is really old, but I wish you would reconsider having a look at the LKV383. While the video capture is the same, I think it would be interesting to see somebody reverse engineer the IR tx/rx. It would be nice to see somebody be able to create an application for controlling the far end device by IR.

    1. I acquired a pair of the LKV383 HDbitT ones. The built-in webserver on the sender reports:

      Version :4.0.0.0.20160131
      Encoder Version :7.1.2.0.11.20160131

      The stream is 1316 byte packets. Running vlc udp udp://@239.255.42.42:5004 reports a 1280×720 video stream but VLC does not display anything (just a black box).

        1. Sources were a Macbook with a thunderbolt-HDMI adapter and another laptop with a VGA-HDMI converter (https://www.amazon.ca/gp/product/B017OZRCZO/ref=oh_aui_detailpage_o03_s00?ie=UTF8&psc=1) as the input – I don’t think it should have HDCP.

          As an aside, I found that the LKV383 will pass through video at 800×600, 1024×768 and 1280×800 without scaling. It accepted and converted to 1280×720 all of 1280×960, 1440×900, 1280×1024, 1680×1050 and 1920×1080. 640×480, 1152×864 and 1600×1200 produced a “Resolution not support” message.

          1. I’ve since learned that macOS will enable HDCP if the sink supports it, regardless of what the source is – so at least some of my earlier experiments would indeed have been with HDCP.

            The VGA-HDMI adapter was something like https://www.bhphotovideo.com/c/product/1263974-REG/comprehensive_ccn_vga2hd_vga_to_hdmi_converter.html and I was unable to get usable video from it as well – but who knows how it behaves.

            In any case, I was able to test with a known non-HDCP HDMI source, and streaming video to VLC worked fine.

            1. I have the same firmware (7.1.2.0.11.20160131) on my LKV383 – just curious were you able to update the firmware to one of the slightly newer versions? I want to have more control but I am wondering if those firmware target the LKV373 rather than the LKV383
              Thanks

  3. >1728×1080@30fps

    your screenshot actually shows 1728×1090 @30fps 🙁
    WTF, why would they scale in both dimensions? and more importantly could this be modified in this box firmware?

    1. + why is there interlacing on your pictures? does it really produce interlaced picture or was it the source

  4. Looks good… but what about audio support? One of the main problems for me with these types of encoder is the lack of multichannel audio support. Whilst the Lenkeng site says multichannel input is supported it also suggests that audio is down converted to stereo… is there a way to push multichannel audio through the 373A units?

  5. This is really cool. Trying to dream up a usecase but the fact it’s RTP gives it some possibilities for usage with a softswitch such as Asterisk.

  6. Nice work Dan. I’m waiting for mine to arrive in the mail and once it’s here I’m keen to have a crack at the web/config side of things.

    I find the multi/unicast option interesting. Would be nice to use it unicast.

  7. Hi,
    Great work danman! Perhaps the setting of video modes is not working because of incorrect field values in the URI? I’ve done a quick parse of the lkvm-4M.bin file through strings, and the supported framerates are given as [0,24,25,30,50,60] – in your URL, you set “20”?

    I’m waiting for my device to arrive (probably another week yet), but I’ll keep looking through the binary code to see if anything leaps out at me.

  8. Does anyone know how to get the stream to work in XBMC/Kodi? I have tried a .strm file with each of the following:
    udp://239.255.42.42:5004
    udp://239.255.42.42:5004/
    udp://@239.255.42.42:5004
    udp://@239.255.42.42:5004/

    The stream works in VLC using udp://@239.255.42.42:5004

    1. @Jake – are you using tvheadend as well? I am, and have set up the stream alongside my DVB services – it’s just another channel for me in Kodi, and works great (apart from when I have 5.1 audio being supplied – then I just get hiss).

      Here’s a guide for setting up an IPTV channel in TVH:
      https://tvheadend.org/boards/5/topics/16591?r=18031

      HTH.

      1. Thanks Neil, I will have to give it a try, I don’t currently use tvheadend. I was hoping it would be a bit easier. Also need to upgrade my switch with one that has IGMP snooping as it destroys the wireless side to my network.

    2. Make a file:
      lenkeng.strm

      Put udp://@239.255.42.42:5004 in that file.

      Open the lenkeng.strm file in Kodi 🙂

  9. @danman – my unit seemed to only output 720p as well… until I fed it a “proper” stream. Using an RPi as the input on a static screen, the 373A unit only output 720p; using a Sky+HD box I get 1080p every time.

    Now if only I could figure out how to support the 5.1 Dolby audio on input, I’d be laughing.

    1. These units seem to be VERY finicky about input format. I’m trying to feed it with a Sony A6000 at the moment.

      With the “original” 4.0.0.0 (June date, UDP default), I would get corrupted 720p video.

      Now I get 1728×1088 video. With my current network setup, I need to force it to unicast:
      wget “http://192.168.2.29/dev/info.cgi?action=streaminfo&udp=n&rtp=y&multicast=n&unicast=y&mcastaddr=192.168.2.100&port=5004”

      (while the parameter is mcastaddr, it seems to switch it to unicast that works)

      1. The following changed resolution not to 1920×1080, but to 1280×720:
        wget “http://192.168.2.29/dev/info.cgi?action=videoinfo&hdmi=y&cvbs=n&videoin_res=1920x1080_60P&videoin_frate=30&videoout_fhd=1&videoout_hd=0&videoout_brate_fhd=30000&videoout_brate_hd=40000&videoout_brate_sd=4000”

        I’ve tried changing videoin_res to multiple values with no success so far. Same for changing videoin_res to 0 (from the config file in the PKG) and videoout_res to 1920x1080P

    2. OK, found some interesting behavior with videoout_fhd:

      No matter whether this was 0 or 1, no matter what videoout_hd was set to, the bitrate always matched videoout_brate_fhd

      Setting videoout_fhd=0 and videoout_hd=1 caused me to get 1728×1088 video

      So I stopped touching videoout_hd and started trying videoout_fhd at varying values.
      0 = 1728×1088 video (display resolution of 1728×1080)
      1 = 1280×720 video (display resolution of 1280×720)
      2 = 720×480 video (display resolution of 720×480) – Note that this is NOT scaled to a 16:9 aspect ratio, it’s square pixels. I haven’t yet determined if it’s cropping or scaling the input yet.

      I suspect videoout_hd is only used when the input signal is 720p, and videoout_fhd is always used for a 1080p input.

      I am unable to change the framerate to anything but 29.97 fps – even though I’m 90% certain the camera is outputting 24p

      1. Thanks for sharing your findings. Which FW version are you on? Can you please provide flash dump? Because what you describe, doesn’t work for me… :

        1. I’m using the one in RAR format that you provided – dated November 15 or 30 I think?

        2. For some reason I can’t reply to your original comment – I don’t have a dump at the moment. However my original flash appears to have been identical to the one you dumped. In my experience, “downgrading” to the November build seems to work better.

          I have, however, observed that if you drop the bitrate way down and into 720×480 mode, you start getting frequent corrupt packets/audio dropouts. Seems to be OK in 1280×720 mode.

          Also, in your case, some of your issues MIGHT be a function of input resolution. I think the output resolution is determined based on the input resolution provided, and if the unit thinks that you have HD instead of FHD input, it may behave differently. I noticed in a few cases you had 1680×1050 and 1280×1024 inputs in the serial log?

          Probably, for certain input resolutions, videoout_hd changes settings instead of videoout_fhd… Unfortunately my current source doesn’t do anything less than 1080i – and the LKV373 does NOT like when that source is in 1080i mode.

          1. Hello Entropy512,

            I’ve just got firmware from 20160722. Would you please mind testing it? I don’t have my unit at hand at the moment. The file is on google drive with others.

      2. could you post your full working command for setting video size and bitrate? I want to setup a simple html interface to set commands (resolution, bitrate, static ip, destination) and then send to device

  10. I have just flashed the firmware upgrade package you linked onto one of my newer HDMI extenders which previsously used UDP, it now does RTP streaming.
    *hmm* need to figure out what kind of file format is used there.

  11. You got me interessted.

    But getting the LKV373A is difficult in Germany plus I’m not even sure if I can import this due to safety regularities and other stuff with electronic devices. But I could easily get a LKV372A (notice the “2” before the “A”). Do you know anything about the LKV372A that you could share with me?

    1. LKV372A doesn’t have ethernet port. It only support cat6 cables as transport medium because they have good electrical characteristics.

      1. Wait WHAT? That’s not Ethernet on the 372? Maybe that’s why it isn’t working (Well it isn’t working with itself either…)

        1. Exactly. I think they use just some amplifier to boost the signal but it will not work over network. also they claim 60m range, while with ethernet it should be 100m (per segment). It would be interesting if you can post some photo of the mainboard.

          1. I already sent it back for a return. I don’t have any CAT6 so I wasn’t even able to get it working by itself. Gonna pick up the 373A when the money credits back.

  12. Hi, are those files actually upgrades or downgrades because the stock firmware is dated 20160218 (2016-02-18) but the ones in the download are dated 20151130 (2015-11-30) and 20151028 (2015-10-28). Do you have any way of getting back to the firmware it came with?

    1. Hi,
      I’m still communicating with the seller about the firmware so I hope he will provide some more recent firmware. I also have dump from the original firmware but it needs spi programmer to restore.

    2. BTW, there doesn’t seem to be any difference between firmware versions as far as I noted.

      1. If anything, the older firmware (despite being “3.0.0.0” instead of “4.0.0.0” seems to work better.

        Flashing the 20151130 package reverts the unit to behaving similar to the one you originally used – RTP instead of UDP, and an “odd” resolution.

        Stream metadata and also the PKG file contents indicate that ITE Tech is somehow involved – http://www.ite.com.tw/ – It appears the PKG files are created with some custom tool, ITEPKG. I suspect many firmwares are basically the same but with different contents for configuration in the PKG file.

  13. Hi, running blu ray through a splitter (that is meant to strip LKV373A through a splitter (that supposedly strips HDCP) but I get either a grey screen or a resolution not supported. Anyone had any luck ?

  14. .. lol messed up previous post. Apologies!

    Hi, running blu ray through a splitter (that is meant to strip HDCP) to the LKV373A but I get either a grey screen or a resolution not supported. Anyone had any luck ?

      1. I can’t get it working at the moment, I have a Chromecast plugged into the TX box. Link light is solid but when I plug it into my computer (NetworkManager set to share the Ethernet connection) I don’t see it connecting at all. Post says it should pull DHCP.

  15. Does the firmware upgrade help with the Delay? V2 100ms was much better, also I am getting a random white noise screen randomly with v3 even with sender to receiver that I did not get with v2

  16. Hi danman,
    I got hold of the 373A v3 myself, for some reason when I plug it in it jams up the entire network! The WiFi drops off completely, other ethernet connected devices can’t communicate at all! It’s like it’s being flooded to death by the multicast traffic.
    Have you seen this yourself?
    Any ideas how I could stop it doing it? I’m thinking turning off the multicasting. I dont suppose you could show how to set it up for unicast only?
    Thanks!

      1. Thanks for the response guys. I’ll give the unicast reconfig trick a go, as I dont have anything that would snoop IGMP.
        Today I got a rather awesome HDMI splitter which does a great job stripping the HDCP off the stream, now my Sky HD box works thru it, and I can plug it into my TV AND rip the stream at the same time!
        Sweet!

          1. Hi Stu, can you please tell us the model of this splitter? the amazon page is not working anymore. Thanks!

    1. Hi.Did you ever solve this problem? I bought a 373A which had newer V3.0d software, and tried to flash Transmitter first, and now I have the same problem.
      To add, because of flooding I am almost unable to access to web interface of the device, and it won’t stream to a receiver as well.

      I tried afterwards to flash firmware to the receiver as well, but it didn’t help.

      Moreover, IPTV control center is finding a receiver, but not the transmitter.

      Before I flashed it with new firmware, everything was working.

      I tried every firmware I found here but the behaviour is the same, when connected to a router, it will start to flood all network and eventually restart the router… 🙁

      LAst firmware that I flashed was IPTV_TX_PKG_v4_0_0_0_20160427 but it didn’t help.

      Does anyone knows anu other solution, or have a newer firmware to try with?

  17. Hi,
    I received my LKV373A yesterday, but I still have to wait for my EEPROM reader/writer.
    I the meantime I’ll try to dump with my buspirate.
    Which flash did you dump exactly ?
    I will try to flash file jedi.rom on the eeprom because it might be part of an internal debricking system.

    1. He links here and makes numerous references to danman’s work – However he does not appear to be talking about the version discussed in this article, but the v2 predecessor.

      v2 was very similar to the v1 units danman covered a while ago, except the logic to trigger transmission was different. Looks like he figured out the “magic trigger” for v2.

      Quite a few people (including myself) ordered “new” units after reading danman’s original post here, and wound up getting v2 units and not v3 units. danman’s original work wouldn’t trigger transmission from the v2 units.

      1. As you say, I also received the V2 and unfortunately I did not find the firmware to load correctly, then I tried the version for v1 but after loading it the device crashed and no longer responds. Is there any way to flash the correct firmware? Where can I find the right firmware to change the functions of the V2? thank you.

  18. You mention trying pins 3 and 6 looking for serial RX. Suggest trying pin 5 or perhaps 4, remember your basics of rs232, high is idle, low is a start bit so the serial input would almost certainly have a pullup on it to stop a constant stream of NULLs that also throw a framing error or be read as a break when the stop bit didn’t appear.

    About to order one for myself so hopefully I can try it myself in a few weeks.

  19. I got my soic clip and my CH341A before I had time to try with my buspirate. It seems that my CH341A (or my USB port) does not provide enough current to power up the 25Q32 : in dmesg I had “device disconnected” when attaching the soic clip. Therefore I tried while powering the TX unit with it’s power adaptater : it works, but only if I press reset right before (probably because the firmware is already using the chip).
    Have you seen such powering problems ? Would a big capacitor solve my problem ?

    I did dump the two 25Q32 and it seems that the ASICs are doing some kind of log : the sha1sum is different between two reboots. I will try to make a binary diff to see the changes.

    1. You should unsolder and lift Vcc pin when connecting programmer to not power the main chip. You are probably getting different images because the communication is distorted by the main chip. I solved it by adding a diode on power pin, see here: https://blog.danman.eu/wp-content/uploads/2016/07/PHOTO_20160709_173349.jpg Now I can read/write the flash without desoldering it when the board is disconnected from everything (power, HDMI, net) without any problem.

      1. I had not understood that I was powering the main chips !
        Nice idea about the diode, I’ll try that.

  20. Hey great work so far, I had a question:

    “On the other side, with these changes I managed to get that full resolution I wasn’t able to get before (I don’t know how…).”

    Does that mean FullHD@60Hz? It’s not very clear what quality you’re getting with what firmware version on what version of the hdmi over ip device. What device would you recommend? And what does the latency look like (not super important to me but im wondering if the change in resolution/(firmware/)version for example changes the latency.

  21. I added a switch on the Vcc pin of the main 25Q32 , it allows me to read the flash without powering the main ASICs. Yet I still see the checksum changing between two boots. A binary diff yield strings that look like logs of the serial console.

  22. What parameters did you use to connect via serial ?
    115200 baud/s seems to be the speed but neither screen 115200 nor screen 115200 8n1 display line feed correctly.

    1. I logged my GNU Screen session with Ctrl-a then :log on, and when opening the log file with cat or vim the line feeds display correctly.

      1. Thanks for the flash dump. They differ from mine only in mac and config partition. For serial I used minicom with these settings (not sure which one did the trick):
        P – Add linefeed : Yes
        R – Line Wrap : Yes
        T – Add carriage return : Yes

  23. (Sorry for multiple posts)
    – The two jumpers (one close to the reset button, the other to the HDMI’s 25Q32) do not seem to have any effect on the serial log. They are probably something else than jumpers
    – If I plug my USB-to-serial-TTL TX pin into pin 5, the boot stops at line : ir data write porinter: 0x2c1e928. We should try to see which protocol is related to pin 5 (“I2C” appears in the serial log).
    – Having an ethernet connected does not seem to modify the serial log
    – If I unplug the ethernet flash shortly after boot, it keep on booting as if everything was normal : the binary section of the flash must be decoded and then loaded in RAM.

  24. I run a local user group and I was looking for a cheap way to include the slides into my video. I use an HDMI splitter and the LKV373a V3 to intercept the beamer signal.
    It works like Danman described it here, but sometimes I get trouble after 1 minute of video streaming.
    It seems that ffplay starts to drop large parts of the incoming packages and does not get any video frames any more.

    See for the output https://gist.github.com/arBmind/e0f63508f8036f89005574f4e6091df1

    Did anyone experienced the same issue?

    1. I’ve only seen that sort of behavior (large numbers of corrupt/dropped frames) when using extremely low bitrates and 480p

      I was using a raspi to transcode audio to AAC and video to a much lower bitrate and used the setup to livestream for 2-2.5 hours almost continuously last night – all interruptions were on the output RTMP side, not the input from the LKV373A.

      1. Nice, so either my TX unit is faulty or you were lucky. Sometimes it works here as well. But I could not figure out what is wrong. It seems to depend on the video source or the temperature.
        Playing around with VLC seems to support the fact that the frame timings are wrong which leads to synchronization issues with other streams.

  25. No luck at persisting changes anyone?

    Would be cool if the audio stream could be changed to AAC too 🙂

  26. Hey, pretty cool 🙂 Are you aware of any product that would do the same (VIDEO encoder to RTP ) but that supports full HD? I was searching also for more “professional” products but no luck 🙁

    There are many professional extenders, but my objective is to capture the stream and embed it in a software I’m writing (basically the video would be inside my app).

    If you have any idea let me know!

  27. Great job!

    I just purchased the sender . vlc is asking for a sdp file. Can you help help with the command lines you are currently using along with the versions needed?

  28. I’m getting the same – SDP required:
    A description in SDP format is required to receive the RTP stream. Note that rtp:// URIs cannot work with dynamic RTP payload format (7).

    VLC version 2.2.4 Weatherwax

    HDMI extender V3.0
    Version :4.0.0.0.20160722
    Encoder Version :7.1.2.0.11.20160722

    Does anyone know how to fix this?
    Many thanks,
    Giles.

    1. Giles, I see your version is dated 22 July. Was yours shipped with that version or did you upgrade from somewhere?

      Mine is:
      Version :4.0.0.0.20160218
      Encorder Version :7.1.2.0.11.20160218

      It works well streaming to vlc (not completely error free but the few errors dont seem to cause any problems) but ffmpeg throws errors and chokes immediately no matter what I do.

        1. Could you post the ffmpeg line you’re using? I’m guessing that the box uses an mpeg audio codec that’s not supported in FLV container, so you will have to do a bit of transcoding or try to switch to AAC using info.cgi (if it works) first.

  29. i was try like this ffmpeg -i udp://239.255.42.42:5004 -vcodec copy -codec:a aac -b:a 128k -f flv rtmp://…….
    but ffmpeg not understend codec……

    how swich to aac?

    1. You are mixing two types of notation:
      -vcodec / acodec
      -codec:a / codec:v
      You should try which one works for your version of ffmpeg.

      1. oh… Now I see I also did that… Either way, you should test which one works for you. Obviously, for me they both work.

        1. Sorry I Don’t understand what I mix? I only try recompress audio to aac . Please write all string of ffmpeg…

  30. Is there a way to minimize the latency? I’ve installed the system with the transmitter and receivers, and need to use the system to transmit live video to 20 tv’s. I’m not sure which syntax to use. I have a feeling the settings won’t be persistent?

    Thanks in advance!
    Clint

  31. Hi Dan,

    I’m using WireShark, and I’m getting a mix of UDP (length 60) and MPEG TS packets. Playing the stream in VLC as UDP, but only got black screen

    I’ve tried to access the TX Server on http://192.168.1.238/, but it’s can’t seem to find the page (I can’t ping it either)

    I’m really new to analysing packets, would you have any pointers on how I should proceed on this?

      1. Lincoln Reiss
        19. OCTOBER 2016 AT 15:33
        Thanks for your really quick reply! I’m testing with the output of a WiiU, which is HDCP-free, so I’m thinking VLC might not be able to process the packets properly?

        The MPEG TS seem to be 1358 in length, which is longer than anything I’ve read through here so far? Or maybe I’m reading it wrong?

        [21 0.006303 192.168.1.238 239.255.42.42 MPEG TS 1358 5004→5004 Len=1316]

      2. Hey Dan,

        I just purchased this unit from eBay, and I’m also getting MPEG-TS packets of length 1358 interspersed with empty UDP packets. VLC plays the video but the audio is garbage, just sounds like a fast series of ticks.

        Also, ffmpeg doesn’t recognize the stream at all. I actually get a different error message each time I try, usually:

        Could not find codec parameters for stream 0 (Video: h264 ([27][0][0][0] / 0x001B), none): unspecified size

        Could not find codec parameters for stream 1 (Unknown: none): unknown codec

        Interestingly enough, if I remove the empty UDP frames from the pcap and play it back with tcpreplay, ffmpeg no longer crashes but it also does not produce any output, it does not produce any packets on the network at all that I can see.

        If you have any insight into the audio or ffmpeg issues I’d be interested in figuring this out.

        1. Well, I solved my FFMPEG problem by just inserting an iptables rule that drops the empty packets. Now I have FFMPEG pushing the frame back out to 1920×1080 and republishing. Still no audio, although I tried a few other sources and it’s about 50/50 whether the audio works or not. Could be an audio channel/format thing with the sources. I’ll have to play around with it some more.

    1. Ok, I found the v3.0 pdf on your Google Drive, and I now have access to the TX Server. The Version and Encoder version seem to be more up to date.

      Which Version did you get the RTP stream running on natively may I ask? I might downgrade the Firmware, as I’m just looking for a 720p stream

      1. Thanks for your really quick reply! I’m testing with the output of a WiiU, which is HDCP-free, so I’m thinking VLC might not be able to process the packets properly?

        The MPEG TS seem to be 1358 in length, which is longer than anything I’ve read through here so far? Or maybe I’m reading it wrong?

        [21 0.006303 192.168.1.238 239.255.42.42 MPEG TS 1358 5004→5004 Len=1316]

          1. The TX Sender is on
            Firmware Version :4.0.0.0.20160722 and
            Encoder Version :7.1.2.0.11.20160722, which could be why it’s sending MPEG-TS instead of UDP?

          2. Thank you for testing that! I’ve tried disabling my firewall, and removing WiFi connection, etc, but haven’t gotten anywhere. But this means it must be an environment issue, so I’ll do some further testing on my side, and let you guys know if I find what the exact problem is!

  32. Hi, looking around i found multiple similar devices that had almost the exact same web interface, and the manuals to some of these referenced a “IPTV Control Center Tool”, after some searching I eventually found it on the following page http://www.foxun.com/product_detail_735.html direct link -> http://img.keyizi.com/MySpace/28/Content/1/IPTV_Control_Center.rar. I have tried it and it finds my TX device and displays all its information, I have been to scared to make any changes though as I have no way of restoring mine is something went wrong.

    1. Nice catch, man! I don’t have my TX at hand but I’ll definitely test this soon! I was hopping that the app would be able to set audio codec or destination address params but I don’t see such options there. But it still may be abe to replace the whole ini config. I’ll have to look at it closely. Thanks again!

    2. This control center check RX/TX by send an UDP packet on port 9002 with Payload “IPTV_CMD”.
      I try an UDP relay but not work with LKV 🙁

  33. Hi. I got extender LKV373. And after flashing it with 2015date firmware, i`ve lost it. Now there is no activity in wireshark, when i`m turning it on. Is there any procedure to recover it?
    Thanks/

    1. Yes, you need to buy a SPI flash programmer and suitable clip adapter and reflash with my extracted firmware.

  34. Thank you a lot. I`ll search for programmer. But i have a lower version of LKV – without “A” index in the end. At the bottom of my unit i see “Version 2.0”. Do you have extracted firmware for this one?

  35. Hi,

    I have 2 questions, if you could help me.

    1) How I can play the stream from raspberry pi?

    2) Can I put 2 LKV373A Transmitters in the same network, to stream 2 different setboxes ?

    Thanks in advance

    1. 1) I guess that with some HW accelerated player (I don’t know what people use these days… omxplayer?)
      2) Yes, but you should change IP address of one of those transmitters or use DHCP server to be able to differentiate between sources. In ffmpeg then you can do it like this: ffmpeg -i udp://[multicast-address]:port?sources=address More info here: https://www.ffmpeg.org/ffmpeg-protocols.html#udp

  36. Thank you very much for your work,
    My boxes are marked v3.0 on the sender/receiver and the sender has this version:
    Version : 4.0.0.0.20160615
    Encoder Version : 7.1.2.0.11.20160608
    I got the error:
    cannot join multicast group: No such device
    solved adding the route:
    sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
    and I had to disable my iptables (firewall) but I have quite aggressive policies so its’ ok, I’ll troubleshoot the rule blocking the traffic.
    after that the bare command:
    vlc udp://@239.255.42.42:5004
    worked well for the test I done today.
    thank you again to everybody working on this little box

    1. Hi,

      i have the same problem when running vlc udp://@239.255.42.42:5004 i get “cannot join multicast group”. And also other error. “cannot open socket”. I have disabled iptables and run your command. But unfortunately still the same error
      What can i do to solve this problem?.

      Thanks

  37. Hello,
    I bought a pair of LKV383 with ir Remote and with some experiments i can say that if pair can reacheable on the same network RX can send ir codes. I suppose that the open ports are for IR send.

  38. Thank you so much for this. I just ordered one now, and I’m very excited. So the idea- lenkeng device to USB Ethernet adapter to Raspberry Pi B
    Raspberry pi forwards UDP stream to our studio, plays out via OMXplayer. I saw that you were able to set the bitrate by:
    http://192.168.1.238/dev/info.cgi?action=videoinfo&hdmi=y&cvbs=n&videoin_res=1920x1080_60P&videoin_frate=20&videoout_fhd=1&videoout_hd=0&videoout_brate_fhd=30000&videoout_brate_hd=40000&videoout_brate_sd=4000

    I want to use HDMI source from Sony a6000 (it outputs 1080i 60fps), I am hoping that the device can downscale input to 720p 60fps and set bitrate of 2000kbps. Is this possible? Any step- by- step instructions on sending the command to device?

    1. So it came in the mail and I bricked it all in the same night =D Ordered another with 1 day shipping. I’m not sure why, but I was unable to get the video stream from it. I unhooked all internet sources, hit tcpdump and saw the network traffic, 1316 packets so I tried to put in vlc udp://@239.255.42.42:5004 and got nothing but errors. Then I set the network and disabled firewall like matteo- and now vlc would open, but no info- it just sat there. I then looked at firmware images and found the chinese guide on flashing. Set manual IP address, and was now able to point browser to firmware page. I was running a newer firmware that ended in 722, so I figured I would downgrade to the pkg ending in 612. After “upgrading” the pkg, a prompt came on to reboot the device so me being stupid, pulled the power. Now only the green light comes up and no info over tcpdump. Live and learn. Can anyone share some step by step instructions on use/ firmware flashing?

      1. New box received today and tested, it’s giving great 720p video from the udp on vlc. I hope that we can get a write up of commands that work with the device. I’m having some trouble getting the video into avconv
        avconv -i udp://239.255.42.42:5004avconv version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
        built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
        [h264 @ 0x85d340] non-existing SPS 0 referenced in buffering period
        [h264 @ 0x85d340] non-existing PPS referenced
        [h264 @ 0x85d340] non-existing PPS 0 referenced
        [h264 @ 0x85d340] decode_slice_header error
        [h264 @ 0x85d340] no frame!
        [mpegts @ 0x845920] Could not find codec parameters (Video: h264)
        [mpegts @ 0x845920] Estimating duration from bitrate, this may be inaccurate
        Guessed Channel Layout for Input Stream #0.1 : stereo
        Input #0, mpegts, from ‘udp://239.255.42.42:5004’:
        Duration: N/A, start: 554.098000, bitrate: 192 kb/s
        Program 256
        Metadata:
        service_name : AIR_CH_521_6M
        service_provider: ITE
        Stream #0.0[0x7d1]: Video: h264, 90k tbn
        Stream #0.1[0x7d2]: Audio: mp2, 48000 Hz, stereo, s16p, 192 kb/s
        I will be testing with gstreamer as soon as possible.

        1. I get those sorts of error messages with ffmpeg. Try dropping the empty packets with the iptable rule mentioned in an update near the top (it helped with my ffmpeg crashes but still have problems with video):

          Iptables rule

          If your ffmpeg breaks after receiving zero length MPEGTS packet, try adding this iptables rule:

          iptables -t raw -A PREROUTING -p udp -m length –length 28 -j DROP

          1. sudo iptables -t raw -A PREROUTING -p udp -m length –length 28 -j DROP
            [sudo] password for guideus:
            Bad argument `–length’
            Try `iptables -h’ or ‘iptables –help’ for more information.

          2. @Joshua Lee should be two dashes “-” before the second word length. I think the page blog software is converting the double dash into a longer single dash. I will try as code block:
            `iptables -t raw -A PREROUTING -p udp -m length –length 28 -j DROP`

          3. @Joshua Lee – didnt work the page comments are not accepting markup. See the command line about one third of the way down from top of page just before section “Update 14. dec”

          4. Yes, I was able to fix. Thanks for this. I was able to restream to rtmp server and was able to re-stream to udp. Wonderful device. I also found that if I set the source to 1080i, it gives fullHD (in its own strange resolution) Just trying to figure out how to set the device on the network and let my friend access the udp stream. Any info is helpful, thanks for your replies!

  39. For those suffering from some dropped packets with VLC. I found I had to increase the networking cache to between 8000ms and 16000ms. This provides about 8 to 16 seconds of video buffer, in case some udp packets get dropped. I haven’t figured out the magic formula to get VLC to ignore the dropped UDP packets entirely like you can with ffmpeg.

    vlc –network-cache 16000 udp://@239.255.42.42:5004/

    I also got the best results once I added the following splitter to the chain.

    https://smile.amazon.com/gp/product/B0089DSLMY/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1

    It seems to output a non hdcp source that this HDMI extender seems to like fairly well. Before this even with the hdmi output from the laptop being sent into the extender, video was getting corrupted. This splitter outputs a signal that the extender seems to handle better.

    Thanks for the article, @danman, saved me about $300 as I was about to buy a Magwell HDMI to USB 3.0 dongle.

    1. Hi ftp21,

      I installed that firmware and it works with my device. But I can’t login into settings page, it still shows “Login Failed, Please retry again!” Can you login with admin:123456 ?

      But what interests me more is possibility to set Unicast mode in app. Could you please get more info from your supplier, how does this work? Or get some documentation?

      Thanks for your effort!

      1. Ok i solve that problem.

        Connect with IPTV Control Center and reset to factory.

        Now user and password are admin 123456

        1. AMAZING! After reset I was able to set unicast destination and it PERSISTS after reboot! :))) Thank you!!! Will post update about this.

    2. When i open the case of RX and TX i see some unpopulated header.
      Pct-Max RX/TX have switch for resolution (????) i’ll try to connect with GND and i see changes on video output

    3. Hi, do you know what F/W your device was on originally? I’m nervous about bricking my device so I’d like to confirm it’s compatible.

      Also, do you have the original F/W or any other information?

      Thanks

      1. I have full original dump of my tx. And the device checks uploaded pkg and it won’t update unless the checksum is ok.

        1. Hi Danman,

          I’m a little confused, are you using the LKV373A or LKV383 ? Or are they the same?

          Thanks

        2. > I have 373A. 383 has IR

          Sorry to bother you (again), do you know if they use the same firmware?

          Thanks

    4. Hi! I tried the link but it does not work anymore. By chance do you have the Firmware for LKV383 Sender and receiver?

      Thanks!

        1. Will I keep the IR control on my LKV383 if I flash the latest LKV373 firmware that you have on your website?

          Thanks

  40. I updated the firmware and was able to set the iptables rule, everything is working pretty well. Very nice app as well to set bitrate and static address. Question- how can I set this device on my network and forward a port to it? I have tried all variations of: wget http://192.168.115.234/dev/info.cgi?action=streaminfo&udp=y&rtp=n&multicast=y&unicast=y&mcastaddr=192.168.115.234&port=5004

    but still nothing. It still plays from 239.255.42.42:5004 and of course I can’t forward the router port to this address. Any helpful info?

  41. Hi again, and thank you to everyone who has been working on this device. This is really promising! I wanted to share my own- I installed ffmpeg and nginx (with rtmp) onto raspberry pi (running jessie). I use ffmpeg to capture and rewrap to flv, then send to nginx for rtmp stream to share. Command: ffmpeg -i “udp://@239.255.42.42:5004 live=1” -vcodec copy -acodec libmp3lame -ar 44100 -f flv rtmp://127.0.0.1:1935/live/live
    don’t use -re, I had a problem with long delay. All in all, 1.5 second delay in final output. If anyone has a way to directly set this device on the network and forward a port to it, please let me know! I wish I knew more about rtp/udp streaming.

    1. Hi Joshua,

      you can do it vice versa. Let’s say, your public server, where you will have your nginx is 1.2.3.4. You can set extender to stream to 1.2.3.4:5004. Then you will run ffmpeg on that server like: ffmpeg -i “udp://@:5004 live=1” -vcodec copy -acodec libmp3lame -ar 44100 -f flv rtmp://127.0.0.1:1935/live/live . And you are done. You don’t need to “connect from server to extender”. You can set your extender to stream directly to you server.

          1. wget “http://192.168.115.234/dev/info.cgi?action=streaminfo&rtp=on&multicast=on&mcastaddr=192.168.115.235:5004” doesn’t work, command sends fine: wget “http://192.168.115.234/dev/info.cgi?action=streaminfo&rtp=on&multicast=on&mcastaddr=192.168.115.235:5004”
            –2016-12-18 18:30:12– http://192.168.115.234/dev/info.cgi?action=streaminfo&rtp=on&multicast=on&mcastaddr=192.168.115.235:5004
            Connecting to 192.168.115.234:80… connected.
            HTTP request sent, awaiting response… 200 OK
            Length: 172
            Saving to: ‘info.cgi?action=streaminfo&rtp=on&multicast=on&mcastaddr=192.168.115.235:5004’

            100%[======================================>] 172 –.-K/s in 0s

            2016-12-18 18:30:12 (15.3 MB/s) – ‘info.cgi?action=streaminfo&rtp=on&multicast=on&mcastaddr=192.168.115.235:5004’ saved [172/172]

            But output still is udp://@239.255.42.42:5004
            Any clues?

          2. Sorry for delay, updates to the comments don’t show up in my email and I’ve been experimenting with openwrt on raspberry pi using my home network. I’m hoping to get a travel sized broadcast encoder using the lenkeng device, a network switch, and raspberry pi with bonded cellular modems. The last part is the hardest. (Atleast for me) I can confirm that the lenkeng device is working great to send video directly to server, I was able to stream across the network to our studio in Ohio. Please, if you can find the time, add an update to show all commands for the device. I am hoping to get some help to make a simple html page that someone can put all their broadcast settings, then save to bin/ash script on openwrt. This could then send this commands to lenkeng whenever it starts up. I can’t thank you enough for this development. These devices have many pending applications.

          3. Glad to read that. Maybe one tip for you… you could possibly use some generic router with USB (e.g. TP-Link they have many such) which supports OpenWRT. You would save one device in that case.

          4. I finalized my design idea to use just the raspberry pi and the encoder, then wifi for other devices to connect (to set the stream destination, etc) but I’m still working on the link aggregation. I wish there was a simple step by step guide for the raspberry pi on openwrt. I thought to use a compatible router but skipped due to size.

      1. In this example, is nginx necessary as I would assume ffmpeg is utilising port 1935 and sharing the rtmp stream? I’ve cracked the first part of this, so upgrading the firmware, unicasting to an arbitrary IP and viewing this via VLC, but my end desire is to make the stream available in Plex, TVHeadend or Emby. Any tips or pointers on getting this working?

        1. No, ffmpeg is remuxing and publishing it to rtmp server.
          Tvheadend should be able to receive the original multicast output and stream it to clients (eventually transcode).

  42. Hi Ftp21, do you upgrade fw on LKV383 or LKV383A?
    Thanks a lot to you for your discovery and to Danman!

    1. Hi,
      Do you live in Italy? If so can you tell me which model are you using and if you found it locally?
      I ask because I just ordered mine from the ebay seller suggested by danman (Amazing work BTW. Danman!) but it will take more than a month to arrive so i was wondering if it’s possible to buy it at decent price locally (I stress “at decent prices” because local resellers sell the 36$ model at more than 100€ …so unfair).
      Thanks.

    1. I guess they won’t provide it unless you are a big contractor buying dozens of their chips. But I’ll keep my fingers crossed for you 🙂

  43. Hi again Dan,

    I’ve just tried to follow the steps for your latest update (14 Dec), but I’ve had some issues. I’ve updated BOTH the Encoder Firmware and PKG Firmware, and set my ethernet IP back to auto (DHCP). But the IPTV isn’t finding anything, and I’m unsure what IP the Web server will be on now? Is there a way to restore the factory settings on the 373A, because I really hope I haven’t bricked these… Thank you for your help so far 🙂

    1. Ok, using Wireshark, I found the IP Source. I then changed my IPv4 settings to use that address as the default gateway. This let me access the IPTV web server on that address. But I still can’t rest username and password, as the IPTV Tool won’t detect the TX

          1. try to disable all other network adapter. one created by virtualbox blocked the tool from detecting my TX unit.

            1. I have the same problem. I deactivated all my network devices but my ethernet one, deactivated firewall, tryied with both V2 and V3, none is found by IPTV neither V2 or V3.

              Has anyone solved he problem ?

  44. Do all of the ‘firmware updates’ being discussed here to open the full web ui require a physical flash, or are there options via the web interface that will achieve the same with the recent developments? thanks, James

      1. Perfect, thank you for confirming this. I have received the following model: HSV373 with a v2.0 designation printed to the back, it looks identical to the LKV373. I have an LKV373A on order, but this will take some time to arrive, the HSV373 is with me now.

        Would you have any idea which device this is most close to? The 373A perhaps? Which firmware would you recommend for this model (if you could recommend based on this limited information)?

        1. Hi,

          the case might be the same but inside can be anything. Post a photo of the mainboard so I can compare it.

        2. dear James
          Now you success to stream ?
          I also have that model , and now brickd.
          I have plan to buy new one , and try to play again.
          thx .
          Jues

  45. Hi Dan,

    Could you list the environment specs you’re using, such as OS, network etc? I still can’t receive through VLC port 5004, and I can’t detect the device using the IPTV tool, and I think these might both be attributed to the environment.

    1. I found the simplest solution was to make sure everything was plugged in by Ethernet to the router or to a switch. You can then use tcpdump on ubuntu like this: “sudo tcpdump” and you’ll see the network traffic and on windows, use IPTV Control.

  46. @danman or anyone try to reverse IPTV_CONTROL_CENTER protocol? I want write a simple python script on my raspberry to send also IR codes

    1. I second this, it would be helpful to have for a simple html interface to send commands to the device.

  47. …just wish to ask the same, how to send IR codes from pc to LKV.
    I used a cheaper hub to avoid HDCP and it streaming perfectly to all pc in my home, but not in wifi mode, only by cable…. strange!

  48. I have been working with both the LKV373a and LKV383.

    I haven’t had any luck connecting the LKV383. It is not recognized by any utility so I have moved back to the 373a.

    I am able to flash firmware from the Dec 14 post, reset settings, and login into the device with default username and password.

    I have tried to use the command you had posted for configuring unicast changing only the ip addresses with a cut and paste. No matter what I do it still continues to run in multicast mode. Do I need to change the option to disable multicast in the web interface before issuing the commands. I am kind of at a loss. I’ve been trying various things for over a week with the 373a.

    Please help…..

  49. I have LKV383 and the utility find it (if you have only one interface, since with multiple eth interface it use the first, which is often wrong) but the utility is not needed.

    I have uploaded the firmware with web interface and then LKV383 has worked without reset password step.

    Unicast string is often multicast but forwarded to another ip.
    Default setting is “push stream from transmiter to 239.255.42.42” which the ethernet switchs forward as multicast to all device.
    With the string it will be “push stream from transmiter to your ip” which the ethernet switchs forward only to that ip.

    But it is still in multicast mode.
    The real unicast mode is probably something like “pull stream from transmiter” but if activated in webif then we need to know how to ask on-demand stream to trasmiter.

    I have noticed that if the multicast-ip is not set (mcastaddr=) the result is “push stream from transmiter to 255.255.255.255 or your network broadcast address” which supplies a result similar to push to 239.255.42.42 (i.e. all node on network received the stream).
    I have not tried but it is possible that with this mode even wifi will receive it.

    I am interested too with how to use the IR sender , but unfortunately I have only LKV383 transmiter and so I cannot grab the traffic generated by LKV383 receiver

  50. I ran into a fun problem today. I upgraded to the latest firmware that danman and ftp21 via the web interface… but found that I couldn’t do a factory reset (no Windows Machine and IP_Control_Center doesn’t run under Wine), so I didn’t have the password or a way to update (downgrade?) the Encoder Firmware.

    I poked around a little and found that there’s a TUI listening on port 9999.

    $ nc 192.168.2.65 9999
    ==============================
    ========IPTV TX Server========
    ==============================
    input>list
    set_group_id get_group_id
    set_dhcp get_dhcp
    set_uart_baudrate get_uart_baudrate
    set_static_ip get_static_ip
    set_mac_address get_mac_address
    get_lan_status get_hdcp
    get_video_lock get_ip_config
    set_session_key set_device_name
    get_device_name set_video_bitrate
    get_video_bitrate set_downscale_mode
    get_downscale_mode set_video_out_mode
    get_video_out_mode set_streaming_mode
    get_streaming_mode get_fw_version
    get_company_id factory_reset
    reboot list
    exit
    input>factory_reset
    Processing factory reset!
    System will reboot after few seconds!
    $

    From the looks of it, you can manipulate things with a script instead of going to the “password protected” WebUI.

    1. Thank you! I did not find the device through IPTV Control Center ever I was using Windows. This works perfektly.

  51. From comments on a big store (a company which names starts with A 🙂 ) i read that there is a version which works with HDCP without using a HDMI Splitter.
    Some users confirm that they see some sat channels throught a pair of transmiter + receiver

    My transmiter with the same sat channels not works because HDCP present (but using hdmi splitter I have resolved).

    So the question is : there is a firmware version that do hdcp removing or hdcp works only if you have the complete set TX + RX ?

    Some time ago I had the LKV373 (model LKV373IR) and with it the HDCP was not a problem.
    But I had TX + RX, now I have buyed LVK383 TX only.

    1. RX can accept HDCP secured signal but it scrambles it before sending over network to preserve security. So HDCP works if you have complete set: data is sent scrambled via network and then descrambled in RX.
      But maybe there is some way how to turn it off or set the key to none. Maybe via telnet interface.

      LKV373 didn’t use any scrambling.

  52. Ok so we need someone with a pair of LKV383 (TX+RX) which grab for us the tcp/udp traffic from RX to reverse eng. the IR protocol

  53. Just to say thanks to all the people who worked on this. I got one of these today and it was relatively simple… I have it unicasting to VLC across the LAN.

    Only slight hiccup was when it is first plugged in it starts spewing multicast, and my LAN isn’t well set up for that (no IGMP snooping) so it killed my wifi. Using a wired connection to flash the firmware, then set it to unicast, fixed that…

  54. I got a little free time so I downloaded the firmware pkg of the device and opened in gedit. https://drive.google.com/open?id=0B3mWuDyxrXyKNXRuM2NsYkVJY0U

    After opening, I found that (duh) the webpage code is right there and could (possibly) be edited. Has anyone successfully edited the pkg file and with what software? (Gedit gives a bunch of scary errors) I want to simply edit the lines at 12466 to add checkbox for unicast and the address section to have an inout box where I can just type in an address I want to stream to.

    1. I tried but there is a checskum in the end of th file (4Bytes) and I don’t know how to calculate it. It won’t upgrade if it’s wrong.

  55. Any hints to changing the port?
    I want to use a few units all streaming to 1 machine but after this update I can’t change port anymore.

    Thanks for the awesome work so far everyone!

    1. try
      “http://your_device_ip/dev/info.cgi?action=streaminfo&rtp=on&multicast=on&mcastaddr=ip_address&port=yourport”

      1. Tried that, no go..
        Looked in the HTML and found this
        <!– –>

        so tried &stream_port=9710

        No good either.

        1. update the firmware and encoder from Danman’s drive folder and then try again. I’ve also been getting issues with a new device ordered.

          1. It seems that the new firmware locks out the “port” function.

            Worse, rolling back the firmware doesn’t fix this, so if you need to use ports other than 5004, the new firmware kind of bricks it for you 🙁

            We want to run multiple devices into the same dest IP, so its screwed up that…. unless the port command has changed or there’s something we’re missing.

            1. Did you ever got this working? My 373 came with firmware 20161116 that doesn’t accept the port change.
              Downgrading did not change that.

  56. Do you have the firmware/iptv tool for the LKV373IR?
    I can do a wireshark capture for the ir decoding if it works with this model.

  57. Hi all and congrats for the job !!!
    I don’t have enough time to work on but you can find some informations on IR in googling “hdbaset specification ir uart draft” .
    Hope this helps.

  58. Hi everyone,
    my device doesn’t like to update to another firmware.
    When I select the .PKG and push the ‘Upgrade!’-button nothing happens. Sometimes I see the “Firmware upgrading, please wait… ” hint, sometimes not, but its not updating. Just when I upload the .bin file I see the success window.
    The current versions on my TX server are:
    Version : 4.0.0.0.20160722
    Encoder Version : 7.1.2.0.11.20160722
    I already tried different versions from the google drive, but its always the same.
    What am I doing wrong??

        1. Yesterday I tried it with a windows machine and google chrome. Same result, nothing happend. And also the same with the IPTV tool from the google drive.

          Do I have to follow a special procedure like pushing the reset button before or anything else? How long does it take to update/downgrade the firmware ?

    1. Well, I flashed new firmware to both Transmitter and receiver.First thing I noticed, IPTV Control Center will recognize Transmitter, you can adjust all the settings from within the program, with no problem, but web interface is locked, no access, just option for firmware update.
      Receiver is recognized, but no access to it.
      Second thing about the transmitter, is that it seems it always works in multicast mode, and IPTV Control Center is reporting Unicast.No matter how you adjust, it will show unicast from the program, but I am able to get stream from multicast address 0.Also, it seems that it is not possible anymore to change group for multicast, it is always set to 0 (udp://@239.255.42.42:5004).
      Well, now the good stuff.
      Delay is MUCH lower than with previous firmwares, I have no way to measure it, but personal impression is at least 50% less than previous.
      I experimented as well with bitrates, and got maximum od around 30.000 for FHD with stable transmission.Just for safety, lowered to 28.000, 16.000 for HD, and 6000 for SD.Everything works very good and stable.
      Tomorrow I will give it a go over 100m cat5e cable, and see what happens.Stand by for news…

      1. How much lower is the delay now?
        I’m building a video wall for a small live event, so delay between the image and the instructions I can give is important.
        Should I look for the old LKV373 with M-JPEG and 100ms or os the new LKV373A with MPEG now down to the 100-200ms range as well?

  59. I apologize in advance if this is a bit OT…

    For anyone wanting to transmit over WiFi using DD-WRT (I used 3.0 r30796) and 2 x AC routers, here are the steps:

    1. Set routers to Router mode, static IPs
    2. Disable the firewall
    3. Set a physical port to a new (unused) VLAN for the LKV device(s) – this isolates them from the other physical ports
    4. Create an EoIP Tunnel to transfer multicast over WiFi – no additional routing is necessary if WiFi IPs are used
    5. Create a new bridge with VLAN and EoIP tunnel interfaces assigned to it
    6. On the main router, set a bridge IP address/mask and DHCPD for VLAN
    7. Create a WiFi network (AC-Only mode, VHT80, no security)

    IPTV traffic will flow from the LKV Sender switchport to the VLAN, over the EoIP Tunnel (and WiFi) to the 2nd router’s VLAN port and on to the LKV Receiver. DHCPD will assign IPs over the WiFi to the remote LKV device. More importantly, the routers remain responsive and do not get overwhelmed.

    Strangely enough, this worked flawlessly with 2 x Linksys routers and 2 x LKV373A v3.0 devices (with an HDMI splitter before the Sender) until last week. At present, the video is fine, but the audio is now a high-pitched whine (when there is no audio input from HDMI) to a sputtering static when audio is being transmitted to the LKV373A from my cable box. Note: my LKV373A are stock, out of the box with no firmware modfications/updates. My last resort is to try updating the firmware on the Sender/Receiver.

    Any chance that anyone is encoutering similar audio issues? Or perhaps some tips for troubleshooting the audio via Wireshark?

    1. Some additional notes on the above config:

      4. WiFi IPs = router IPs from step 1.
      5. This bridge has IGMP snooping and STP turned on
      6. This is a different subnet from the router IPs
      7. Main router is setup as AP, the other is in Client Bridge mode

    2. Found the issue.

      Apparently, setting the cable box audio output to “Surround Sound” (instead of Stereo) caused the sound distortion.

      All is well now – confirming that the above instructions work to connect the LKV373A Sender and Receiver over WiFi.

    3. Hi,
      I bought a pair of LKV373IR sender and receiver because of IR feature and most crucial would like to transmit hdmi over wifi routers because my previous wireless hdmi extender was not strong enough to pass signal between first floor and second floor due wall obstruction. But I certainly have no idea what I am getting into. **Sigh!!**

      May I ask in order to transmit over routers, I need to re-purpose 2 linksys routers with dd-wrt software? Put a splitter before sender? configure the sender to do unicast? Setup EoIP tunnel etc in order to transmit over wifi?
      The Lenkeng support told me to setup router with bridge with client which I configured tplink tl-wr740n router to AP mode and then at receiver side, I configured tplink tl-mr3020 n router to bridge with client mode. Unfortunately it didn’t work, I didn’t get image from dvd player output to LED tv, although the receiver didn’t ask to search for TX signal. Hope anyone can guide me. Thank you.

      1. You may use any wireless bridge but make sure they transfer multicast (or there is an option to turn it on). No need for splitter. No need for unicast.

        1. Thank you for the reply. I had flashed my tplink tl-mr3020 and tplink tl-wr740n routers with DD-WRT. But I don’t know how to setup the routers for multicasting and with VLAN etc. The online guides overwhelm me who is a networking dummy.

          Could anyone provide for details step-by-step guide on how to configure dd-wrt? I would be deeply indebted. You may send to me my private email.

          1. In my case, both routers are dedicated for LKV373IR so may be VLAN and other settings are not needed. If someone could print screen their settings at AP and Client Bridge Mode and put to Word doc and other write-up and send to me, I am more than willing to pay $20 buck with Paypal to show my appreciation.

            Thank you.

        2. I have used tplink WR1943ND stock router to set as AP mode and enable IMGP proxy to allow multicast as sender. I set tplink wr740n dd-wrt router as client bridge and unchecked Filter Multicast and Enable STP to serve as receiver router.

          However, there is still no image shown at TV.

          1. Hello,
            do not use IGMP proxy, it’s not going to help. Here is some guide:
            https://www.dd-wrt.com/wiki/index.php/Setting_up_IPTV_without_impact_to_LAN_and_Wireless_traffic
            but we want something little different in your setup.

            I’d try these steps on BOTH devices:
            – Ensure that you are at least on DD-WRT 24v1 Firmware, otherwise download the most recent release.
            – Disable (uncheck) “Filter Multicast” on Security–>Firewall
            – In Wireless–>Basic setting, set “Network Configuration” to “Bridged”, and “Multicast forwarding” to “enable”.

            1. Would be good if the blog explained this as not many people are going to read through 750+ comments 😉

        3. I have installed latest dd-wrt at both routers which is Firmware: DD-WRT v3.0-r31924 std (05/02/17) for sender router wr1043nd and receiver router wr841n.

          I managed to setup EoIP tunnel at both routers and make sure ping is working both direction. I also enable multicast forwarding for oet1 for both routers. To enable EoIP and ping working I had to turn on IGMP snooping at both routers at Setup–>Networking for br0. However, there is still no image shown.

          What is strange is if I turn off IGMP snooping, the ping doesn’t work, the good thing is the yellow light at receiver ehternet port will blink very fast and same like direct ethernet cable connection between 2 routers. If I turn on IGMP snooping, ping is working again, but the yellow light blink very slow like no action. This is tough nut to crack for me

          1. Hi, I started to think may be this hdmi over wifi only working for model LKV373a but not working for model LKV373IR. 🙁 I should get LKV373a to try out first.

            1. I think I have followed. This is my configuration:
              Router 1 –> tplink wr1043nd:
              =============================
              Wan:
              Type: Static IP
              wan ip: 192.168.1.15
              subnet mask:255.255.255.0

              Network setup:
              Local ip: 192.168.168.15 –according to lenkeng pdf, sender ip is 192.168.168.55
              subnet mask:255.255.255.0
              Gateway: 192.168.168.1

              DHCP Server:
              Enable
              start ip add: 192.168.168.1
              NTF client=diable

              Wireless Basic:
              Mode: AP
              Wireless network mode: Mixed
              Channel width : Full 20 MHz
              Wireless channel: 4
              ssid: tpl-tx

              Wireless Advance Settings –> Network config :
              Bridged
              Multcast forwarding : first set to unbridge, change setting to Enable, then set back to Bridged

              Setup–> EoIP Tunnel:
              Remote ip: 192.168.168.16
              Bridging : Enable
              ip add: 192.168.202.1
              subnet mask: 255.255.255.0

              Security:
              Unchecked Filter Multicast
              Disable SPI firewall

              Services:
              DNSMasq : Disable
              ttraff Daemon: Disable

              Setup–>Networking:
              Bridging:
              br0 STP: ON IGMP Snooping: ON
              Port setup:
              Network Cofig eth1 : Default
              Multicast forwarding: Enable
              Network Cofig ath0: Default
              Multicast forwarding: Enable
              Network Cofig oet1 : Default
              Multicast forwarding: Enable

              Router 2 –> tplink wr841nd:
              =============================
              Wan:
              Type: Disable –> Give static ip value to wan before set to Cleint Bridged and Disable
              wan ip: 192.168.2.16
              subnet mask:255.255.255.0
              Gateway: 192.168.168.1

              Network setup:
              Local ip: 192.168.168.16 –according to lenkeng pdf, receiver ip is 192.168.168.56
              subnet mask:255.255.255.0
              Gateway: 192.168.168.1

              DHCP: Disable

              Wireless Basic:
              Mode: Client Bridge (Routed)
              Default GW mode: DHCP auto
              Wireless network mode: Mixed
              Channel width : Full 20 MHz
              Wireless channel: Auto
              ssid: tpl-tx

              Wireless Advance Settings –> Network config :
              Bridged
              Multcast forwarding : first set to unbridge, change setting to Enable, then set back to Bridged

              Setup–> EoIP Tunnel:
              Remote ip: 192.168.168.15
              Bridging : Enable
              ip add: 192.168.202.2
              subnet mask: 255.255.255.0

              Security:
              Unchecked Filter Multicast
              Disable SPI firewall

              Services:
              DNSMasq : Disable
              ttraff Daemon: Disable

              Setup–>Networking:
              Bridging:
              br0 STP: ON IGMP Snooping: ON
              Port setup:
              Network Cofig eth0 : Default
              Multicast forwarding: Enable
              Network Cofig eth1: Default
              Multicast forwarding: Enable
              Network Cofig ath0: Default
              Multicast forwarding: Enable
              Network Cofig oet1 : Default
              Multicast forwarding: Enable

                1. I turned off STP and IGMP Snoopring at br0 for both routers. I have removed EoIP also for both and reboot both routers. But still there is no image shown on TV. If I direct connect the Ethernet cable to router 1 to use as switch and output to receiver box, there is image shown. Therefore, some how the wifi just refuses to work between router1 and router2.

                    1. Under Administration —-> Management, SSH by default is dimmed and disable. It is not able to enable it. Telnet is also disable but can be enable. I have change router 1 to tplink wr740n because I found out if I direct connect cable to it as switch, video image can appear. But if I use wr841n router, there is no image if I direct connect both ethernat cables to it.

                      So it could be router dependent. So I may be need to get another wr1043n router to test as router 1.

                      Anyway, here is the ifconfig -a

                      router 1 wr740n:
                      ===============
                      ath0 Link encap:Ethernet HWaddr E8:DE:27:2F:15:24
                      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
                      RX packets:1114 errors:0 dropped:0 overruns:0 frame:0
                      TX packets:1036877 errors:0 dropped:0 overruns:0 carrier:0
                      collisions:0 txqueuelen:0
                      RX bytes:799932 (781.1 KiB) TX bytes:1113791531 (1.0 GiB)
                      br0 Link encap:Ethernet HWaddr E8:DE:27:2F:15:23
                      inet addr:192.168.168.15 Bcast:192.168.168.255 Mask:255.255.255.0
                      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
                      RX packets:1039509 errors:0 dropped:0 overruns:0 frame:0
                      TX packets:4787 errors:0 dropped:0 overruns:0 carrier:0
                      collisions:0 txqueuelen:0
                      RX bytes:1080656836 (1.0 GiB) TX bytes:5161951 (4.9 MiB)
                      br0:0 Link encap:Ethernet HWaddr E8:DE:27:2F:15:23
                      inet addr:169.254.255.1 Bcast:169.254.255.255 Mask:255.255.0.0
                      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
                      eth0 Link encap:Ethernet HWaddr E8:DE:27:2F:15:24
                      inet addr:192.168.1.15 Bcast:192.168.1.255 Mask:255.255.255.0
                      UP BROADCAST MULTICAST MTU:1500 Metric:1
                      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                      collisions:0 txqueuelen:1000
                      RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
                      Interrupt:4
                      eth1 Link encap:Ethernet HWaddr E8:DE:27:2F:15:25
                      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
                      RX packets:1039005 errors:0 dropped:0 overruns:0 frame:0
                      TX packets:5636 errors:0 dropped:0 overruns:0 carrier:0
                      collisions:0 txqueuelen:1000
                      RX bytes:1094693697 (1.0 GiB) TX bytes:5816935 (5.5 MiB)
                      Interrupt:5
                      lo Link encap:Local Loopback
                      inet addr:127.0.0.1 Mask:255.0.0.0
                      UP LOOPBACK RUNNING MULTICAST MTU:65536 Metric:1
                      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                      collisions:0 txqueuelen:0
                      RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

                      router 2 wr1043n:
                      =========================
                      ath0 Link encap:Ethernet HWaddr EC:08:6B:6C:6A:47
                      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
                      RX packets:43116 errors:0 dropped:0 overruns:0 frame:0
                      TX packets:2074 errors:0 dropped:0 overruns:0 carrier:0
                      collisions:0 txqueuelen:0
                      RX bytes:34680202 (33.0 MiB) TX bytes:1041553 (1017.1 KiB)
                      br0 Link encap:Ethernet HWaddr EC:08:6B:6C:6A:47
                      inet addr:192.168.168.16 Bcast:192.168.168.255 Mask:255.255.255.0
                      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
                      RX packets:16920 errors:0 dropped:0 overruns:0 frame:0
                      TX packets:44972 errors:0 dropped:0 overruns:0 carrier:0
                      collisions:0 txqueuelen:0
                      RX bytes:16732218 (15.9 MiB) TX bytes:36041199 (34.3 MiB)
                      br0:0 Link encap:Ethernet HWaddr EC:08:6B:6C:6A:47
                      inet addr:169.254.255.1 Bcast:169.254.255.255 Mask:255.255.0.0
                      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
                      eth0 Link encap:Ethernet HWaddr EC:08:6B:6C:6A:49
                      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
                      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                      TX packets:59071 errors:0 dropped:0 overruns:0 carrier:0
                      collisions:0 txqueuelen:1000
                      RX bytes:0 (0.0 B) TX bytes:51221039 (48.8 MiB)
                      Interrupt:4
                      eth1 Link encap:Ethernet HWaddr EC:08:6B:6C:6A:48
                      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
                      RX packets:16920 errors:0 dropped:0 overruns:0 frame:0
                      TX packets:44625 errors:0 dropped:0 overruns:0 carrier:0
                      collisions:0 txqueuelen:1000
                      RX bytes:16969098 (16.1 MiB) TX bytes:35848961 (34.1 MiB)
                      Interrupt:5
                      lo Link encap:Local Loopback
                      inet addr:127.0.0.1 Mask:255.0.0.0
                      UP LOOPBACK RUNNING MULTICAST MTU:65536 Metric:1
                      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                      collisions:0 txqueuelen:0
                      RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

                    2. According to TX/RX bytes on wifi interface, router1 is sending multicast but router2 is not receiving it. Try to swap these devices to check if it is not some hardware limitation of used chipset.

    4. Hey, thanks for the solution! That piece is very valuable. It didn’t came up to my mind and therefore I tried first to setup pseudo-bridge (my AP is no openwrt). In the end I got multicast working on the downstream. But, alas, It didn’t work on the upstream – and that’s how IR channel is supposed to work. IGMP proxy wasn’t been a solution there becasue these boxes don’t send proper IGMP JOIN messages.

  60. Can someone give exact infos on procedure how to update lkv373a with .pkg & .bin.
    Load both and do update or one by one?
    Thanks

  61. I’ve just had to reinstal my OS (now Windows 7), and I’ve just tried to plug in the sender into my PC…. And it isn’t showing up, not even on Wireshark. The sender doesn’t even have the blinking yellow light it usually does (it was updated with the same firmware for the IPTV)

    Do you know what might be the issue? I’m really hoping I’ve not bricked these… Hopefully it’s a software or environment issue, but I’m unsure where to start troubleshooting.

  62. The firmware mentions ITE TECH, i found this http://www.tonylabs.com/wp-content/uploads/IT6604-Datasheet-v0.7.pdf
    and this
    http://www.ite.com.tw/en/product/category?cid=5
    http://www.sunnyqi.com/upLoad/product/month_1308/IT66121FN.pdf
    http://www.lestina.com/media/pdf/ite.pdf
    I only received my units a hour ago and remembered your artical from hackaday.com, which brought me here, I have the newer v3 units with red board, anyone know what the second button is for? SW4? as SW2 is for the reset.
    Right, time for coffee and some firmware hacking.

    1. I also want to know about sw4, but still no information…also i have bricked my v3.0 (red board) while updating flash through web interface (now computer can’t see tx device, no ping, no web interface). I thought, maybe it is a hard factory reset button – but nothing happenes as i push it (for a second or for a 5-10-30 seconds – nothing changes)

  63. i bricked my TX by updating it with the firmware LKV373A_RX_V3.0b_20160218.PKG by mistake… any idea how I can recover it? Thank you.

    1. Hi, you are not the first one 😀 You can unbrick it by flashing full dump from my drive back to SPI flash using some SPI programmer.

      1. hi, i finally got my SPI programmer, but some of your images above are broken… I remember seeing somewhere about how you do an external flash.. can link to it? thanks

      2. Hi,

        Previously, I bricked my TX by flashing it with RX firmware.
        Today, I received my SPI flasher and I flashed full-flash-U3.bin to the chip nearer to the ethernet port on my TX. Now, it is able to DHCP and get IP address from my router, but I cannot access the configuration webpage. Using the IPTV Control Center scan, unable to find the TX also.

        Do I need to flash the chip nearer to the HDMI? With what? Thank you.

          1. Hi,

            I only found 1 so far, that’s on your google drive, full-flash-u3.bin
            there was an older lenkeng-new.rar above, but I compared and the 2 bin files are exactly the same. Can you point me to another full flash image?

            Thank you.

  64. is there a way to push multichannel audio through the 373A units?
    AC3/DTS would make this unit almost perfect

  65. Hi all,
    Amazing article! I just ordered my LKV373A v3 on ebay but it will take a long time I fear.
    BTW basically I’m trying to expose my (completely closed) sat receiver stream on the wan and looking around I found this great article. Now that the *stream exposing* part is decided (and hopefully solved. i’ll know when I’ll be able to test) I’d like to solve the part about how to remotely control the decoder. I’ve been able to control my Nvidia Shield sending to it commands using a cec-client from my Odroid C2. The idea is to do the same with the sat decoder too but I’ not sure it will be considered a “CEC client” if the HDMI is inserted in the HDMI extender. Can anyone confirm if happened to do this kind of test?…or even suggesting a better solution? I just read this article http://www.cnx-software.com/2017/03/12/how-to-control-your-air-conditioner-with-raspberry-pi-board-and-anavi-infrared-phat/
    making possible to remotely send IR codes but I’d like to stick with CEC.

    Thanks again.

    1. If anyone interested these are a few commands tested and working to control my Nvidia Shield connected to a Samsung UE50JU6400K from my Odroid C2. I think that controlling the device which generated the video stream is essential to consider this solution final but of course I’m sorry if this is off topic and if so feel free to delete or just tell me and I will do.
      (I had to compile myself libcec from source on Odroid C2)

      WORKING ON SAMSUNG!! (I control the TV)
      STANDBY
      sudo echo ‘tx 10:36’ | cec-client
      sudo echo ‘tx 10:36’ | cec-client -s -d 1

      SWITCH TO HDMI (X)
      sudo echo ‘tx 4F:82:30:00’ | cec-client -s -d 1
      uguale ma più logico (1= Recording 1)
      sudo echo ‘tx 1f:82:30:00’ | cec-client -s -d 1

      WORKING ON SHIELD (I control the box)
      UP
      sudo echo ‘tx 1B:44:01’ | cec-client -s -d 1
      DOWN
      sudo echo ‘tx 1B:44:02’ | cec-client -s -d 1
      EXIT
      sudo echo ‘tx 1B:44:0D’ | cec-client -s -d 1
      ROOT MENU (HOME button)
      sudo echo ‘tx 1B:44:09’ | cec-client -s -d 1
      SELECT
      sudo echo ‘tx 1B:44:00’ | cec-client -s -d 1

    2. I very doubt LKV supports CEC channel. But I guess IR should be possible with some protocol reverse engineering.

      1. hi and thanks,
        Maybe it’s just possible to use a splitter from the sat dec. One HDMI goes to LKV and another goes into TV making the sat dec. a CEC client?

          1. The sad part is that I bought one a few (many) years ago when it was released for the first time but I spent all the afternoon after I read your reply looking for it and failing.
            BTW I’ll try again tomorrow and in the meantime I’ll try to understand if it can work (still want to test if a cheap splitter can work). Thanks for the advice.

        1. but basically it should also work with any splitter/switcher and e.g. your odroid as command sender

          1. Sorry for the late reply but I didn’t refresh and notice your comment. Basically I only tested using a LOCALLY odroid C2 connected to the same TV as the Nvidia Shield. Basically the idea should be to find a way to control this cec-client from my android OnePlus One on the wan and if everything works the ideal should be to create a apk for it which merges the client streaming to watch the raw video exposed by LKV or even a transcoded version of it if needed and a **cec-client controller** to control remotely the device. It’s just a bunch of confused and untested thoughts probably doomed to fail but ..who knows. I’ll keep you updated if any success arises.

  66. Hello,

    I have everything up and running, I can access stream at udp://@239.255.42.42:5004 from vlc.

    Please tell me if there is an possibility to share/access that stream through the internet from another location? I have read that multicasts are filtered by the ISP. How to do that?

    Cheers

    1. I can’t access the stream yet. I don’t know why

      Concern stream to internet you can use ffmpeg to encode that stream as a new stream, for example to a rtmp youtube server

  67. Good to know someone can give information about this product (esynic 120M)

    It work fine also through powerline 500 Mbit (avm fritz 510e). video and audio are almost perfect 1080p 50

    An annyoing stuff is that with no input signal the sender works and broadcast nothing.
    With powerline is a unnecessary waste of resources

  68. Missing a feature, the transmitter should accept a bitstream audio stream converting it to a two-channel pcm fore the receiver. allowing use to exit from a myskyhd/bluray with a hdmi audio bitstream using an avr and the sender at the same time.

    1. hi,
      since I’ve ordered a mysky hd and a LKV hdmi extender but none has arrived yet but in the meantime I’ve been able to control remotely my Nvidia Shield *almost* fine using CEC commands through ajax calls, can you tell me if your mysky hd supports CEC and if so what model is exactly?

      Thanks.

      1. Non ti so rispondere perchè il mio mysky HD (BSkyB DRX892i) è collegato ad un avr Marantz (sr5009). con il tv Panasonic st60 il sistema supporta cec e arc

          1. Hi, I was looking for info about Sky receivers if they are CEC capoable and there are no final and clear info about their cec functions. Here they talk about the “Sky HD” receiver and it seems it is CEC capable. Unfortunately I still have no info about Italian models. On this page they call the function “One-Touch-Play” and they clearly say it’s not present on all models so maybe it’s just a matter of choosing the right one. Maybe the “Sky HD” model is capable while the MySky HD is not. Still have to check better though.
            https://www.sky.com/help/articles/hdmi-one-touch-play

  69. Dan – sorry to hear about the data loss. The comments on this blog are extremely valuable and didn’t want to lose them, so grabbed the ones that were lost due to the crash (from Google web cache) to preserve them here! -wil

    ripjyr 21. March 2017 at 8:07
    Manual is same version as ftp21 of V3.
    VLC streaming
    Windows / Mac OS / iOS / Android setting is available.
    http://www.apantac.com/UserFiles/File/HDMI-IP-E-R%20user%20manual-Final.pdf

    Reply ↓
    Pedro 24. March 2017 at 12:52
    So… is it still the best/cheaper HDMI video TX device?
    Would you make a video on how to install the firmware that ftp21 found?
    Regards

    Reply ↓
    red5goahead 27. March 2017 at 13:12
    My Vlc under Windows 10 Pro x64 doesn’t work with tx stream

    Do you have any tips?

    Reply ↓
    danman Post author27. March 2017 at 13:22
    You need to properly configure networking. Do you have multiple network interfaces connected (e.g. wifi and eth) ?

    Reply ↓
    red5goahead 28. March 2017 at 22:11
    Yep Thanks.

    It was a Hyper-V Virtual Ethernet Adapter , I disabled it and now work fine with vlc

    Luckly there is no hdcp protection from my myskyhd probably the Hdmi spilitter remove it. I guess

    Codifica: H264 – MPEG-4 AVC (part 10) (h264)
    Risoluzione: 1728×1090
    Risoluzione video: 1728×1080
    Formato decodificato: Planar 4:2:0 YUV

    Codifica: MPEG Audio layer 1/2 (mpga)

    http://i.imgur.com/P9ydqAd.png

    Reply ↓
    Davide 31. March 2017 at 0:37
    you don’t need to disable the adapter…just add a route to your multicast address…

    route add 239.0.0.0 mask 255.0.0.0 192.168.2.10<< ..\ffmpeg -i udp://239.255.42.42:5004 output.mp4
    ffmpeg version N-62403-gb9b2f9d Copyright (c) 2000-2014 the FFmpeg developers
    built on Apr 12 2014 22:01:51 with gcc 4.8.2 (GCC)
    configuration: –enable-gpl –enable-version3 –disable-w32threads –enable-avisynth –enable-bzlib –enable-fontconf
    g –enable-frei0r –enable-gnutls –enable-iconv –enable-libass –enable-libbluray –enable-libcaca –enable-libfreety
    e –enable-libgsm –enable-libilbc –enable-libmodplug –enable-libmp3lame –enable-libopencore-amrnb –enable-libopenc
    re-amrwb –enable-libopenjpeg –enable-libopus –enable-librtmp –enable-libschroedinger –enable-libsoxr –enable-libs
    eex –enable-libtheora –enable-libtwolame –enable-libvidstab –enable-libvo-aacenc –enable-libvo-amrwbenc –enable-l
    bvorbis –enable-libvpx –enable-libwavpack –enable-libx264 –enable-libx265 –enable-libxavs –enable-libxvid –enabl
    -zlib
    libavutil 52. 76.100 / 52. 76.100
    libavcodec 55. 58.103 / 55. 58.103
    libavformat 55. 37.100 / 55. 37.100
    libavdevice 55. 13.100 / 55. 13.100
    libavfilter 4. 4.100 / 4. 4.100
    libswscale 2. 6.100 / 2. 6.100
    libswresample 0. 18.100 / 0. 18.100
    libpostproc 52. 3.100 / 52. 3.100
    [mpegts @ 029c2b00] probed stream 1 failed
    [mpegts @ 029c2b00] Could not find codec parameters for stream 1 (Unknown: none): unknown codec
    Consider increasing the value for the ‘analyzeduration’ and ‘probesize’ options
    Input #0, mpegts, from ‘udp://239.255.42.42:5004’:
    Duration: N/A, start: 10253.408000, bitrate: 192 kb/s
    Stream #0:0[0x7d2]: Audio: mp3, 48000 Hz, stereo, s16p, 192 kb/s
    Stream #0:1[0x7d1]: Unknown: none
    Output #0, mp4, to ‘output.mp4’:
    Metadata:
    encoder : Lavf55.37.100
    Stream #0:0: Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, s16, 128 kb/s
    Stream mapping:
    Stream #0:0 -> #0:0 (mp3 -> libvo_aacenc)
    Press [q] to stop, [?] for help
    size= 2kB time=00:00:00.03 bitrate= 465.9kbits/s
    video:0kB audio:1kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 74.414062%

    Reply ↓
    Lenkde 26. April 2017 at 12:03
    Hi alI!
    I’ve also purchased the HDMI Extender ESYNIC 1080P from amazon and updated the firmware to the 2016427 version. Worked great.
    But for now I was not able to get a 1080p stream with 50fps from the device, just with 25fps. When I switch to the 720p resolution the device streams with 50fps.
    Is it possible to force the device to stream with 50fps in fullhd ?

    Reply ↓
    wil 26. April 2017 at 16:29
    Hi Lenkde –

    I don’t think these devices actually support streaming at 1080p60 or 1080p50.

    I too am running FW 4.0.0.0.20160427 (full web interface) and encoder FW 7.1.2.0.11.20160407.

    I have both the TX and RX device – I capture 1080p60 video on the TX device and the TV the RX device is connected to shows the video is 1080p60. So, I thought all was good.

    However, when I play the same stream via VLC, VLC only shows 1080p30.

    My assumption is that the TX device receiving 1080p60 actually encodes and transmits at 1080p30 and then at the RX device, it then “upscales” back to 1080p60 to display to the TV.

    Can anyone else validate that the maximum the device encodes at is 1080p30/25 ?

    Reply ↓
    gb 26. April 2017 at 14:37
    Hi,

    I´m planning to buy one.
    Do you know if this is the same model?
    It is LKV373 Version 3.0 but not LKV373A

    https://www.amazon.es/Versione-Receptor-Extensi%C3%B3n-Receiver-100-120/dp/B01H03VE40/ref=sr_1_3?s=electronics&ie=UTF8&qid=1493209958&sr=1-3&keywords=LKV373

    Thanks 😀

    Reply ↓
    danman Post author26. April 2017 at 14:40
    It looks more like the old LKV373 version, not the latest LKV373A.

    Reply ↓
    Peter 27. April 2017 at 2:15
    Can anyone confirm that the LKV373A uses the TF-680 chipset?

    I read through the TF-680 docs and it does support 8 audio channels, seems the LKV373A version of the firmware only uses 2 channels, might look at hacking the firmware.

    Reply ↓

    1. wil, thank you for your help. I was so down when it happened that I didn’t have any strength to search for lost comments.

  70. I’ve a problem to play the stream on the notebook on wireless. I got the error “SDP required:
    A description in SDP format is required to receive the RTP stream. Note that rtp:// URIs cannot work with dynamic RTP payload format (7).”
    Why the SDP doesn’t come via wireless?? Can’t find the difference from cabled lan. Using Rmerlin FW on my Asus RT AC 68, so i don’t think that router made something strange.

  71. Dan, I have an HDMI Transmitter/Receiver set (J-Tech Digital ProAV HDMI Extender / H.264 ) that has a very similar firmware. My set has UDP7001 open and it is used for IR data. I have somewhat documented the structure below. I was doing an NEC remote protocol and came up with a base onTime of 0x39 (570 microseconds), which gets multiplied based on what you’re transmitting. I think the protocol breaks after any single period of more than 10 milliseconds.

    struct IRData{
    struct {
    uint16 onTime // in ~100 microsecond increments.
    uint16 offTime// in ~100 microsecond increments.
    } samples [512];
    uint16 samplesLength; //Number of samples to actually transmit. One sample is one onTime and one OffTime
    uint16 unknown0;
    uint16 unknown0;
    uint16 unknown0; //May have played with amplitude of transmission
    uint16 carrierFreq; //50 worked for a 38kHz device. 1 is about 5kHz. Unknown scale. Play with it.
    uint16 unknown0;
    };

    This is transmitted big endian to the transmitter, so {0xLL,0xHH} for each sample.

    1. Can you please make network capture with wireshark? I’d love to see some example packets to test it.
      Thanks.

    2. My lkv383 uses a slightly different format – the on/off times are in 10 microsecond increments, and the carrier frequency is in 1 kHz increments. Otherwise it is the same.

  72. I’m getting some pixel fuzzy video using a Chromecast through a “ESYNIC 4K x 2K HDMI Amplifier Splitter 1×2 HDMI Amplifier Adapter 1 In to 2 Out”

    and pixel fuzzy video using the output from my laptop.

    Does anyone here have ideas how to clean up the feed and make it more HD and less pixel fuzzy?

  73. I received the V 3.0 version of LKV 373A sender. The webserver shows the following:

    Version :4.0.0.0.20161031
    Encoder Version :7.1.2.0.11.20161031

    Which firmware should i use get the login page?

    Do i need to install both the PKG and Encoder bin?

    According to the filename the latest ones are these:
    The latest ones are LKV373A_TX_V3.0c_d_20161116_PKG.PKG
    LKV373A_TX_V3.0c_d_20161116_bin.bin

    But the modified dates are for these:
    TX_V1.3c_20161104_bin.bin
    TX_V1.3c_20161104_PKG.PKG

    1. I upgraded to the 20161116 files, but still the webserver does not show the Username and Password page. All, i get is options to upgrade firmware:

      TX server
      Version :4.0.0.0.20161116
      Encoder Version :7.1.2.0.11.20161116

    2. I have the same firmware version as you. Did you have to upgrade before you were able to view the stream in VLC? I don’t get a black screen. VLC just sits there like it’s waiting to connect.

  74. Funnily enough vlc rtp://@239.255.42.42:5004 worked initially, but stopped later on with an error ”
    rtp demux: A valid SDP is needed to parse this RTP stream”. However udp://@239.255.42.42:5004 works fine.

    I havent managed to get a FullHD 1080p stream yet, all i get is a 1280×720 stream. Anybody with 1080p stream?

    1. I have this version as well, but I can’t the udp stream to work. Did you have to upgrade the firmware to get it to start working?

      1. Not sure. But i did the update soon after receiving it. UDP is garbage for me as well, but RTP works great.

    2. For the full web interface, you need to use the firmware in the IPTV_command_library_and_tool_20160303 folder: https://drive.google.com/open?id=0B3mWuDyxrXyKSTZZZlRESlpBZmM

      One you use this firmware you will then get the web interface.

      You can reset the username and password on the TX device via the windows utility in that folder, or you can look at earlier comments above that show how to do this by telnetting into the device.

      Hope this helps!
      -wil

        1. Can confirm that downgrade works fine with the following packages available in the firmware repo:
          IPTV_TX_PKG_v4_0_0_0_20160427.PKG
          Encoder_20160407_0942.bin

          The webpage nows gives an option for username and password, and shows

          Version :4.0.0.0.20160427
          Encoder Version :7.1.2.0.11.20160127

          However, rtp doesnt work anymore with VLC. UDP works fine though. Also unicast worked fine even after a power reset of the device.
          wget “http://lkvipddress/dev/info.cgi?action=streaminfo&udp=y&rtp=n&multicast=y&unicast=n&mcastaddr=desktopipaddress”

    1. This turned out to be a problem with NetworkManager (on fedora 25). I turned off NetworkManager and set rp_filter to do no source validation (echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter) and the stream started playing in VLC.

  75. Hi!
    As many times was writen:
    under linux: iptables -t raw -A PREROUTING -p udp -m length –length 28 -j DROP
    ….but i suggest the “iptv” firmware, working fine for me 🙂
    after dropping the 0 lenght packeges you will able to play the stream in vlc..

  76. Anybody has instructions on how to fully flash the device. I got the following tools:
    a) SPI FLASH Programmer CH341A 24 25 series (http://www.ebay.com/itm/USB-BIOS-EEPROM-SPI-FLASH-Programmer-CH341A-24-25-series/301443899698)
    b) SOIC8 SOP8 Flash Chip IC Test Clips (https://www.amazon.com/gp/product/B00V9QNAC4)
    c) Diodes (https://www.amazon.com/gp/product/B0087ZT89O)

    There is some discussion above about not powering the Vcc pin. Can somebody explain to me what needs to be done?

      1. Hi Rajil,

        you need to unsolder Vcc so there is at least some gap between board and the pin. Then you can flash. If you want to use it again, you need to solder it back or solder a diode between board and Vcc pin to be able to flash it anytime without soldering.

  77. Hi Danman
    What is the black thing between the Vcc pin and the board? Cant be metal i guess, is it paper?

    1. It is a piece of paper. First I had at hand was thermal paper so it went black after soldering 😀

  78. Any luck with HDCP stripping on this model?
    Does LKV373 (non “A”) does stripping?
    So frustrated, just ordered 2 units of LKV373A before finding this article.

    1. No, the device itself does not strip HDCP. Most of us have purchased specific HDMI 1:2 splitters that remove HDCP on the output. So, from the Source HDMI device to the HDMI 1:2 splitter to the Lenkeng device. There are some comments further up in the thread with specific HDMI splitter recommendations that remove HDCP (as most do not). Google is also your friend here on specific models that strip HDCP.

  79. Sorry but not at your technical level.
    I just purchased a Mirabox HSV373 – is this the same device.
    I am trying to use them (TX, RX) over an existing home netwrok.
    Can’t find any instructions – does it DHCP automatically.
    Part of my network goes over a powerline extension – would you expect it to work .
    Does it have an internal webservice so i can configure it?
    Any help gratefully received.

    1. On the surface it looks like a LKV373 device. You can try looking at the router webpage to see what ip address it is fetching. Also, try playing either udp://@239.255.42.42:5004 or rtp://@239.255.42.42:5004 to see if it works.

      Powerline shouldnt be an issue, i think but it would be better to try it straight first before introducing complexity.

        1. I apparently bought a HSV373 V2.0 thinking it was a LKV373, I’m not sure if they’re the same model with a different part number though.
          I can send some pictures later if need be, but from when I last looked at the board when I had it opened up they looked the same as yours.

          Here is the console output with the device directly hooked into an Ethernet port (machine’s IP is 192.168.168.59/24) with promisc enabled.
          https://pastebin.com/vyJG5b2u

          I can provide what I see in tcpdump if you think that’s required.

          Kind regards.

      1. Thanks Rajii
        When I connect the Rx and TX on my home LAN. Layer 1 looks okay – both green and amber lights.
        RX says searching for TX – then I connect TX – message goes away – but no HDMI output.
        When I look at the router – no DHCP allocation to TX or RX .
        Do i need to connect to these devices to configure for DHCP?
        I can find any manuals anywhere and the leaflet they sent with the device says nothing.

        1. You dont need RX for the discussions on this webpage. All you need is to connect TX to the router and look for DHCP reservations on the router.

  80. Omg, how to get a FullHD? Reading 1 mile of comments still no straight answer. They declare it passes through fullhd, so where is it??

  81. “ffmpeg -i udp://239.255.42.42:5004 -vcodec copy -codec:a aac -b:a 128k -f flv …..”
    is not working.

    Unable to find codec parameters.

    Doesn’t make any better settings like
    udp://@
    udp://@ …. live=1

    Unable to update header information… blah-blah

  82. Port 9999 is NOT listening anything.
    Cannot re-enable DHCP after disabling it in IPTV tool, reset button doesn’t reset anything. Mad piece of chinese sh*t.

  83. …..info.cgi?action=network&ipaddr0=10&ipaddr1=1&ipaddr2=0&ipaddr3=99&netmask0=255&netmask1=255&netmask2=255&netmask3=0&gw0=10&gw1=0&gw2=0&gw3=1

    ERR_EMPTY_RESPONSE

    Wow! Bricked by setting a static IP, now that IPTV tool doesn’t see it even if I set NIC to the same network. Can’t access the settings now.

  84. With 10% CPU load, ffmpeg outputs just a few FPS, but VLC plays OK.

    frame= 35 fps=1.4 q=-1.0 size= 2347kB time=00:00:00.93 bitrate=20515.4kbits/s speed=0.0368x

    1. I can’t use ffmpeg too. Best result is use vlc to save raw data as ts file and then encode the file.
      Yhe final result is stunning , fake full hd (1728 vs 1920) can be easily fixed with ffmpeg option

          1. i have a fully functional openvpn server-client in two houses with two asus rt ac68u…i can browse all my shares and NAS services in the second house; the only thing i can’t see is then multicat stream.
            also in the same net if i connect a client through openvpn i can’t connect the stream.

            1. Davide&all,
              did you make any progress about this attempt? I have a TX and RX working in a openvpn layer 2 (TAP), I see the video streaming coming into the vpn but no video on my screen. I had no time yet to sniff the packets and I am pretty sure it is not a HDCP issue given that the TX/RX work fine in a LAN.

  85. Flashing LKV373A_TX_ENCODE_20160722.bin (encoder ONLY) and leaving LKV373A_TX_V3.0c_d_20161116_bin gives a sort of FullHD of 1728×1080. Better than 1280×720 as it’s on newer FW.

    1. With Encoder version 7.1.2.0.11.20161116 if you press the ‘pin-hole’ between HDMI and power-suppy, the 720 changes to 1080.

  86. News about IR transmiter ?
    I have read the message by Alex O’Neill, but there someone with working code to send IR codes from lan to LKV383 Transmiter (which then emits IR stream on air) ?

  87. Has anybody tried to use this with mythtv?

    If yes, please can you post your firmware/encoder versions, example channel .m3u file, and whether using in unicast or multicast mode.

    1. After filtering the zero packets with iptables (command in the OP), mythtv started to work.

      1. I arrived here for mythtv too. Can you provide some details? Version of mythtv and m3u example? I’ve got the TX working to a secondary NIC on my slave backend but can put a switch in between to add another TX (on it’s way now). I’m still testing with VLC though. I ran the iptables command but haven’t tested with ffmpeg again. I’ll reread the IPTV-as-capture-device wiki page again I guess

        1. I tried mythtv 0.28 with the following m3u file

          $ cat iptv.m3u
          #EXTM3U
          #EXTINF:0,114 – Channel1
          #EXTMYTHTV:xmltvid=0114.channel1.com
          udp://239.255.42.42:5004
          #EXTINF:0,117 – Channel2
          #EXTMYTHTV:xmltvid=0117.channel2.com
          udp://239.255.42.42:5004

  88. Official response:
    “LENKENG don’t let user to use only transmitter to work with VLC, they only let user to use they transmitter and receiver together”.

    I had no doubts about this… lol

    Unofficial advise:
    “You can find there is a hole between the port “HDMI IN” and the port “DC5V”, try to use a needle to press the button to choose a priority for video quality and speed.”

    Assuming it’s just the “hardware” version of settings page.

  89. Can someone help with FFMPEG? It either crashes at start, or if to filter zero UDP packets, it just running at super low framerate without any cpu load. I don’t get what is wrong… Why VLC plays it well? Any way to re-stream over VLC if so?

    1. Haven’t found any FW without zero udps, all of them seem bugged with that. Or maybe that’s how manufacturer tries to prevent stream hijacking, targeting ffmpeg.
      I have mikrotik and for some reason I still can’t get rid of those zero udp.

      1. No there is a different reason, these packets are in fact not zero size, just IP header indicates so. I guess the data they contain is used as initialization vector for encryption.

  90. Danman, thanks for this blog.

    I just purchased 3 LKV373As from eBay.

    I had no problem downgrading the firmware to the web login version, telnetting to 9999 to factory reset, flashing the encoder, then using curl to setup unicast.

    I’m streaming to OSX and need to figure out prctl to get the same iptables rule working to drop the zero length UDP packets; so ffplay and ffmpeg are out. However VLC and mplayer work just fine. And the latency with mplayer is so low I can actually use as a monitor for an embedded device (poor man KVM). The CPU overhead of mplayer vs video glide (what I use with $300 HDMI to USB) is very low. This is a much better solution IMHO.

    Thanks again.

  91. A good point to start using FFmpeg with this device is stream the original multicast as an http one

    so vlc–>stream–>network–>udp://@239.255.42.42:5004–>stream–>next–>new destination(http)–>add (leave empty path control)–>next–>no check on “trascoding” and no check on “stream all elementary stream”–>next–>STREAM

    a good point to start checking this configuration is using ffplay

    ffplay.exe http://localhost:8080 -vf yadif=1,scale=720:576,setdar=16/9

    display a good image de-interlaced 50P (yadif=1)

    to encode with ffmpeg a good point to start is this command

    ffmpeg.exe -y -i http://localhost:8080 -vf yadif=1,scale=720:576,setdar=16/9 -pix_fmt yuv420p -c:v h264 -c:a aac -b:a 192k output20170523_214836.MP4

    1. Why should you make it over http to use ffmpeg, I don’t get it. And by the way there is udpxy tool for that.
      Any really working solution to transcode (not record to file, but to rtmp stream) it over ffmpeg directly?

      1. I haven’t found solution about FFMpeg and udp multicast directly, It doesn’t work.
        http is a good and cheap solution imho because Vlc can be easily started with few default options. FFmpeg work fine also with rtmp , I tested it with youtube service, It’s fine until 720p due cpu limitation (amd fx6300)

    2. It’s extremely unstable and crashes in 30 minutes or so:

      [mp2 @ 0x7f9e6607da00] Header missing
      Error while decoding stream #0:0: Invalid data found when processing input
      [mpegts @ 0x7f9e66000000] PES packet size mismatch:47:59.61 bitrate=4611.4kbits/s speed=0.999x
      [mpegts @ 0x7f9e66000000] PES packet size mismatch:48:27.09 bitrate=4604.2kbits/s speed=0.999x
      [mpegts @ 0x7f9e66000000] PES packet size mismatch:50:10.63 bitrate=4614.0kbits/s speed=0.999x
      [mpegts @ 0x7f9e66000000] PES packet size mismatch:50:11.05 bitrate=4614.1kbits/s speed=0.999x
      [mp2 @ 0x7f9e6607da00] Header missing
      Error while decoding stream #0:0: Invalid data found when processing input
      [mpegts @ 0x7f9e66000000] PES packet size mismatch:51:00.26 bitrate=4611.7kbits/s speed=0.999x
      [mpegts @ 0x7f9e66000000] PES packet size mismatch:52:32.23 bitrate=4617.9kbits/s speed=0.999x
      [mpegts @ 0x7f9e66000000] PES packet size mismatch:53:39.48 bitrate=4619.6kbits/s speed=0.999x

    3. Recent VLC on Windows doesn’t stream anything over HTTP, but only RTSP/RTP.
      “http://localhost:8080: I/O Error”, firewal is disabled.
      On mac I’m able o run it in HTTP mode.
      What a heck??

  92. Anybody has a idea how more than 1 of these devices can be put on a network without resorting to unicast. Should a separate vlan for each of these devices be created?

          1. The ‘sources’ option works with ffplay (ffplay udp://@239.255.42.42:5004?sources=lkvip) but not with vlc ( vlc udp://@239.255.42.42:5004?sources=lkvip).

    1. You’ll flood out your network, especially router, without isolating it, unicast is the best option.

      1. The port number cant be changed. So how can you have two devices unicasting to the same ip and port?

          1. Yes, that is what I am doing now. I was pointing out that ‘unicast’ is not an option since players other than ffmpeg (i.e. vlc/mythtv) dont support ‘sources’ option.

          1. I setup a second ip on my desktop pointing to the same primary device eth0,
            ip addr add secondpip/24 dev eth0
            and then was able to use unicast to this secondip.

            1. Also, after unicast was set playing with mpv and ffplay gave garbage results. However, mplayer and vlc worked fine.

              1. Hi!

                Did you ever find solution for this (multiple LKV373A devices on same network to single PC machine)?

                Changing to Unicast seems like best recommendation so as to not flood the network with multiple Multicasts.

                However, as you mentioned, without ability to change device port number, how do you solve the problem?

                Did you (or anyone) successfully change port number with this newest FW installed?

                Thanks in advance!

  93. I’m surprised nobody has mentioned udpxy. I’ve isolated the multicast stream on a separate subnet using DD-WRT vlans. With udpxy running on the DD-WRT router, it’s accessible from devices on my LAN via HTTP streaming.

    It’s been working great on my Mac (VLC) and Andorid phone (VLC & MX Player)

    Cheers

    1. Sorry, but I did.
      But my question is still unanswered. Why should it be converted to http?

      “Dilan
      24. MAY 2017 AT 4:20
      Why should you make it over http to use ffmpeg, I don’t get it. And by the way there is udpxy tool for that.”

      1. Because the udp stream of this sender (i’ve the ESYNic version) is not compatible with ffmpeg.
        In Windows , firewall can’t drop out packets by their lenght.

        1. danman in his first post did it, but I can’t reproduce either with or without zero UDP filtering. In any case it’s unusable.

        2. And what do you mean “ffmpeg in Windows”? I tried it on ffmpeg on linux, makes no difference.
          And UDPXY doesn’t pick it up either, keeps crashing with “IP_ADD_MEMBERSHIP socket error”

  94. And I just found that device stops streaming after 24h of non-stop running. Anyone have this problem?

  95. OMG, this ffmpeg gets annoying. It doesn’t take anything. http, udp – crash after 5 sec, rtsp – 90% frames dropped, rtp – this device doesn’t even provide.

    [rtsp @ 0x3593860] max delay reached. need to consume packet
    [rtsp @ 0x3593860] RTP: missed 304 packets
    [h264 @ 0x3622940] P sub_mb_type 4 out of range at 94 57
    [h264 @ 0x3622940] error while decoding MB 94 57
    [h264 @ 0x3622940] concealing 1275 DC, 1275 AC, 1275 MV errors in P frame
    [h264 @ 0x3a22fa0] P sub_mb_type 6 out of range at 32 2
    [h264 @ 0x3a22fa0] error while decoding MB 32 2
    [h264 @ 0x3a22fa0] concealing 7937 DC, 7937 AC, 7937 MV errors in P frame
    [rtsp @ 0x3593860] max delay reached. need to consume packetbitrate=1152.8kbits/s speed=1.42x
    [rtsp @ 0x3593860] RTP: missed 55 packets
    [rtsp @ 0x3593860] max delay reached. need to consume packet
    [rtsp @ 0x3593860] RTP: missed 30 packets
    [h264 @ 0x36a5d00] mb_type 53 in P slice too large at 108 62
    [h264 @ 0x36a5d00] error while decoding MB 108 62
    [h264 @ 0x36a5d00] concealing 661 DC, 661 AC, 661 MV errors in P frame
    [rtsp @ 0x3593860] max delay reached. need to consume packetbitrate=1090.8kbits/s speed=1.42x
    [rtsp @ 0x3593860] RTP: missed 10 packets
    [h264 @ 0x3a22fa0] out of range intra chroma pred mode14.14 bitrate=1112.5kbits/s speed=1.38x
    [h264 @ 0x3a22fa0] error while decoding MB 20 59
    [h264 @ 0x3a22fa0] concealing 1109 DC, 1109 AC, 1109 MV errors in P frame
    [rtsp @ 0x3593860] max delay reached. need to consume packet
    [rtsp @ 0x3593860] RTP: missed 226 packets
    [h264 @ 0x36a5d00] P sub_mb_type 13 out of range at 59 62
    [h264 @ 0x36a5d00] error while decoding MB 59 62

    1. Http work fine with my esynic. Ffplay, ffmpg to encode a file and re-stream to rstp

    1. Hi
      I am having difficulty with HDCP on my STB playing a stream on yodeck?
      How do I achieve this? Is there a special setting?

      1. As others have mentioned, you need to add another device between the STB and the LKV373A, which will strip HDCP. Could be an HDMI splitter. Search for “HDCP” in this page and you will get some hints.

  96. “FFMPEG” – NOT WORKING (none of it’s versions or platforms!)
    “UDPXY” – NOT WORKING with unicast IP (very old and buggy tool, tried on Ubuntu, doesn’t even work with multicast either)
    “IPTV2RTSP-PROXY” – WORKS fine, but piping to ffmpeg for transcoding gives the same crash result of ffmpeg. Piping to VLC and then to ffmpeg gives FPS degradation with a time.
    “VLC” – NOT STREAMING udp input properly. Recent version on Windows has broken http output. Mac version works with http output but eventually hangs and crashes after 20-30 min of streaming. Anything non-http stream type gives the same bad result on ffmpeg.

    God dammit! DOES ANYONE HAS A SOLUTION OF HOW TO TRANSCODE & STREAM THE CONTENT OUT OF THIS HDMI DEVICE? Spent a week without success… disaster.

  97. UPDATE:

    Finally I found the way for live streaming, spending another insomnia night.

    1) Block 0 size UDPs
    2) Flash firmware dated as 20160407 from google drive, to get FullHD.
    3) Set desired bitrate in device settings (I prefer it to do transcoding for me, so I don’t have to load my CPU)
    4) Reconfigure device to stream unicast to a single host (192.168.0.223 for example), or you can use multicast address if you want. And run ffmpeg as follow:

    ffmpeg -f mpegts -re -thread_queue_size 512 -fflags nobuffer -i “udp://@192.168.0.223:5004?fifo_size=524288&overrun_nonfatal=1” -r 30 -g 60 -c:v copy -c:a libfdk_aac -profile:a aac_he_v2 -ar 48000 -b:a 48k -ac 2 -f flv rtmp://your_destination_server.com/stream/123
    (or adjust -c:v for transcoding, as well as -c:a, I use AAC HE custom compiled ffmpeg with non-free library for this).

    It’s been stable now for 7 hours of constant streaming, without any fatal errors and no VLC in the middle needed. Have fun.

  98. udpxy also perfect for me….,i’am using that tool months ago with my extender.
    “1) Block 0 size UDPs” that’s the point with ffmpeg!I didn’t tried the new version of ffmpeg posted by Danman,but the old method working fine .The only thing : i’am streaming hd-to sd and i geting 60fps bitrate…a bit strange….normally should be 23-25 :S is there a way to lower this?
    best reggards
    scoo

    1. udpxy doesn’t work with unicast and multicast destroys the network. That’s why it’s not an option.

      Setting device to FHD lowers the FPS to 30, then downscale it with ffmpeg, or let ffmpeg do all job, dropping frames with -r 25, but it will increase jitter.

  99. i’am using togheter with a raspberry pi…..so i have a complete hdmi encoder solution under 100euros i belive is a very good price…
    i used,the extender,a cheap usb network adapter to connect pi to my router, the extender sending the stream directly to rasp. network insterface. Unsing the second interface i can send the stream to my remote server using vpn connection …:)
    This solution is the best till now.:),thanks to Danman and others helping me with this 🙂

  100. This is an interesting project. Very nice detective work! I’ve been looking at the firmware files and PCB pictures, trying to find out more about the two main ICs on the board. It sure would be cool to be able to modify the firmware.

    Based on the content of the update files and the pinout from the picture, I’m pretty sure the chip closer to the HDMI port (which is the chip they are referring to as the “encoder”) is something in ITE Tech’s IT9910 series. For example, there are several strings like this in the .bin update files:

    D:/code/720p/JEDI_9910/freertos/src/pal/msgq.c

    I’m guessing it’s probably the IT9919-H, and the weird markings are just a disguise. I found a datasheet online for the IT9910 series, and it’s clear that the pinout for the IT9919-H matches this board, at least for the HDMI port wiring. My transmitter hasn’t arrived yet, so I can’t confirm any other pins.

    I haven’t been able to figure out what the other chip is, but based on the firmware update file it is clearly also by ITE Tech. The firmware for this chip (the PKG file) seems to be compressed in certain places, so I haven’t been able to extract full strings, but I’m pretty sure it contains the string “9919 B” among other things. I could be wrong, but I don’t think it’s another IT9919 though based on the pinout — it’s probably just referring to the other chip. I have seen the IT9917 and IT9079 paired together in products and SDK announcements, so I wouldn’t be surprised if it’s an IT9079 or related part. Unfortunately I haven’t been able to find a datasheet for that chip, so I can’t confirm my hunch.

    Either way, both of these chips seem to be custom processors that require a special SDK provided by ITE. Modifying their firmware without full datasheets and the SDK would probably be a nearly impossible task. I was hoping they would be ARM processors that would have lots of existing tools available, but sadly I don’t think that is the case here. I tried to sign up on ITE’s site to download the SDK, but I seem to have been silently denied access. Since the IT9919 supports HDCP, they probably don’t give the SDK out to anybody.

    I think it would be cool to legitimately work with ITE to get the tools to be able to make better firmware for these devices, even if it meant no HDCP support. I don’t know how feasible it is though. I suspect ITE won’t be interested in talking to anybody unless we design our own board using their chips.

    1. Hi Doug,

      thank you for your awesome expertise. Could you please share that datasheet you managed to find?

      1. Hi danman,

        Here is the datasheet:

        https://github.com/gyrex/CrystalVideo/raw/master/Docs/Parts/ITE%20IT9910%20(H.264%20Encoder)/IT9910_V0.99_04152014.pdf

        Unfortunately it doesn’t contain any info on the SPI flash format or internal registers, or even the CPU architecture (other than the fact that it contains three 200 MHz 32-bit RISC CPUs). It does provide a lot of useful info though. I suspect the IT9919’s job is to read in the HDMI signal, encode it with H.264, optionally encrypt it if HDCP is involved, and send it out the serial MPEG TS interface to the other chip.

    2. Well, there aren’t much “illegal” changes are pending right now to be applied to this firmware (as for me), except:
      a) Port change possibility
      b) Multicast/Unicast feature handled better
      c) Fix weird resolutions and lack of FHD in lasted FW version
      d) Get rid of zero UDP garbage or switch to TCP,
      e) Get AAC audio. Seriously, who encodes in MP2 nowadays?

      I don’t care about HDCP since there is a bunch of cheap splitters for $10 available to do this job, so nothing violated towards this device and ITE.

      Then how ITE provided SDK to those Chinese “unbranded” FW makers? So it must be a way to get it. Do we need SDK to actually unpack the FW or what is it for? Most of the changes I’ve enumerated probably can be made straight away with “notepad” and some copy-paste. lol

      1. I don’t care about HDCP either, for the same reason. I don’t know how some of the cheap manufacturers gain access to the SDK, I just know that I tried signing up and never received a response. It might be worth a shot emailing ITE’s support and asking for more information. In my experience some of these manufacturers require signing an NDA to obtain full access to necessary documentation though. I don’t have any personal experience with ITE in particular.

        The biggest thing about the SDK is that it will allow you to create firmware from scratch. But…I think learning how to unpack existing firmware, re-checksum the update file after changing things, etc. would require the SDK too. Sure, there’s plenty of stuff you could try to do by editing the config files with Notepad, but it’s doubtful that it would work without re-checksumming the update file, and unless someone super smart can figure out the format, the SDK is probably going to be what provides that information.

        1. Do you think it uses checksum at all? Looking at posts above, people were easily bricking their devices simply uploading a FW from RX. Also downgrade not being checked. So I don’t think it has any kind of checksums.
          Since you’re already sent an application, can you contact their support as well?

          1. Dunno. If ITE uses the same checksum scheme for all chips, it’s possible that it would still pass a checksum test but the firmware would still be for the wrong chip. It would all be possible to test by playing around and trying to upload a file with the checksum changed to something else.

            I sent an email to ITE support last night asking for more information. I’ll post a comment if I hear back from them.

              1. My email to their support seems to have been ignored. I suspect they are probably only interested in talking to companies that are designing/manufacturing a product that uses their chips.

  101. Does anyone know a soft-firewall for windows, which able to block UDP by size? Google seems says that there is no way to trace packets by size in Windows in general, which is very surprising.

    1. you can use socat to avoid ffmpeg bug, figure out windows version of this:

      socat -T 3 UDP4-RECV:5004,bind=239.255.42.42,ip-add-membership=239.255.42.42:eth0,reuseaddr – | ffmpeg -i – …..

      1. Thanks, I’ve ended up with directing each TX device to VMs running linux, each has own IP and own iptables rule. Works great.

      2. Thank you!

        This is working for me on Linux (I’m piping it to mplayer for playback right now). But if I use
        vlc udp://@239.255.42.42:5004
        I get nothing. VLC worked once or twice several days ago, but usually it just sits there spinning as if its not receiving any data. Certainly my vlc is newer than what everyone was using in 2016/2017…

        $ vlc –version
        VLC media player 3.0.10 Vetinari (revision 3.0.10-0-g7f145afa84)
        VLC version 3.0.10 Vetinari (3.0.10-0-g7f145afa84)
        Compiled by builduser on arch (Apr 29 2020 08:54:03)
        Compiler: gcc version 9.3.0 (Arch Linux 9.3.0-1)
        This program comes with NO WARRANTY, to the extent permitted by law.
        You may redistribute it under the terms of the GNU General Public License;
        see the file named COPYING for details.
        Written by the VideoLAN team; see the AUTHORS file.

        And I can’t do
        ffmpeg -i udp://@239.255.42.42:5004 -vcodec copy -f mpegts udp://127.0.0.1:1234
        either. It doens’t seem to receive any data! But your socat solution works fine there, too.

        $ ffmpeg –version
        ffmpeg version n4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
        built with gcc 9.3.0 (Arch Linux 9.3.0-1)

        If I do
        socat -T 3 UDP4-RECV:5004,bind=239.255.42.42,ip-add-membership=239.255.42.42:eth0,reuseaddr – | ffmpeg -i – -vcodec copy -f mpegts udp://127.0.0.1:1234
        vlc udp://127.0.0.1:1234
        then I can view the stream reliably in vlc.

        I don’t understand why socat is needed and why ffmpeg and vlc aren’t subscribing directly to the stream.

  102. Hello guys! I’ve bought new lenkeng hdbitT kit with 4k support. I’m glad to share with you any required info, if you need.

    Here is what i see in web interface of TX:

    TX Server
    Version :4.0.0.0.20151125
    Encoder Version :7.1.2.0.11.20151125

    When i try to get stream over udp, ffmpeg said:

    Input #0, mpegts, from ‘udp://@239.255.42.42:5004’:
    Duration: N/A, bitrate: N/A
    Program 256
    Metadata:
    service_name : AIR_CH_521_6M
    service_provider: ITE
    Stream #0:0[0x7d1]: Video: h264 ([27][0][0][0] / 0x001B), none, 90k tbr, 90k tbn, 180k tbc
    Stream #0:1[0x7d2]: Audio: mp3 ([4][0][0][0] / 0x0004), 0 channels, s16p
    Output #0, mpegts, to ‘udp://127.0.0.1:1234’:
    Output file #0 does not contain any stream

    Any questions, feel free to ask here.

          1. I have the same 4K model (LKV683) with same firmware.

            I also see that ffmpeg (including the ignore-empty-udp fix) does not work, but vlc does.
            ffmpeg either gives the invalid data during analyze or claims stream 0 has no codec.

            1. I tried the iptables method and it DOES work for ffmpeg. So I guess the conclusion is the zero length patch for udp.c isn’t sufficient. It is “analyze” that fails in libffmpeg, so probably it isn’t using the same function in udp.c?

          2. Haven’t compile ffmpeg, i’ve triying both sox and iptables methods and both working well, as also as VLC, if i put link to it directly. BUT stream goes in 1080P max, even if input in 4K and RX from this kit in the same network get 4K well. Also, if input has HDCP, it does not stream anything by known address, BUT stream goes to RX from this kit WELL.

            1. Sorry, there is a typo in my comment above. not sox, but socat.

              Also, here is stanza from HHD264 manual:

              set_session_key [0xhhhh(1~32)]
              OK-Success
              Error-Fail
              Where
              [0xhhhhh(1~32)]=0x000000~0xffff
              Set session key for encryption

              Dan trying to set 0x0000 key, but is it sensitive, if try six zeroes, as mentioned in manual? 0x000000 ? Could you try it?

    1. Pictures and model of the device would be nice as a start.
      Also tcpdump output. And make sure you don’t plug in a HDCP content in it.

    2. That sounds awesome! Do you managed to get a 4k30 stream out of it? What is the maximum bitrate you can specify in the web ui?

      1. Even with ffmpeg fixed, it’s still better to use iptables if possible, to unload the CPU (I guess)

  103. Port 554 is open on these devices when multicast check box is unticked. This would suggest that an RTSP connection should be possible. Has anyone had any look with that?

    Should be a case of using an address like rtsp://192.168.x.x:554/?????/?????

    1. Is that suppose to be rtsp via tcp? Even if it’s open, it still floods with disruptive amount of UDP packets to port 5004, creating an unnecessary network load.

      1. Yes via TCP, but with multicast unchecked the disruptive traffic on the switches dies down and you can’t connect via UDP. But without knowing the complete rtsp:// URL it’s not of much use.

        1. Not true, checking or unchecking it makes no difference, at least in all mentioned firmwares on this page.

          1. root@zeroshell ~> nmap -v -A 192.168.1.14

            Starting Nmap 6.47 ( http://nmap.org ) at 2017-06-08 18:44 IST
            NSE: Loaded 118 scripts for scanning.
            NSE: Script Pre-scanning.
            Initiating ARP Ping Scan at 18:44
            Scanning 192.168.1.14 [1 port]
            Completed ARP Ping Scan at 18:44, 0.00s elapsed (1 total hosts)
            Initiating Parallel DNS resolution of 1 host. at 18:44
            Completed Parallel DNS resolution of 1 host. at 18:44, 0.00s elapsed
            Initiating SYN Stealth Scan at 18:44
            Scanning 192.168.1.14 [1000 ports]
            Discovered open port 80/tcp on 192.168.1.14
            Discovered open port 554/tcp on 192.168.1.14
            Discovered open port 8000/tcp on 192.168.1.14
            Discovered open port 7002/tcp on 192.168.1.14
            Discovered open port 9001/tcp on 192.168.1.14
            Discovered open port 7000/tcp on 192.168.1.14
            Discovered open port 9999/tcp on 192.168.1.14
            Completed SYN Stealth Scan at 18:44, 0.22s elapsed (1000 total ports)

            Em…. yes it does port 554 is open only when Multicast is Disabled in the GUI as shown above. Also with Multicast disabled in the GUI you can’t view any streams by UDP in Unicast or Multicast.

            I’m using Firmware Version :4.0.0.0.20160427

            1. What gui? Web page or windows tool?
              Unchecked and I still see UDP flood, same version. You probably have a completely different brand or device.

              1. Either web page or windows tool.
                I’m using firmware from Danman’s Google Drive, so it’s the same hardware.

                You seem very dismissive of my findings but why do you think that check box is there?

        2. Does it not respond on invalid requests? How does it behave when you try to connect with some crafted rtsp request? Did you try that?

          1. I did try some crafted requests and even tried some software to brute force find the URL but these were all dictionary based and aimed at finding URLs for CCTV cameras or DVR’s.

            I will try again later and capture responses.

            But I think it would be more useful to capture requests coming from an RX device which I don’t have.

          2. 382 167.420978 192.168.1.15 192.168.1.10 RTSP 181 OPTIONS rtsp://192.168.1.10:554/h.264.sdp RTSP/1.0
            383 167.421794 192.168.1.10 192.168.1.15 RTSP 206 Reply: RTSP/1.0 200 OK
            383 167.421794 192.168.1.10 192.168.1.15 RTSP 206 Reply: RTSP/1.0 200 OK
            385 167.434189 192.168.1.10 192.168.1.15 RTSP 133 Reply: RTSP/1.0 404 Stream Not Found
            394 167.547218 192.168.1.15 192.168.1.10 RTSP 389 OPTIONS rtsp://192.168.1.10:554 RTSP/1.0
            395 167.547819 192.168.1.10 192.168.1.15 RTSP 205 Reply: RTSP/1.0 400 Bad Request

            1. Yes, I already tried it with my device and it responds correctly in RTSP protocol. Do you have any idea how can we find out the right url?

              1. By capturing packets from an RX device. But I don’t currently have one. Presumably the Rx device also has unicast settings with certain firmware?

                Unlike the UDP stream, The session for RTSP needs to be initiated by the client.

                  1. The RX device with Version :0.5.0.0.20160427 can switched to unicast mode from web page. And when you unplug the Ethernet you have on wireshark a rtsp teardown request at TXaddress/channel.airts/. Cseq:9 Session: something

              2. I believe Cameradar may be a good application for finding RTSP URL’s by brute force, however I’m having trouble getting it to install in Linux mint due to SQL issues if you want to give it a go?

                1. cameradar uses list of predefined urls and none of them work:

                  [rtsp @ 0x2726ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/: Server returned 404 Not Found
                  [rtsp @ 0x2135ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/1.AMP: Server returned 404 Not Found
                  [rtsp @ 0x3539ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/1/stream1: Server returned 404 Not Found
                  [rtsp @ 0x26c0ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/CAM_ID.password.mp2: Server returned 404 Not Found
                  [rtsp @ 0x2df6ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/GetData.cgi: Server returned 404 Not Found
                  [rtsp @ 0x3d3aba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/MediaInput/h264: Server returned 404 Not Found
                  [rtsp @ 0x3468ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/MediaInput/mpeg4: Server returned 404 Not Found
                  [rtsp @ 0x3b84ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/VideoInput/1/h264/1: Server returned 404 Not Found
                  [rtsp @ 0x3a40ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/access_code: Server returned 404 Not Found
                  [rtsp @ 0x3e50ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/access_name_for_stream_1_to_5: Server returned 404 Not Found
                  [rtsp @ 0x2e15ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/av0_0: Server returned 404 Not Found
                  [rtsp @ 0x27e0ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/av2: Server returned 404 Not Found
                  [rtsp @ 0x3cb2ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/avn=2: Server returned 404 Not Found
                  [rtsp @ 0x239cba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/axis-media/media.amp: Server returned 404 Not Found
                  [rtsp @ 0x24bbba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/cam: Server returned 404 Not Found
                  [rtsp @ 0x26c2ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/cam0_0: Server returned 404 Not Found
                  [rtsp @ 0x208fba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/cam0_1: Server returned 404 Not Found
                  [rtsp @ 0x2159ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/cam1/h264: Server returned 404 Not Found
                  [rtsp @ 0x37d5ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/cam1/h264/multicast: Server returned 404 Not Found
                  [rtsp @ 0x31aaba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/cam1/mjpeg: Server returned 404 Not Found
                  [rtsp @ 0x3ed1ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/cam1/mpeg4: Server returned 404 Not Found
                  [rtsp @ 0x3a6aba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/camera.stm: Server returned 404 Not Found
                  [rtsp @ 0x28adba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/ch0: Server returned 404 Not Found
                  [rtsp @ 0x29d9ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/ch001.sdp: Server returned 404 Not Found
                  [rtsp @ 0x34d5ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/ch01.264: Server returned 404 Not Found
                  [rtsp @ 0x2535ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/ch0_unicast_firststream: Server returned 404 Not Found
                  [rtsp @ 0x3d40ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/ch0_unicast_secondstream: Server returned 404 Not Found
                  [rtsp @ 0x2c87ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/channel1: Server returned 404 Not Found
                  [rtsp @ 0x201aba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/h264: Server returned 404 Not Found
                  [rtsp @ 0x2122ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/h264/media.amp: Server returned 404 Not Found
                  [rtsp @ 0x30f9ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/image.mpg: Server returned 404 Not Found
                  [rtsp @ 0x3309ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/img/media.sav: Server returned 404 Not Found
                  [rtsp @ 0x22cfba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/img/video.asf: Server returned 404 Not Found
                  [rtsp @ 0x31adba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/img/video.sav: Server returned 404 Not Found
                  [rtsp @ 0x2f96ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/ioImage/1: Server returned 404 Not Found
                  [rtsp @ 0x341bba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/ipcam.sdp: Server returned 404 Not Found
                  [rtsp @ 0x2de9ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/ipcam_h264.sdp: Server returned 404 Not Found
                  [rtsp @ 0x2c7aba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/live.sdp: Server returned 404 Not Found
                  [rtsp @ 0x3b83ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/live/h264: Server returned 404 Not Found
                  [rtsp @ 0x3bbbba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/live/mpeg4: Server returned 404 Not Found
                  [rtsp @ 0x3863ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/live_mpeg4.sdp: Server returned 404 Not Found
                  [rtsp @ 0x3ed0ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/livestream: Server returned 404 Not Found
                  [rtsp @ 0x29b2ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/livestream/: Server returned 404 Not Found
                  [rtsp @ 0x2455ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/media/media.amp: Server returned 404 Not Found
                  [rtsp @ 0x2885ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/media/video1: Server returned 404 Not Found
                  [rtsp @ 0x3ae8ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/mjpeg/media.smp: Server returned 404 Not Found
                  [rtsp @ 0x2d09ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/mp4: Server returned 404 Not Found
                  [rtsp @ 0x3b06ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/mpeg4: Server returned 404 Not Found
                  [rtsp @ 0x2457ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/mpeg4/1/media.amp: Server returned 404 Not Found
                  [rtsp @ 0x318cba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/mpeg4/media.amp: Server returned 404 Not Found
                  [rtsp @ 0x3d71ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/mpeg4/media.smp: Server returned 404 Not Found
                  [rtsp @ 0x2837ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/mpeg4unicast: Server returned 404 Not Found
                  [rtsp @ 0x2f00ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/mpg4/rtsp.amp: Server returned 404 Not Found
                  [rtsp @ 0x3465ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/multicaststream: Server returned 404 Not Found
                  [rtsp @ 0x2c6fba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/now.mp4: Server returned 404 Not Found
                  [rtsp @ 0x219bba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/nph-h264.cgi: Server returned 404 Not Found
                  [rtsp @ 0x3230ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/nphMpeg4/g726-640x: Server returned 404 Not Found
                  [rtsp @ 0x3f09ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/nphMpeg4/g726-640×480: Server returned 404 Not Found
                  [rtsp @ 0x2029ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/nphMpeg4/nil-320×240: Server returned 404 Not Found
                  [rtsp @ 0x3864ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/play1.sdp: Server returned 404 Not Found
                  [rtsp @ 0x2035ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/play2.sdp: Server returned 404 Not Found
                  [rtsp @ 0x2c4aba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/rtpvideo1.sdp: Server returned 404 Not Found
                  [rtsp @ 0x329aba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/rtsp_live0: Server returned 404 Not Found
                  [rtsp @ 0x2c1dba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/rtsp_live1: Server returned 404 Not Found
                  [rtsp @ 0x2978ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/rtsp_live2: Server returned 404 Not Found
                  [rtsp @ 0x3a71ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/rtsp_tunnel: Server returned 404 Not Found
                  [rtsp @ 0x3ccdba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/rtsph264: Server returned 404 Not Found
                  [rtsp @ 0x26b0ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/stream1: Server returned 404 Not Found
                  [rtsp @ 0x3268ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/user.pin.mp2: Server returned 404 Not Found
                  [rtsp @ 0x3a4dba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/user_defined: Server returned 404 Not Found
                  [rtsp @ 0x2eb1ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/video: Server returned 404 Not Found
                  [rtsp @ 0x39a5ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/video.3gp: Server returned 404 Not Found
                  [rtsp @ 0x24abba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/video.mp4: Server returned 404 Not Found
                  [rtsp @ 0x3e3fba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/video1: Server returned 404 Not Found
                  [rtsp @ 0x3a1cba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/video1+audio1: Server returned 404 Not Found
                  [rtsp @ 0x3bfaba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/vis: Server returned 404 Not Found
                  [rtsp @ 0x2310ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/wfov: Server returned 404 Not Found
                  [rtsp @ 0x2501ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/video.h264: Server returned 404 Not Found
                  [rtsp @ 0x37d1ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/11: Server returned 404 Not Found
                  [rtsp @ 0x3932ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/12: Server returned 404 Not Found
                  [rtsp @ 0x2012ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/ch1-s1: Server returned 404 Not Found
                  [rtsp @ 0x2528ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/live3.sdp: Server returned 404 Not Found
                  [rtsp @ 0x3360ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/onvif-media/media.amp: Server returned 404 Not Found
                  [rtsp @ 0x3eb4ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/axis-media/media.amp: Server returned 404 Not Found
                  [rtsp @ 0x37feba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/axis-media/media.amp?videocodec=h264: Server returned 404 Not Found
                  [rtsp @ 0x23e0ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/mpeg4/media.amp: Server returned 404 Not Found
                  [rtsp @ 0x3a8eba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/stream: Server returned 404 Not Found
                  [rtsp @ 0x3dd0ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/cam/realmonitor: Server returned 404 Not Found
                  [rtsp @ 0x300bba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/live: Server returned 404 Not Found
                  [rtsp @ 0x23ccba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/video.pro2: Server returned 404 Not Found
                  [rtsp @ 0x2cdaba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/videoMain: Server returned 404 Not Found
                  [rtsp @ 0x3df5ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/VideoInput/1/mpeg4/1: Server returned 404 Not Found
                  [rtsp @ 0x2d77ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/VideoInput/1/h264/1: Server returned 404 Not Found
                  [rtsp @ 0x2194ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/video.pro3: Server returned 404 Not Found
                  [rtsp @ 0x2ac8ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/video.pro1: Server returned 404 Not Found
                  [rtsp @ 0x21b0ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/video.mjpg: Server returned 404 Not Found
                  [rtsp @ 0x3a97ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/h264_vga.sdp: Server returned 404 Not Found
                  [rtsp @ 0x326fba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/media.amp: Server returned 404 Not Found
                  [rtsp @ 0x2e04ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/media: Server returned 404 Not Found
                  [rtsp @ 0x2558ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/ONVIF/MediaInput: Server returned 404 Not Found
                  [rtsp @ 0x2623ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/nphMpeg4/g726-640×48: Server returned 404 Not Found
                  [rtsp @ 0x258aba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/MediaInput/mpeg4: Server returned 404 Not Found
                  [rtsp @ 0x2ac5ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/MediaInput/h264: Server returned 404 Not Found
                  [rtsp @ 0x3bd3ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/Streaming/Channels/1: Server returned 404 Not Found
                  [rtsp @ 0x3c2cba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/ch0_0.h264: Server returned 404 Not Found
                  [rtsp @ 0x3c8bba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/rtsph2641080p: Server returned 404 Not Found
                  [rtsp @ 0x2e81ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/live/av0: Server returned 404 Not Found
                  [rtsp @ 0x2428ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/cam1/onvif-h264: Server returned 404 Not Found
                  [rtsp @ 0x2d1cba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/ucast/11: Server returned 404 Not Found
                  [rtsp @ 0x3043ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/LowResolutionVideo: Server returned 404 Not Found
                  [rtsp @ 0x3d41ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/1: Server returned 404 Not Found
                  [rtsp @ 0x3739ba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/live/ch00_0: Server returned 404 Not Found
                  [rtsp @ 0x2faeba0] method DESCRIBE failed: 404 Stream Not Found
                  rtsp://169.254.91.100/medias2: Server returned 404 Not Found

                  1. OK, the same as any other program I’ve tried including nmap with the rtsp-url-brute script. So capturing the output from an RX device may be the best option. Unless there are any URL’s contained in the config files you pulled from the flash drive?

                    1. Ok, sorry just read your post about RX device not having Unicast Mode. Strange that it does not have the option when the TX does.

                    2. If we can figure out how to decompress the SMEDIA02 sections in the firmware images, there’s a good chance that the RTSP URL will be sitting in there. There’s definitely some kind of compression going on. There are lots of partial strings, sometimes interrupted with bytes like 0xFC or 0xFE or 0xFF. In a few places I noticed strings split up with 0xFF every 8 bytes. I have no idea what compression algorithm it is. Maybe LZSS or something like that? I notice that there is always a value at 0x70 after the beginning of SMEDIA02 that appears to be some kind of a length, followed by a bunch of entries into what I guess might be some kind of dictionary. Then there is a string “SMAZ” followed by some other unknown information (maybe parameters of the compression algorithm?), followed by the length of the compressed data, followed by the data. I wonder if there is anybody out there who could look at it and identify the algorithm being used by looking at the compressed data.

                      I searched for SMAZ compression online and it’s a compression algorithm, but it’s not used for the type of application that the firmware is using — it’s used for compressing short English strings. It doesn’t appear to be the algorithm used on the firmware.

                    3. Hello! I became very excited to start reading this thread portion of all the comments.

                      And then … nothing! 😞

                      Did anyone ever figure out the URL for the RTSP?

  104. I’m still interested in figuring out more about the firmware update file format and the U3 and U4 chip contents. I dumped my U3 and U4 chip contents. Mine came with the 20161116 firmware, exactly matching the update file in the Google Drive, so I was able to try to match things up. Here are some tidbits I discovered while examining the files:

    The .PKG file consists of some header info followed by a bunch of sections that each start with an identifier (little endian 4-byte value) describing what they contain:

    3 is raw data to flash to the U3 chip. It’s followed by the address to write the data to, the length of data to flash, and then the data.

    5 is a folder to create on the FAT filesystem. It’s followed by the length of the folder name, and then the folder name.

    6 is a file to create on the FAT filesystem. It’s followed by the length of the filename, then the filename, then the length of the file, then the file data.

    There is also a section identifier 4, but I haven’t been able to figure out what it means. It appears before the FAT files and after the FAT files in the PKG file. It is followed by two 4-byte numbers and I have no idea what they mean.

    There are two raw data (3) sections in the PKG file, which flash presumably the bootloader and firmware to 0x00000000 and 0x00080000 as determined by danman earlier. The rest of the PKG file seems to consist of the files to put into the FAT partition.

    I determined a little more about the U3 contents. The data at 0x00250000 is actually an MBR partition table. It has two partitions, which are the two FAT filesystems that danman already found.

    There are a few references at the top of the PKG file to the 0x00250000 address. It’s probably telling the update where the partition table is so it knows where to find the FAT filesystem for storing the files included with the update.

    The last thing I discovered is that the jedi.rom file in the first FAT partition is the exact content of U4. So jedi.rom ends up being flashed to U4. I have no idea where the content of the update .bin file ends up being saved. It’s nowhere to be found in the dump of U3 or U4. I hope info this is useful to someone out there!

  105. Is it possible to downgrade an RTP version sender to send a Transport stream over UDP?
    Can this be done via a command or does an earlier version of the firmware have to be loaded?
    If so which is the latest UDP/TS version available?

    Thanks for the good work.

    1. Hi Charles,
      You need to load firmware with web interface as described in “update 14. dec”. This version supports MPEGTS only. Version of encoder doesn’t matter so much.

      BTW, you have very interesting blog 🙂

  106. Hi Danman,

    Great I will try that when I get my devices. As you saw on my blog
    I am heavily into digital TV transmission. I mentioned these capture
    devices on the BATC website
    http://www.batc.org.uk/forum/viewtopic.php?f=15&t=5030
    and there has been quite a lot of interest both for transmission and for
    streaming to the BATC’s streaming service. I will probably add support
    for the device in my DATV-Express transmitter software after I have
    had a chance to play with it.

    So a great find.

    1. Yes, I saw your modulator, nice work BTW. I’d also like to test some DVB signal generation but I’ll wait until modulator prices drop under $100.

  107. Hi,
    What a great article and discussions, I would like to know what’s the best new tested firmware version that could allow VLC open the streams and that would allow to change from multicast to unicast.

    My Tx Server shipped with Ver 4.0.0.020161031
    Encoder Ver: 71.2.0.11.2016.1031

    I Flashed it to Version : 4.0.0.0.20160427 Encoder Version : 7.1.2.0.11.20160407 , but I’m still not able in anyway to force vlc open the stream 🙁 Whilst, I can see ppl successfully opened the stream with vlc on Ver 4.0.0.020161031

    1. Well, downgrading to the oldest firmware allowed me to see the stream with VLC. Then I upgraded to Version : 4.0.0.0.20160427 Encoder Version : 7.1.2.0.11.20160407 VLC is working too 😀

  108. I bought a pair of Monoprice extenders (PID 14158) and they do seem to be the same as LKV373A. However, the board is a different shape from yours. It has “V2.1” silkscreened on it. It also has what appears to be unpopulated pads for PoE components.

    Out of the box, it came with
    Version :4.0.0.0.20160131
    Encoder Version :7.1.2.0.11.20160131

    which isn’t in the set of firmware downloads you have.

    I upgraded to 20160427 from your Drive folder. Superficially, it seems to work, but after about 10 seconds of streaming at 1080p, the device appears to power cycle. (The blue power LED stays on, but the green streaming LED and the orange activity light both go out for about 2 seconds.) I tried dropping the bitrate to 10 Mbps (from the default 15) and that didn’t seem to make it any more stable.

    Have you seen this behavior? It makes it completely unusable as an encoder, unfortunately.

      1. I hadn’t tried any other versions because I thought 20160427 was the only one that allowed saving the destination IP. I just tried 20160722 and indeed it streams 1080p reliably at 15 Mbps, albeit at 1728×1080, and the destination IP is not saved. Also this version *does* have the zero-length-packet problem, despite what a commenter above said.

        Maybe PKG 20160427 + Encoder 20160722 would work together?

        1. Indeed, that combo (PKG 20160427 + Encoder 20160722) appears to be stable. It’s still 1728×1080 though, and the info.html page can’t read the encoder’s version number.

  109. Few analysis of output transport :
    – Output transport stream is not constant : video bitrate is nearly constant but the overall sum is not (PCR clock is not reliable). Thus in this state, it could not feed directly a modulator.
    – Null UDP packets could be a method to add padding instead of transport stream null packet defined by the norm.
    – IT9919 is used in a DVB-T modulator from Hides : HV320-E. Is is possible to download a firmware : https://www.dropbox.com/sh/v24cgkx8pg3pp49/AAD_YIQj1DjeW9Bg2Ste2AWaa?dl=0
    Coud be interesting to compare this from lenkeng
    – Analysis datasheet , a video composite input should be possible.

  110. So i was messing around with my transmitter, and i have messed up an firmware upgrade.. cant find it on the network anymore ( wireshark scan). Is there a reset? The reset button does not seem to do anything.

  111. how can i fix this bug i can only watch 3-4 minutes . and restart playing.

    C:\Windows\system32>cd C:\Program Files (x86)\myFFmpeg\

    C:\Program Files (x86)\myFFmpeg>ffmpeg.exe -i udp://@239.255.42.42:5004 -vcodec copy -f mpegts udp://127.0.0.1:1234
    ffmpeg version N-86537-gae6f6d4 Copyright (c) 2000-2017 the FFmpeg developers
    built with gcc 7.1.0 (GCC)
    configuration: –enable-gpl –enable-version3 –enable-cuda –enable-cuvid –enable-d3d11va –enable-dxva2 –enable-libmfx –enable-nvenc –enable-avisynth –enable-bzlib –enable-fontconfig –enable-frei0r –enable-gnutls –enable-iconv –enable-libass –enable-libbluray –enable-libbs2b –enable-libcaca –enable-libfreetype –enable-libgme –enable-libgsm –enable-libilbc –enable-libmodplug –enable-libmp3lame –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-libopenh264 –enable-libopenjpeg –enable-libopus –enable-librtmp –enable-libsnappy –enable-libsoxr –enable-libspeex –enable-libtheora –enable-libtwolame –enable-libvidstab –enable-libvo-amrwbenc –enable-libvorbis –enable-libvpx –enable-libwavpack –enable-libwebp –enable-libx264 –enable-libx265 –enable-libxavs –enable-libxvid –enable-libzimg –enable-lzma –enable-zlib
    libavutil 55. 66.100 / 55. 66.100
    libavcodec 57. 99.100 / 57. 99.100
    libavformat 57. 73.100 / 57. 73.100
    libavdevice 57. 7.100 / 57. 7.100
    libavfilter 6. 94.100 / 6. 94.100
    libswscale 4. 7.101 / 4. 7.101
    libswresample 2. 8.100 / 2. 8.100
    libpostproc 54. 6.100 / 54. 6.100
    [h264 @ 0000000002727580] SPS unavailable in decode_picture_timing
    [h264 @ 0000000002727580] non-existing PPS 0 referenced
    [h264 @ 0000000002727580] SPS unavailable in decode_picture_timing
    [h264 @ 0000000002727580] non-existing PPS 0 referenced
    [h264 @ 0000000002727580] decode_slice_header error
    [h264 @ 0000000002727580] no frame!
    [h264 @ 0000000002727580] SPS unavailable in decode_picture_timing
    [h264 @ 0000000002727580] non-existing PPS 0 referenced
    [h264 @ 0000000002727580] SPS unavailable in decode_picture_timing
    [h264 @ 0000000002727580] non-existing PPS 0 referenced
    [h264 @ 0000000002727580] decode_slice_header error
    [h264 @ 0000000002727580] no frame!
    [h264 @ 0000000002727580] SPS unavailable in decode_picture_timing
    [h264 @ 0000000002727580] non-existing PPS 0 referenced
    [h264 @ 0000000002727580] SPS unavailable in decode_picture_timing
    [h264 @ 0000000002727580] non-existing PPS 0 referenced
    [h264 @ 0000000002727580] decode_slice_header error
    [h264 @ 0000000002727580] no frame!
    [h264 @ 0000000002727580] SPS unavailable in decode_picture_timing
    [h264 @ 0000000002727580] non-existing PPS 0 referenced
    [h264 @ 0000000002727580] SPS unavailable in decode_picture_timing
    [h264 @ 0000000002727580] non-existing PPS 0 referenced
    [h264 @ 0000000002727580] decode_slice_header error
    [h264 @ 0000000002727580] no frame!
    [h264 @ 0000000002727580] SPS unavailable in decode_picture_timing
    [h264 @ 0000000002727580] non-existing PPS 0 referenced
    [mpegts @ 0000000000d56680] DTS 291027600 #0:0 (copy)
    Stream #0:1 -> #0:1 (mp2 (native) -> mp2 (native))
    Press [q] to stop, [?] for help
    Output #0, mpegts, to ‘udp://127.0.0.1:1234’:
    Metadata:
    encoder : Lavf57.73.100
    Stream #0:0: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1280×720, q=2-31, 50 fps, 50 tbr, 90k tbn, 90k tbc
    Stream #0:1: Audio: mp2, 48000 Hz, stereo, s16, 384 kb/s
    Metadata:
    encoder : Lavc57.99.100 mp2
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch4:41.49 bitrate=3392.6kbits/s speed=1.07x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch4:43.56 bitrate=3387.1kbits/s speed=1.07x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch4:47.61 bitrate=3376.5kbits/s speed=1.07x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch4:53.23 bitrate=3362.5kbits/s speed=1.07x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch4:55.77 bitrate=3356.1kbits/s speed=1.07x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch4:57.33 bitrate=3352.4kbits/s speed=1.07x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch5:00.43 bitrate=3343.8kbits/s speed=1.07x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch5:04.00 bitrate=3335.1kbits/s speed=1.06x
    [mp2 @ 00000000027298e0] Header missing7kB time=00:05:04.53 bitrate=3333.6kbits/s speed=1.06x
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch5:08.11 bitrate=3325.2kbits/s speed=1.06x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch5:10.15 bitrate=3320.6kbits/s speed=1.06x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch5:10.65 bitrate=3319.4kbits/s speed=1.06x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch5:19.00 bitrate=3300.8kbits/s speed=1.06x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch5:52.29 bitrate=3236.8kbits/s speed=1.06x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch6:39.33 bitrate=3157.3kbits/s speed=1.05x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch7:02.88 bitrate=3117.2kbits/s speed=1.05x
    [mp2 @ 00000000027298e0] Header missing4kB time=00:07:03.33 bitrate=3116.9kbits/s speed=1.05x
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch7:08.44 bitrate=3109.4kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch7:10.48 bitrate=3106.6kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch7:18.19 bitrate=3096.0kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch7:19.75 bitrate=3094.0kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch7:25.89 bitrate=3085.9kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch7:37.72 bitrate=3070.1kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch7:52.03 bitrate=3052.3kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch8:08.01 bitrate=3033.5kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch8:10.08 bitrate=3031.8kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing3kB time=00:08:10.56 bitrate=3031.6kbits/s speed=1.04x
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch8:13.20 bitrate=3029.0kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch8:19.41 bitrate=3024.2kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing6kB time=00:08:19.80 bitrate=3024.8kbits/s speed=1.04x
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch8:32.37 bitrate=3001.1kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch8:37.51 bitrate=2997.5kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch8:43.58 bitrate=2993.4kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 0000000000d56680] PES packet size mismatch8:45.64 bitrate=2992.2kbits/s speed=1.04x
    [mp2 @ 00000000027298e0] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    frame=23832 fps= 44 q=-1.0 size= 194969kB time=00:08:55.00 bitrate=2985.3kbits/s speed=0.997x

    1. HI!
      I think it’s impossible to use ffmpeg to read that stream directly.
      You have to use a firewall rule to block empty UDP packets. I’ve never seen an iptables equivalent firewall to Windows. So, you have 3 options:
      1) Use vlc to get stream and somehow redirect to ffmpeg;
      2) Use linux (maybe osx);
      3) Try to compile (to windows) ffmpeg version that ignores udp empty packets.

      If someone knows how to block empty udp packets in Windows, please let us know.
      Thanks.

  112. Hi. Great write up thanks. I tried the firmware in IPTV_command_library_and_tool_20160303/TX but didn’t see the telnet interface or web interface, plus for some reason was unable to connect VLC to it – seemed like it wasn’t working. I then tried LKV373A_TX_ENCODE_20160722.bin and LKV373A_TX_SENDER_20160722.PKG, now I can connect VLC but I still don’t see the telnet interface on 9999. Just checking which is the alternative fimware for different device that has the web interface for setting up and the telnet interface? Thanks.

  113. Hi,i have successfully installed 3 of this devices working fine….I want to ask a favor anyone reading this blog … i have one deviece with bad flash(encoder:) this was my frist attempt long time ago…..if anyone could made a full flash dump from a working lkv373a ENCODER i will really appreciate….or anyone having a flash dump i belive i could repair my device….:)
    Thanks in advance
    Scoo

    1. Hi!

      You 3 of these devices on the same network and all pointed to the same PC machine?

  114. Hehehe nevermind: today a fixed!!!!!finally I reflashed my own flashdump and I got working:)good and cheap device a love it..thanx Dan…

  115. Hi everyone, I’ve run into some trouble – I have managed to get VLC showing the multicast stream (udp://@238.255.42.42:5004) and thought I’d try the windows.exe to try and work out more about this device. I am trying it on a windows 10 machine and a RasPi 3 (VLC didn’t work more than a single frame on the RasPi but Win PC worked fine). I’m connecting directly via ethernet cable – no router involved as I think my router blocks multicast (Huawei HG633).

    So my problem is that I have done something (literally only pressed factory reset, reboot and updated the IP address boxes) and I can’t get VLC to play. I use the GUI version of VLC because I’m a beginner in Linux and the debug log window says “core stream error: cannot pre fill buffer”.

    I was getting UDP packets of 1316 before “something” went wrong. Now both wireshark and tcpdump are showing the udp packets are 1328, as per the old version of the system. Did my factory reset change this? Only other thing I can think of (but I have changed to no improvement) is the unicast/multicast setting (which appeared to be on unicast when I first tried the IPTV_command_library_and_tool).

    Please could someone give me hints at what to try next? The end goal is to receive the video and audio directly to an SBC’s ethernet connection from a freeview box and then rebroadcast wirelesslty as an RTP/RTSP stream on the home network.

  116. Hi !1328 should be rtp….read the full article above.:)
    You can try playing using vlc like this rtp://@239.255.42.42:5004
    If not working like that post a longer logfile created with tcpdump

  117. I’ve noticed one small detail in encoder firmware that seems like everyone missed till now, it contains string “Audio Codec Plug-Ins (c) 2008 SMedia Tech. Corp.”, suggesting there is also some other company involved in creation of this device. And it seems to be the one responsible for SMEDIA02 container. Also the encoder FW itself is quite interesting, because before SMEDIA blob, which content is compressed, it contains quite a lot of uncompressed data at the beginning. It might be the good entry point to reversing the compression.

    Also, I gathered as much knowledge as I could find in Wiki on my Github: https://github.com/v3l0c1r4pt0r/lkv-wiki/wiki If I missed something, it should be community-editable, so feel free to add it. Furthermore I was able to successfully dissect the image to smaller parts, so I should now be able to write some generic script for unpacking the firmware. Unfortunately compression blocks further pushing the topic.

  118. Hopefully this is an easy one – I can’t get VLC to play the stream live. I’ve captured and saved the raw data stream from wireshark and I can open that saved flat-file with VLC so it’s not a codec issue, I don’t think.

    My tcpdump stream looks like this

    19:46:13.662472 IP 10.5.0.2.avt-profile-1 > 239.255.42.42.avt-profile-1: UDP, length 1316
    19:46:13.662701 IP 10.5.0.2.avt-profile-1 > 239.255.42.42.avt-profile-1: UDP, length 1316
    19:46:13.662947 IP 10.5.0.2.avt-profile-1 > 239.255.42.42.avt-profile-1: UDP, length 1316
    19:46:13.663259 IP 10.5.0.2.avt-profile-1 > 239.255.42.42.avt-profile-1: UDP, length 1316
    19:46:13.663503 IP 10.5.0.2.avt-profile-1 > 239.255.42.42.avt-profile-1: UDP, length 1316
    19:46:13.663733 IP 10.5.0.2.avt-profile-1 > 239.255.42.42.avt-profile-1: UDP, length 1316
    19:46:13.663979 IP 10.5.0.2.avt-profile-1 > 239.255.42.42.avt-profile-1: UDP, length 1316

    and running vlc with the line “vlc udp://@238.255.42.42:5004” or “vlc rtp://@238.255.42.42:5004” doesn’t work. I just get the VLC window with nothing but the icon, no errors or anything.

    Version :4.0.0.0.20160427

    Encoder Version :7.1.2.0.11.20160407

    I’ve also tried using ffmpeg to proxy with the same result, VLC doesn’t render the stream.

    1. If you see received packets counter in VLC increasing then your input signal is probably HDCP secured. If you see zero there, check your routes and rp_filter

  119. No one can post a compiled ffmpeg//ffplay x64 version with the udp packet zero patch?
    I would like to use ffmpeg instead vlc
    thanks

  120. And to think I was going to do all this myself. Thank you Google. I figured it had to be some standard, because one of the advertised benefits of the protocol is the ability to use a standard switch or router to split the signal to different receivers. A normal eth switch wouldn’t know how to route any non-standard packets. Glad they weren’t encrypted though. 😛

  121. Please excuse my ignorance as a NOOB…
    Can I connect the Sender unit directly to my laptop in order to receive the capture? or does the RJ45 cable have to connect to the router?

    1. Hi Alex,
      The sender unit will encode a video (HDMI in on the unit) into packets that will then be sent through your network, where they could later be captured or played on a computer. It all depends whether your source is your laptop or some other video source. OpenTechLabs has a great noob friendly introduction to this device and how it works. You can learn a lot from it.

      Cheers

      1. Thank you for the response.
        I did watch the Youtube video from OpenTechLabs (twice) and found it extremely helpful.
        The one piece I’m still not understanding is whether I must use a router. Meaning, if I connect my cable STB to the HDMI input of the sender unit, and then connect the network cable from the sender unit directly into my laptop – will I be able to ‘capture’ the signal from my STB on my laptop? Or does the network cable have to go from the sender unit to my router?

        Thank you again.
        Alex

  122. Hi,bit confused:is there significant difference between encoder firmware versions?i mean to get lower latency?anyone can point me to right direction i’am using of course the “iptv” firmware….
    thanks

  123. I compiled ffmpeg for Windows with last git sources, applying patches manually on the 7 .c files (udp,avio,aviobuf,cache,file,subfile,wtvdec) but it doesn’t work also with ffplay

          1. Could not find codec parameters for stream 1 (Unknown: none): unknown codec
            Consider increasing the value for the ‘analyzeduration’ and ‘probesize’ options

            as usual

            ffmpeg -y -i udp://@239.255.42.42:5004 out.mp4
            ffmpeg version N-87231-gfde5c7dc79 Copyright (c) 2000-2017 the FFmpeg developers
            built with gcc 7.2.0 (Rev1, Built by MSYS2 project)
            configuration: –enable-gpl –enable-libx264 –enable-libmp3lame –enable-nonfree –enable-libfdk-aac
            libavutil 55. 74.100 / 55. 74.100
            libavcodec 57.105.100 / 57.105.100
            libavformat 57. 81.100 / 57. 81.100
            libavdevice 57. 8.100 / 57. 8.100
            libavfilter 6.103.100 / 6.103.100
            libswscale 4. 7.103 / 4. 7.103
            libswresample 2. 8.100 / 2. 8.100
            libpostproc 54. 6.100 / 54. 6.100
            [mpegts @ 00000000001b75a0] probed stream 1 failed
            [mpegts @ 00000000001b75a0] Could not find codec parameters for stream 1 (Unknown: none): unknown codec
            Consider increasing the value for the ‘analyzeduration’ and ‘probesize’ options
            Input #0, mpegts, from ‘udp://@239.255.42.42:5004’:
            Duration: N/A, start: 3431.192000, bitrate: 192 kb/s
            Stream #0:0[0x7d2]: Audio: mp3, 48000 Hz, stereo, s16p, 192 kb/s
            Stream #0:1[0x7d1]: Unknown: none
            Stream mapping:
            Stream #0:0 -> #0:0 (mp3 (native) -> aac (native))
            Press [q] to stop, [?] for help
            Output #0, mp4, to ‘out.mp4’:
            Metadata:
            encoder : Lavf57.81.100
            Stream #0:0: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s
            Metadata:
            encoder : Lavc57.105.100 aac
            size= 1kB time=00:00:00.04 bitrate= 265.1kbits/s speed=3.73x
            video:0kB audio:1kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 137.647064%
            [aac @ 00000000026ce0a0] Qavg: 21929.953

              1. Ok, not yet avaiable (ffmpeg-20171016-7480f23-win64-static.zip)
                ffmpeg version N-87871-g7480f232d2

                  1. Yes. I will try later, at home

                    If it work maybe I will write an application to record the udp stream easily through a ffmpeg process

                  2. Yes, now it work fine saving stream as raw

                    ffmpeg.exe -y -i udp://@239.255.42.42:5004 -vcodec copy -acodec copy test.ts

                    Not very well when decoding. keep trying

  124. I’ve made some progress in reversing the thing. It seems that in encoder firmware more than a half of the image consists of raw machine code. Unfortunately it is likely that it uses some custom soft processor for executing it, so it is impossible to just disassemble it. However I might be able to reverse engineer most important instructions. And if I am right, after that I should find SMEDIA decompression algorithm there.

      1. If I haven’t discouraged you with my short description 🙂 , then maybe. You can contact me by email, I’ll tell you how I’m going to do that so you can decide if you want to help.

  125. Hello everybody.
    It’s possible to use Lkv383A with moddig firmware for create a personal IPTV stream, for connect it any want device?

    1. You may try to wrap this stream into DLNA using Serviio – just add it to the library as online source like rtsp://[address]:[port].
      I think you should also have unicast enabled instead of multicast before you implement this. 373A will send stream directly to your PC with Serviio and Serviio will announce the DLNA stream to all Smart TVs in your network. If you leave multicast, then it will spam the whole network with packets.

  126. Investigations into scrambling with HDCP: 2015 MacBook Pro outputs with HDCP enabled. When connected into a v3.0 TX with IPTV firmware I see scrambled PES packets in the TS stream. Specifically, while the PES Start Code should be `00 00 01` and is for the first 2-3 seconds after connecting, it quickly switches to something scrambled and video becomes unplayable with VLC. Currently trying to understand how the RX unit would negotiate the key, and what cipher spec is being used.

    1. I guess that encryption key is static and can be set via telnet and those strange empty UDP packets contain initialization vector (they are not empty acctualy but have ip length set smaller so they seem to be empty)

  127. Hi,
    Still amazed by this article and what achieved with this device.
    BTW I’m sorry if question is stupid but I want to be able to configure my router’s ip (wrt3200acm running LEDE) as unicast ip and then I’d like to access that stream from other clients from my lan / WIFI. Unfortunately I’m so bad a firewall routing so I can easily access udp://router_ip from the router itself but can’t access it from the rest of the lan. To do so I had to install crtmpserver directly on the router and forward udp stream to rtmp ip but it frankly seems a ovekill. Can anyone tell me if it can be done? Multicast solution works fine after I configured igmp spoofing on router / switches and installed udpxy on router but I have a couple of powerline which apparently don’t support igmp spoofing so multicast clogs the traffic toward those powerline. Thanks.

      1. I just reread my question and it basically makes not much sense cause it the stream is unicast there’s probably no way to dupolicate without any server application like crtmpserver. Basically I was able to setup multicast in a pretty satisfatory way (not glitches, not block if you use touter and swithes with IGMP v2 support. An alternative way should be to use Unicast ip to my router and use ffmpeg to “duplicate” the stream: 1) on local crtmpserver 2) pointing to a Nginx + rtmp module on a remote VPS so I can use internal bandwidth accessing to local rtmp server but expose the same stream on the wan using the much more upload bandwidth of the vps. latency is a bit more but it’s OK. I used the ‘pipe’ approach cause ‘tee’ doesn’t seem to work with “a:v copy”. I should be pretty happy with this setup but unfortunately after a bout 1.00 / 1.30 hrs of streaming on of the connected clients hangs and one of my router’s CPUs jumps to 100% until the client doesn’t get disconnected so it’s not a perfect solution. The string I’m using is
        ffmpeg -i “udp://@:5004?buffer_size=163840&overrun_nonfatal=1&fifo_size=524288” -c:v copy -c:a aac -ar 48000 -b:a 48k -ac 2 -rtmp_live live -f flv – | ffmpeg -f flv -i – -c copy -f flv “rtmp://:7567/live/live” -c copy -rtmp_live live -f flv “rtmp://localhost:7567/flvplayback/live”.
        If anyone has a better approach please let me know. Thanks.

  128. Hi Everybody,
    I just got my set of HDMI extenders and I have a constant latency of about 3 seconds (normal operation as well as using it with vlc). I tried different Input sources (RPI, Camery, Macbook, Windows-Laptop) but the latency kept constant.

    Anyboody experiencing the same issue?

    Hardware Version 3, Firmware: Version :4.0.0.0.20161116, Encoder Version :7.1.2.0.11.20161116

    1. You can change the VLC Caching setting (= buffer) to lowest latency, then the latency drops well below 0.5sec

      Cheers

      Matthijs

  129. Thank you for this detailed article.

    I’m hoping to use one of these plus a USB to CAT5 adapter as a cheap network KVM. However, I’m not able to get usable video at all. There will be portions of screen visible, but not much else. I’ve tried a variety of firmware versions, with a server with Intel on-board graphics and my MacBook (in Windows to avoid HDCP issues) as video sources. Piping through ffmpeg makes the video a tad more reliable (as of commit 5834cba), but it’s not usable yet.

    I also tried switching to unicast (I don’t need it as my switch supports IGMP), but no improvement there.

    Even the default “signal loss” message when no source is connected produces corrupt video.

    At this point, my best idea is to order a receiver, or an HDMI splitter to strip HDCP, just so I can determine if there’s a hardware issue or not. Any other ideas?

    FYI, some of your images (like https://blog.danman.eu/wp-content/uploads/2016/12/hdmi_resol.png) are 404’ing.

    1. I think I must have made a mistake in trying unicast before. I discovered that in general, multicast over wifi is a Bad Idea. Switching to a wired connection or using unicast over wifi gives me a usable picture.

      A few more notes:

      * Once I switch to unicast, the adapter web UI and telnet stop responding until I reboot it by hand.
      * Once in unicast, frames are transmitted even if the client isn’t trying to access it, unlike multicast where transmission will stop. For now, I just disable the port on the switch when I don’t need access.
      * As of VLC 2.2.6, I don’t need to use ffmpeg to keep a stream active. Nice!
      * The 3-second or so lag makes KVM-style usage difficult, but fine for basic pre-network and BIOS troubleshooting. I certainly wouldn’t want to use this for a game console.

  130. For those who were looking for it, here’s a library to send IR codes to the HDMI extenders, for those that have IR capabilities. Written in Powershell.

    function Send-Datagram {
    [CmdletBinding()]
    param(
    [parameter(Mandatory=$true)][array] $data,
    [parameter(Mandatory=$false)][string] $address=”192.168.1.11″, #default device address I think
    [parameter(Mandatory=$false)][int] $port=7001 #IR port on my device
    )

    $ipAddress = $null
    $parseResult = [System.Net.IPAddress]::TryParse($address, [ref] $ipAddress)

    if ( $parseResult -eq $false )
    {
    $addresses = [System.Net.Dns]::GetHostAddresses($address)

    if ( $addresses -eq $null )
    {
    throw “Unable to resolve address: $address”
    }

    $ipAddress = $addresses[0]
    }

    $endpoint = New-Object System.Net.IPEndPoint($ipAddress, $port)
    $udpClient = New-Object System.Net.Sockets.UdpClient
    $encodedData = @();
    ForEach($i in $data){
    $encodedData += [BitConverter]::GetBytes($i);
    }
    write-host $encodedData
    $bytesSent=$udpClient.Send($encodedData,$encodedData.length,$endpoint)

    $udpClient.Close()
    }

    #NECData creates a packet containing an NEC device code

    function NECData{
    [CmdletBinding()]
    param(
    [parameter(Mandatory=$true)][int] $address,
    [parameter(Mandatory=$false)][int] $command
    )
    $basetime = 0x39 #57 decimal, approx 570uS, corresponds to 562.5uS base time in NEC
    $addr_string = [convert]::ToString($address,2).PadLeft(8,”0″) #Convert to a string containing binary representation as 1 and 0
    $addr_c_string = [convert]::ToString(255-$address,2).PadLeft(8,”0″) #Convert to a string containing binary complement as 1 and 0
    $cmd_string = [convert]::ToString($command,2).PadLeft(8,”0″) #Convert to a string containing binary representation as 1 and 0
    $cmd_c_string = [convert]::ToString(255-$command,2).PadLeft(8,”0″) #Convert to a string containing binary complement as 1 and 0
    $encode_array = “$cmd_c_string$cmd_string$addr_c_string$addr_string”.ToCharArray(); #convert to a char array, note the clever reverse below. NEC is LSB first
    [array]::Reverse($encode_array)
    write-host $encode_array
    [int16[]] $sequence = ($basetime*16),($basetime*8);##AGC pulse time in protocol, 16 units on, 8 off
    for ($i = 0; $i -lt $encode_array.Length; $i++)
    {
    $sequence += $basetime
    $sequence += (([convert]::ToByte($encode_array[$i])-48)*2*$basetime)+$basetime #make the sequence a multiple of the basetime
    }
    $sequence += $basetime; #add 1 and a half 0 pulses as the tail
    $sequence += $basetime;
    $sequence += $basetime;

    Write-Host $sequence
    While($sequence.Length -lt 256) {$sequence += 0} #Fill to 256 bytes long
    $sequence += $(0x46,0,0,0,50,0) # Config Settings, see struct at beginning
    $sequence #return sequence

    }

    Send-Datagram(NECData -address 1 -command 25);

  131. Hi, I Have a AGPtek Newest LKV372PRO, do you know if i could use this firmware version? or there is another alternative ?

    Cheers

      1. The best way to know would be to perform the same captures (tcpdump/wireshark/whatever) to see what sort of packets it sends.

    1. Hi there, I second this question.
      The sender is micro-usb powered and plugs directly into source device’s HDMI port (may be a bit bulky though)
      LKV372PRO can be found @ USD 26 for bundled extender & receiver, making it a cheaper alternative… if it indeed works.
      It also has a more expensive version with HDMI loop out [passthrough?], which is probably the function shown in the dropdown box at 24:17 https://youtu.be/SAvGylthpkU?t=1457

  132. Love everyone’s work on this – thank you to all have contributed!
    I have 1 question though – is anyone aware of a cheap 4k downscaler that actually works? The signal I wish to send is 4k (for my main TV) but needs to be scaled down to 1080p for distribution by the Lenkeng to the rest of the house.

    Something similar to https://www.amazon.co.uk/Revesun-Converter-Supports-Compatible-Multi-HDMI-HDMI-4K-Scaler/dp/B01AI4IF7M/ but with better reviews!

  133. I had a device which was running fine with LKV373A_TX_V3.0c_d_20161116_PKG.PKG and LKV373A_TX_V3.0c_d_20161116_bin.bin. Since the webserver was missing i downgraded to IPTV_TX_PKG_v4_0_0_0_20160427.PKG and Encoder_20160407_0942.bin. Unfortunately, the device is not stable. I get the following:

    With firmware IPTV_TX_PKG_v4_0_0_0_20160427
    – Encoder 20160407_0942.bin: Video Unlocked (No video)
    – Encoder V3.0c_d_20161116_bin: Only 1728×1080 video

    Any idea why the video doesnt get locked with 20160407_0942 encoder firmware?
    Funnily enough, i have another device which works fine with v4_0_0_0_20160427 and 20160407_0942 versions.

  134. Hi anyone was able to change the framerate?whatever i do i ‘am getting 29.9fps with hd resolution.pls give me advice, re-encoding with the desired framerate costs a lot of cpu power 🙁

  135. Has anyone managed to change the sink IP? i’d like two senders on the same subnet, I managed with danman’s instructions to change the sender IP and once I reduced caching to 200 ms in vlc, udp streaming works well enough. rtp throws sdp errors which I don’t know how to fix.
    Thanks

    1. PS:
      Version : 4.0.0.0.20161116
      Encoder Version : 7.1.2.0.11.20161116
      tcpdump 14:40:26.491523 IP 10.10.10.11.5004 > 239.255.42.42.5004: UDP, length 1316

      what I call sink IP is 239.255.42.42

  136. I could not get this working if anyone has more successen with frame rate change(without re-encode)pls share with us

  137. What do you think is the reason why with the sender switched on and the receiver turned off the network is practically blocked (even a simple ping at the router) while when both devices are switched on everything works regularly?

  138. I installed udpxy on the router and serviio on the QNAP TS453Pro. I set up an online service on SERVIIO like this: http://192.168.1.1:4022/udp/239.255.42.42:5004 but nothing works!
    Where am i wrong??
    When I try to check the flow on the SERVIIO I get it is not valid. I can not figure out where I’m wrong. The router is ASUS RT68U with the latest RMERLIN firmware

  139. PS:
    What I would like to achieve is to transmit the flow generated by the LK373 in multicast to non-smart TV but having access to DLNA…

    1. Hi, I was just able to do that installing this on my WRT3200 acm running LEDE. It’s tightly integrated with udpxy. Now I want to find out if there’s a way to expose dlna on the wan.
      http://xupnpd.org/

      Regards.

    2. You need at first drop zero length packets (see “Iptables rule” in post), then put that address ( 239.255.42.42:5004 ) to ffmpeg , so it’ll regenerate new, “good” udp stream. Then you need to put that new stream to udpxy, so it will be recognized right. See post and comments, guys talked about it many times.

  140. Anyone got rtp working on firmware IPTV_command_library_and_tool_20160303?
    I tried to configure using “/dev/info.cgi?action=streaminfo&rtp=on&multicast=of&mcastaddr=239.255.42.43”, but always stay raw MPEG-TS.
    I’m stuck with fw 20151028 to use rtp, but here the problem is that destination can’t be persisted between reboots.

    Any ideas how to get both (rtp and persistent mcast destination)?

    1. I want to know too!
      Did you find a way to get rtp with the latest firmware?
      Does 20151028 at least support fullHD?

  141. Hi eveybody,

    I’ve got
    TX SERVER : Version : 4.0.0.0.20161116
    Encoder Version : 7.1.2.0.11.20161116
    should I downgrade or not ?
    I can’t access to the web interface ….
    any help will be very appreciated 🙂
    Dimitri.

  142. Can anyone recommend a good place to buy these now? Bangood link from OpenTechLabs link is sold out. There is plenty of similar looking ones on Aliexpress but no “LKV373A”, found one or two on ebay but too sure.

  143. Does anybody know of a device pair which not only displays Full HD 50 Hz but also is able to encode/decode at 50 fps?
    So far I have found only devices that encode at 25/30 fps – so you have 1080p 50 Hz signal but in fact this signal is only 25 fps (not suitable for watching sports).

    1. I’ve a similar question regarding the de-interlace method of LKV373A transmitter.
      Indeed I have a input video source which is 1080i@50Hz (25 fps interlaced).
      However the network stream only has 1080p@25Hz (25 fps progressive) which looses the “motion perception” of the video.

      There is any way of getting a network stream that retains the full motion of the video (1080i@50Hz or 1080p@50Hz)?

      1. Recently I started to think if this is possible at all. Somebody on amazon.com has stated that he migrated to Gofanco extenders and they seem to broadcast @50fps, but I’m a bit sceptical. Maybe devices which are advertised as 4K@30fps can produce FullHD @50fps stream.

        In the worst case scenario I think I will grab HDMI DVB-T modulator, they are coming even cheaper and cheaper (I recall in 2012 the lowest price was around 1k $ for Full HD, now it is close to 150 $)

        1. Hi Oleg,
          Thanks for your comments.

          However, according to the specs available at http://www.lenkeng.net/Index/detail/id/149
          the LKV373A supports 1080i@50Hz and 1080p@50Hz!
          This means that, “theoretically”, if I’ve a 1080i@50Hz input stream, I should expect 1080i@50Hz or 1080p@50Hz on the transmitted network stream, right? 🙂

          Do you think that there is any command/setting to control the internal de-interlace mechanism of the transmitter?

          1. Hi Luis,

            Yes, but not always 50Hz correlate with FPS. In ideal conditions (unaltered source) 50 Hz signal is 50 fps HD signal, straight from the DVB-S box. Then, the encoder encodes the 50 Hz stream at 25 fps and decoder decodes it back to 50 Hz. But unfortunately this 50Hz contains only 50% of the original frames.

            Imagine like you have 1920×1080 JPG picture, you downscale it to 640×480, save and inflate back to 1920×1080. In the end you will not have real Full HD picture – you will have SD picture which fakes itself as ‘full HD’. The same is here.

            I’m very doubtful these devices which are marketed as HDMI-over-IP can encode at rates above 30 fps.
            The devices which are advertised as ‘H.264 encoders’ seem to be capable of encoding at higher FPS rates but their price is around 150$.

            1. Hi Oleg,

              You’re right.
              Probably this device can not handle the full HD 1920×1080 at 50fps.

              However, may be it is possible to send an interlaced network stream (25 fps interlaced) in order to retain the full motion of the video from the LKV373A.
              May be it is just a question of “tweaking” the encoder parameters on the firmware.

              I know that 25 fps interlaced is different than 50 fps progressive.
              My goal is to preserve the 25 fps interlaced (assuming that is not possible to deinterlace to 50 fps progressive), retaining the video motion perception.

              At the end we will always have a 25 fps video feed, but the interlaced feature allows a better representation of the movements (pans and tilts for example).
              That’s why the TV broadcast stations are still being transmitting in 1080i@50Hz.

              Please correct me if I’m saying anything wrong…

  144. Hi, I am able to stream from vlc with udp//:0.0.0.0:5004, is it possible stream from kodi? I tried to create .strm file with the address above, but is not working.

      1. Hi,
        Since Kodi doesnt seem to like rtmp links I solved installing udpxy on my router and adding to kodi a .m3u file with this inside. Hope it helps.:

        #EXTM3U
        #EXTVLCOPT:network-caching=50
        #EXTINF:-1 tvg-id=”Solo2″ tvg-name=”Solo2″ tvg-logo=”logo1″ group-title=”Group 1″,HDMI-Live2-7567-lede-udpxy-kodi
        http://**UDPXYIP:UDPXYPORT**/udp/239.255.42.42:5004

        Regards.
        Pino.

  145. Hello. I recently purchased an LKV373 hdmi extender, but I have a problem that the seller has not been able to answer. In practice I have problems with video quality and I can not transmit the audio in dts master audio. Can you help me with the firmware?

  146. i bought this sender after reading this article and it works great…the only thing is when in use the wireless network is not working properly (while wired one is fine). The router is pretty new, it’s a Netgear R8500, does anyone experiencing the same problem?

  147. Hi,
    Since my LKV343A is working just fine with the video and audio stream, I was wondering if the h264 created by it from my source stream keeps and deliver some kind of EPG / Event data information. I tried to check using VLC and it just source a generic data (which never change while zapping so I guess it’s my MyS*y decoder which fails to deliver the right info which probably is normal) :
    AIR_CH_521_6m (Programma 256
    Stato: Running
    Tipo: Digital television service.
    Editore: ITE.
    Probably the question is hopeless cause it’s decoder responsibility to provide the right info. Maybe I could retrive the data from external sources but without knowing which channel I’m straming ach time the effort is meaningless so i dont think it can be done but was just curious..

    Thanks.

  148. Hi, folks.
    I had problems to receive unicast stream in windows by ffmpeg, even using the last release.

    Error message:
    bind failed: Error number -10048 occurred
    udp://192.168.25.5:5004: I/O error

    After many days, I found the cause:
    Windows Media Player Network Sharing Service.
    Just stop and disable that service in control panel to solve that problem.
    Good luck.

  149. Hi guys! I need a device with a minimum latency (100 ms), and I understand this problem is solved by LKV373. But version 2.0 is rather different to found and buy for now (Aliexpress or Amason), the most of sellers sells LKV373A (v3.0), which have a longer latency (about 400-500 ms as shown, i think due to the increase time for the h264 encoding). Tell me please, is it possible to force LKV373A (v3.0) to transmit in v2.0 mode (old mjpeg version). The NET traffic is no matter for me. Thanks!

      1. Are firmware to v3.0 IPTV_TX_PKG_v4_0_0_0_20160427.PKG compatible with v2.0? Or v2.0 firmware cannot be changed to see additional setting like in v3.0 firmware? Thanks!

        1. No, it can not. Just buy original 373, or 373KVM (it is based on V2 373), if you could find old one.

          1. Thanks! Now I can see a lot of similar devices on the market at inexpensive prices, and some of them comes with USB keyboard and mouse support and has a very little latency. It is interesting to know are they mostly use encryption and whether it is possible to reverse-engeneering it? Somebody analyzed it?
            Another thing that I can not understand – what is the reason for limiting the maximum length of the UDP cable? What prevents the signal from amplifying with an ordinary LAN switch? After all, i think can still use the unicast streaming (if device can unicast) and VPN services, so i can transmit stream to any place of the world via the Internet, just need the right speed of the Internet channel to receive and transmit.

  150. Hello – this whole blog and community is wonderful! Thanks for putting it together.

    I wanted to ask if anyone has found multiple of these HDMI encoders will work on the same network?

    I want to video capture 6-7 different iPad and Fire HD 8 into one instance of OBS.

    I was hopeful to use these LKV373A encoders to capture each one.

    Any thoughts, findings?

    Thanks!

  151. BTW, I hope To make a contribution to this post with the results of my desired setup—if it might help someone else, too.

    I have yet to make any purchases because I’d like to be reasonably sure my intended set up and use is even possible.

    6 separate tablets each screen mirroring to hdmi adapter to hdmi cable to LKV373A (TX) to Ethernet cable to switch (IGMP snooping to restrict multicasting) to Ethernet cable to NIC in a single Windows machine running OBS.

    My idea, after reading here and watching many videos, is to change multicast address of each LKV373A so I can add each separate LKV373A stream in OBS—each stream as separate video source.

    I would use IGMP snooping at the switch to restrict the multicast so as not to flood the network and allow each stream to only to be sent to the receiving OBS PC machine.

    According to this video, I should be able to enter the RTP address directly in OBS to add the stream as media source.

    https://youtu.be/QViXjmYlhKU

    I’m a fairly total noob at this, so insights appreciated.

    Do you see any holes in my suggested setup?

    Any limitations?

    Thanks again in advance!

    1. Hello,

      this should work exactly as you intend. When you are finished with your setup, please show your results. I’d love to see the real application.

  152. I replaced 3 sling boxes with 3x LKV373A unicasting to a Linux server. ffmpeg transcodes on-the-fly to low-bandwidth hevc and serves it up as HTTP using udpxy. Works wonderfully even at extreme low-bandwidth and full hardware h264->hevc using nvenc on a GTX1050 uses hardly any CPU.

    Thanks for the great hacking guide!
    -PG

    1. How did you unicast to the same server without issue or conflict? My understanding of unicast is that you point LKV373A to the server ip, but if all on the same port 5004, this would cause conflict with multiple streams at same time.

      I’m a networking noob, so I’m very curious your thoughts and response how unicast to same up from multiple devices on same port works.

      Thanks!

      1. You could possibly make a firewall rule to modify dst port based on source ip address, e.g. like this (untested): sudo iptables -I PREROUTING -t nat -s [extender_IP_address] -p udp –dport 5004 -j DNAT –to :15004

        1. I used iptables to change the destination port on the fly for each one before starting ffmpeg…

          i.e.
          conntrack -D –proto udp –orig-src 192.168.1.233 >&/dev/null
          iptables -t nat -A PREROUTING –src 192.168.1.233 -p udp –dport 5004 -j REDIRECT –to-ports 5006

          The rules didn’t work without deleting the conntrack entries beforehand. This has been working well for me but there are probably better ways. Danman’s looks cleaner but I haven’t tried it.

  153. Does anybody know the difference between 373A and 373N? The specs state “1080p@60Hz” for 373N whereas for 373A its only “Up to 1920×1080 resolutions” and in the details “1080p@50/60Hz” (for both)…

    Does 373A normally passthrough the signals refresh-rate? This would be critical for the use-case I have in mind:

    Feed the HDMI-Signal from my video processor (having 1080p @24/48, @50 or @60Hz) through 373A (splitter inbetween stripping HDCP) into a standalone Linux box with VLC adding frame interpolation and outputting it to my projector @1080p@60Hz)

    What about audio? Only stereo through 373A?

    1. 373N doesn’t seem to work over TCP/IP because: only one receiver supported, 120m maximum length,the picture doesn’t mention ethernet switch passthru.

      1. Ah, OK, I see – missed that part indeed 😉

        What about the other points? Is 1080p 24, 50 and 60Hz (with automatic adjustment) possible? And audio?

  154. I switched to Sky Q with two Mini to broadcast Sky to other two tv.
    So I would keep use my Synic LVK383 TX to broadcast to a Windows 10 desktop pc only.
    At this moment my problem is that I must connect the RX unit because without it the TX locks the intere network (router, Q, mini Q). Is it possibile to have a tip for a commercial switch (brand and model) to avoid this issue? I would to send the multicast to the PC’s local IP only.

    1. Anyone with “IGMP snooping”. But you should understand how does it work and how to configure it.

          1. I have a limited budget for this type of device, 45€ was a reasonable price. My need is only to limit the incoming multicast (LVK383 TX) only to a specific port of the same switch (to which the Windows 10 client is connected) and not to saturate the entire network that also distributes the signal of the Q system through power lines

  155. Please note that there is another way to avoid and handle multicast with a managed switch such as a a cheap Netgear GS108E. Using VLan ID , without IGMP Snooping feature enabled

    https://s26.postimg.org/q57sz72p5/image.png

    note that the ports are

    1- powerline av1200
    2- sky Q
    3- bluray
    4- Marantz avr
    5- Nvidia Shield
    7- Hdmi sender TX (LVK383)
    8- PC Windows 10

    so

    vlan id 1 have devices 1,2,3,4,5,6 as member (powerline /router and other devices)
    vlan id 2 have devices 1,8 as member (powerline /router and PC Windows 10)
    vlan id 3 have devices 7,8 as member (sender HDMI and PC Windows 10)

    with that configuration sender HDMI don’t send any packet to device from 1 to 6 so everything seem work fine…

  156. I am using the lkv373a version 3.0 and it works nice when I receive the hdmi input on my windows 10 laptop even with a 200 mtr cat 5 cable in between. Audio and video are OK.
    Now I try to receive the same input on my MacBook Pro with VLC player installed but with no result.
    Is there a solution to receive it here as well? Do I have to use a different player.
    Please every input is welcome.

      1. hello Matteo,
        Unfortinally it does not work with me. The link you send in your reply does not work.

  157. I am not having any luck getting the stream to play in VLC on my raspberry pi (latest version 3 b+).
    I believe I have the LKV373A (at least that’s what the ebay listing said), the back of the case says V3.0, and the chip has the following printed on it: “YULONG 1732 YL18-2050S”
    Also, I’m unable to find any embedded webserver on the transmitter, to check the firmware version.

    TCP Dump says it’s broadcasting as:
    192.168.1.238.5004 > 239.255.42.42.5004: UDP, length 1316

    but when trying “udp://@239.255.42.42:5004” or “rtp://@239.255.42.42:5004” in VLC I get nothing, no errors or anything.
    But if I connect to my windows 10 PC, I can see the stream just fine in VLC with: “udp://@239.255.42.42:5004” (no rtp), granted it’s ~2sec delayed.

    I’ve tried to proxy through ffmpeg, but with no luck.

    when I turn on logging for ffmpeg or ffprobe I get the following:
    ffprobe -v 9 -loglevel 99 -show_format -show_streams rtp://@239.255.42.42:5004
    ffprobe version 3.4.2-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2007-2018 the FFmpeg developers
    built with gcc 6.3.0 (Debian 6.3.0-18) 20170516
    configuration: –enable-gpl –enable-version3 –enable-static –disable-debug –disable-ffplay –disable-indev=sndio –disable-outdev=sndio –cc=gcc-6 –enable-fontconfig –enable-frei0r –enable-gnutls –enable-gray –enable-libfribidi –enable-libass –enable-libfreetype –enable-libmp3lame –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-librubberband –enable-libsoxr –enable-libspeex –enable-libvorbis –enable-libopus –enable-libtheora –enable-libvidstab –enable-libvo-amrwbenc –enable-libvpx –enable-libwebp –enable-libx264 –enable-libx265 –enable-libxvid –enable-libzimg
    libavutil 55. 78.100 / 55. 78.100
    libavcodec 57.107.100 / 57.107.100
    libavformat 57. 83.100 / 57. 83.100
    libavdevice 57. 10.100 / 57. 10.100
    libavfilter 6.107.100 / 6.107.100
    libswscale 4. 8.100 / 4. 8.100
    libswresample 2. 9.100 / 2. 9.100
    libpostproc 54. 7.100 / 54. 7.100
    Probing rtp score:100 size:0
    [rtp @ 0x211aff0] No default whitelist set
    [udp @ 0x211b490] No default whitelist set
    [udp @ 0x211b490] end receive buffer size reported is 131072
    [udp @ 0x211b3a0] No default whitelist set
    [udp @ 0x211b3a0] end receive buffer size reported is 131072

    Then it just hangs there.

    If anyone did something to get this working on a raspberry pi, or has any suggestions, let me know.

    Thanks,

      1. Wow, thanks!
        Been struggling with that for way too long.
        Running this fixed it:
        sudo route add -net 224.0.0.0 netmask 240.0.0.0 eth0

      2. I may have spoke too soon before…
        It looks like VLC is only getting a frame or two and then hanging.
        Here are my VLC logs: https://justpaste.it/1j7eg

        Then ffprobe has the following output:
        ./ffprobe -v 9 -loglevel 99 -show_format -show_streams -probesize 100 -analyzeduration 100000 udp://@239.255.42.42:5004
        ffprobe version 3.4.2-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2007-2018 the FFmpeg developers
        built with gcc 6.3.0 (Debian 6.3.0-18) 20170516
        configuration: –enable-gpl –enable-version3 –enable-static –disable-debug –disable-ffplay –disable-indev=sndio –disable-outdev=sndio –cc=gcc-6 –enable-fontconfig –enable-frei0r –enable-gnutls –enable-gray –enable-libfribidi –enable-libass –enable-libfreetype –enable-libmp3lame –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-librubberband –enable-libsoxr –enable-libspeex –enable-libvorbis –enable-libopus –enable-libtheora –enable-libvidstab –enable-libvo-amrwbenc –enable-libvpx –enable-libwebp –enable-libx264 –enable-libx265 –enable-libxvid –enable-libzimg
        libavutil 55. 78.100 / 55. 78.100
        libavcodec 57.107.100 / 57.107.100
        libavformat 57. 83.100 / 57. 83.100
        libavdevice 57. 10.100 / 57. 10.100
        libavfilter 6.107.100 / 6.107.100
        libswscale 4. 8.100 / 4. 8.100
        libswresample 2. 9.100 / 2. 9.100
        libpostproc 54. 7.100 / 54. 7.100
        [NULL @ 0x3524280] Opening ‘udp://@239.255.42.42:5004’ for reading
        [udp @ 0x3524a90] No default whitelist set
        [udp @ 0x3524a90] end receive buffer size reported is 131072
        Probing mp3 score:1 size:2048
        Probing mpegts score:50 size:2048
        [mpegts @ 0x3524280] Format mpegts probed with size=2048 and score=50
        score: 44, dvhs_score: -3, fec_score: -3
        [mpegts @ 0x3524280] Unable to seek back to the start
        [mpegts @ 0x3524280] Filter: pid=0x11 type=1
        [mpegts @ 0x3524280] Filter: pid=0x0 type=1
        [mpegts @ 0x3524280] Skipping after seek
        [mpegts @ 0x3524280] SDT:
        [mpegts @ 0x3524280] tag: 0x48 len=20
        [mpegts @ 0x3524280] new_program: id=0x0100
        [mpegts @ 0x3524280] PAT:
        [mpegts @ 0x3524280] sid=0x100 pid=0x1000
        [mpegts @ 0x3524280] new_program: id=0x0100
        [mpegts @ 0x3524280] Filter: pid=0x1000 type=1
        [mpegts @ 0x3524280] PMT: len 26
        [mpegts @ 0x3524280] sid=0x100 sec_num=0/0 version=0 tid=2
        [mpegts @ 0x3524280] pcr_pid=0x7d1
        [mpegts @ 0x3524280] Filter: pid=0x7d1 type=0
        [mpegts @ 0x3524280] stream=0 stream_type=1b pid=7d1 prog_reg_desc=
        [mpegts @ 0x3524280] Filter: pid=0x7d2 type=0
        [mpegts @ 0x3524280] stream=1 stream_type=4 pid=7d2 prog_reg_desc=
        [mpegts @ 0x3524280] tuning done
        [mpegts @ 0x3524280] Unable to seek back to the start
        [mpegts @ 0x3524280] Before avformat_find_stream_info() pos: 20492 bytes read:21056 seeks:0 nb_streams:2
        [mpegts @ 0x3524280] pid=7d1 pes_code=0x1e0
        [h264 @ 0x3542ac0] SPS unavailable in decode_picture_timing
        [h264 @ 0x3542ac0] unknown SEI type 128
        [h264 @ 0x3542ac0] non-existing PPS 0 referenced
        [AVBSFContext @ 0x3544c70] nal_unit_type: 9, nal_ref_idc: 0
        [AVBSFContext @ 0x3544c70] nal_unit_type: 6, nal_ref_idc: 0
        [AVBSFContext @ 0x3544c70] nal_unit_type: 1, nal_ref_idc: 2
        [h264 @ 0x3542ac0] nal_unit_type: 9, nal_ref_idc: 0
        [h264 @ 0x3542ac0] nal_unit_type: 6, nal_ref_idc: 0
        [h264 @ 0x3542ac0] nal_unit_type: 1, nal_ref_idc: 2
        [h264 @ 0x3542ac0] SPS unavailable in decode_picture_timing
        [h264 @ 0x3542ac0] non-existing PPS 0 referenced
        [h264 @ 0x3542ac0] decode_slice_header error
        [h264 @ 0x3542ac0] no frame!
        [mpegts @ 0x3524280] Probe buffer size limit of 100 bytes reached
        [mpegts @ 0x3524280] Stream #0: not enough frames to estimate rate; consider increasing probesize
        [mpegts @ 0x3524280] decoding for stream 0 failed
        [mpegts @ 0x3524280] stream 0: start_time: 78628.850 duration: -102481911520608.625
        [mpegts @ 0x3524280] stream 1: start_time: -102481911520608.625 duration: -102481911520608.625
        [mpegts @ 0x3524280] format: start_time: 78628.850 duration: -9223372036854.775 bitrate=0 kb/s
        [mpegts @ 0x3524280] Could not find codec parameters for stream 0 (Video: h264, 1 reference frame ([27][0][0][0] / 0x001B), none(left)): unspecified size
        Consider increasing the value for the ‘analyzeduration’ and ‘probesize’ options
        [mpegts @ 0x3524280] Could not find codec parameters for stream 1 (Audio: mp3 ([4][0][0][0] / 0x0004), 0 channels): unspecified frame size
        Consider increasing the value for the ‘analyzeduration’ and ‘probesize’ options
        [mpegts @ 0x3524280] After avformat_find_stream_info() pos: 27636 bytes read:27636 seeks:0 frames:1
        Input #0, mpegts, from ‘udp://@239.255.42.42:5004’:
        Duration: N/A, start: 78628.850000, bitrate: N/A
        Program 256
        Metadata:
        service_name : AIR_CH_521_6M
        service_provider: ITE
        Stream #0:0[0x7d1], 1, 1/90000: Video: h264, 1 reference frame ([27][0][0][0] / 0x001B), none(left), 90k tbr, 90k tbn, 180k tbc
        Stream #0:1[0x7d2], 0, 1/90000: Audio: mp3 ([4][0][0][0] / 0x0004), 0 channels
        [STREAM]
        index=0
        codec_name=h264
        codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
        profile=unknown
        codec_type=video
        codec_time_base=0/2
        codec_tag_string=[27][0][0][0]
        codec_tag=0x001b
        width=0
        height=0
        coded_width=0
        coded_height=0
        has_b_frames=0
        sample_aspect_ratio=0:1
        display_aspect_ratio=0:0
        pix_fmt=unknown
        level=-99
        color_range=unknown
        color_space=unknown
        color_transfer=unknown
        color_primaries=unknown
        chroma_location=left
        field_order=unknown
        timecode=N/A
        refs=1
        is_avc=false
        nal_length_size=0
        id=0x7d1
        r_frame_rate=90000/1
        avg_frame_rate=0/0
        time_base=1/90000
        start_pts=7076596500
        start_time=78628.850000
        duration_ts=N/A
        duration=N/A
        bit_rate=N/A
        max_bit_rate=N/A
        bits_per_raw_sample=N/A
        nb_frames=N/A
        nb_read_frames=N/A
        nb_read_packets=N/A
        DISPOSITION:default=0
        DISPOSITION:dub=0
        DISPOSITION:original=0
        DISPOSITION:comment=0
        DISPOSITION:lyrics=0
        DISPOSITION:karaoke=0
        DISPOSITION:forced=0
        DISPOSITION:hearing_impaired=0
        DISPOSITION:visual_impaired=0
        DISPOSITION:clean_effects=0
        DISPOSITION:attached_pic=0
        DISPOSITION:timed_thumbnails=0
        [/STREAM]
        [STREAM]
        index=1
        codec_name=mp3
        codec_long_name=MP3 (MPEG audio layer 3)
        profile=unknown
        codec_type=audio
        codec_time_base=1/0
        codec_tag_string=[4][0][0][0]
        codec_tag=0x0004
        sample_fmt=unknown
        sample_rate=0
        channels=0
        channel_layout=unknown
        bits_per_sample=0
        id=0x7d2
        r_frame_rate=0/0
        avg_frame_rate=0/0
        time_base=1/90000
        start_pts=N/A
        start_time=N/A
        duration_ts=N/A
        duration=N/A
        bit_rate=N/A
        max_bit_rate=N/A
        bits_per_raw_sample=N/A
        nb_frames=N/A
        nb_read_frames=N/A
        nb_read_packets=N/A
        DISPOSITION:default=0
        DISPOSITION:dub=0
        DISPOSITION:original=0
        DISPOSITION:comment=0
        DISPOSITION:lyrics=0
        DISPOSITION:karaoke=0
        DISPOSITION:forced=0
        DISPOSITION:hearing_impaired=0
        DISPOSITION:visual_impaired=0
        DISPOSITION:clean_effects=0
        DISPOSITION:attached_pic=0
        DISPOSITION:timed_thumbnails=0
        [/STREAM]
        [FORMAT]
        filename=udp://@239.255.42.42:5004
        nb_streams=2
        nb_programs=1
        format_name=mpegts
        format_long_name=MPEG-TS (MPEG-2 Transport Stream)
        start_time=78628.850000
        duration=N/A
        size=N/A
        bit_rate=N/A
        probe_score=50
        [/FORMAT]
        [AVIOContext @ 0x3544d00] Statistics: 27636 bytes read, 0 seeks

            1. I see some arm libraries mentioned in log… Are you running this on platform which is powerful enough?

  158. I used ffmpeg-3.4.2 but still require iptables t drop the 0 packets. Which release version of ffmpeg is your patch included?

  159. My ffmpeg stream locks up after sometime. Any idea how to resolve this?

    #ffmpeg -i “udp://@239.255.42.42:5004” -acodec copy -vcodec copy -f mpegts –

    Input #0, mpegts, from ‘udp://@239.255.42.42:5004’:
    Duration: N/A, start: 64414.025000, bitrate: N/A
    Program 256
    Metadata:
    Stream #0:0[0x7d1]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1728×1080, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x7d2]: Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s
    Output #0, mpegts, to ‘pipe:’:
    Metadata:
    encoder : Lavf57.71.100
    Stream #0:0: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1728×1080, q=2-31, 29.97 fps, 29.97 tbr, 90k tbn, 90k tbc
    Stream #0:1: Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s
    Stream mapping:
    Stream #0:0 -> #0:0 (copy)
    Stream #0:1 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    frame= 98 fps=0.0 q=-1.0 size= 5574kB time=00:00:03.81 bitrate=11965.0kbits/s speed=7.17x
    frame= 113 fps=109 q=-1.0 size= 6214kB time=00:00:04.32 bitrate=11784.1kbits/s speed=4.17x
    frame= 130 fps= 83 q=-1.0 size= 7236kB time=00:00:04.84 bitrate=12227.8kbits/s speed=3.09x
    frame= 146 fps= 69 q=-1.0 size= 8026kB time=00:00:05.37 bitrate=12229.5kbits/s speed=2.56x
    frame= 162 fps= 61 q=-1.0 size= 8902kB time=00:00:05.90 bitrate=12352.0kbits/s speed=2.24x
    frame= 177 fps= 56 q=-1.0 size= 9728kB time=00:00:06.40 bitrate=12436.9kbits/s speed=2.04x
    frame= 192 fps= 52 q=-1.0 size= 10551kB time=00:00:06.96 bitrate=12418.6kbits/s speed=1.89x
    [udp @ 0x55f38aae5740] Circular buffer overrun. To avoid, increase fifo_size URL option. To survive in such case, use overrun_nonfatal option

    1. That is probably a version which was shipped with the device, I don’t have upgrade file for that.

  160. Danman, i have the LKV373A v3.0, firmware on device is v4.0.0.0.20161116. Now, i have the following questions, if you can help me:
    1. Is there a modified firmware i can flash to this device (v.3.0)?
    2. I need to modify the resolution, because the output is not 1920×1080, but it is a bit weird….
    3. Whenever i try to receive the signal through wifi i get no input, Lan over cable works ok… I have the IPTV control center tool, if i enable unicast, what do i have to do in order to receive via wifi? Do i have to specify the client for unicast and where can i do that?

    i hope i am not tiring you with all these questions, kepp up, you have done a great job for all of us!

  161. Matteo, thanks for the suggestion, but this is multicasting to a certain IP, it is not unicast. I have flashed the custom firmware from Danman and i have the new webpage with the various options, where you can enable or disable multicast. When i disable it, i cannot find the IP to call from VLC, do you happen to know which Ip it uses? It apparently does not use the multicast IP and i cannot find which one to call…

    1. Stefanos, excuse my ignorance…but multicast to a certain IP should be Unicast…or not? I’m not an expert in this field so I’m probably wrong. In VLC if using multicast you use 239.255.42.42 in unicast you just need to enter the port 5004

      https://imgur.com/i6QEbTQ

      1. Matteo, i did not explain my problem thoroughly, if the packet is marked multicast , it cannot pass through my WiFi, my router is an old Thomson TG784 and it does not have an option to allow multicast , that is why i need to set the packet to true unicast mode, so that i can connect two points with WiFi…

        1. There’s no such thing like “packet marked multicast”. If it has destination address in range 224.0.0.0/4 it is multicast. If it has other, it’s unicast (or broadcast). The option “multicast” in IPTV controll center has no effect.

          1. Danman, however, when i untick the option multicast in the webpage of lkv373, i cannot receive the stream in vlc whichever IP or stream format i try…. That is why i suppose that a different IP is used when we untick multicast in the webpage options.

            1. Try to set the destination IP as Matteo suggested and then try to check if the packets are coming with wireshark on destination host.

  162. After unticking multicast in the webpage, I have tried receiving in VLC using udp://@:5004, udp://@239.255.42.42:5004, rtp://@239.255.42.42:5004, rtp://@239.255.42.42:554 or rtsp://192.168.77.155:554 and nothing happens. Of cource, in the webpage, after you untick multicast you do not have the option to set the unicast destination IP, that is why i am asking if anyone knows. But, if you say that multicasting to a specified IP is exactly tha same protocolwise, then i have to assume that my router is only to blame for not been able to receive via WiFi….

    1. ok, now I see the problem.

      Using this web url

      http://TX_IP/dev/info.cgi?action=streaminfo&udp=n&rtp=y&multicast=n&unicast=y&mcastaddr=DEST_IP&port=5004

      you still can’t see anything in VLC using rtp://@:5004, correct? you can see in the URL the DEST_IP so you can specify the dest ip and sniffing with wireshark you will see traffic you the dest ip only and not on the multicast range. If still not showing anything then could be the router, I use to have a similar model in the past and they have flooding protection, maybe it’s considering that UDP traffic as flood

      1. Yes, you are partially right, using the url i can only receive through LAN, but i cannot receive via WiFi….

        1. using that address the tx is not sending anymore to 239.255.42.42 but to DEST_IP that’s why you need udp://@:5004, Anyway I’m glad it’s working now!

          1. However, i can receive in VLC in my PC when i use the url address and udp://@239.255.42.42:5004, only Android cannot receive and it needs udp://@:5004….

            1. Correction, only Android via WiFi, when i use LAN ANdroid can receive with udp://@239.255.42.42:5004 (after using the url for unicast)…

              1. there’s something not correct…after using unicast url it should change from 239.255.42.42:5004 to PCIP:5004, you can easily check with Wireshark

  163. Hello!
    Does anybody knows how to fix audio error in VMix stream UDP input?

    I connected HDMI sender (LKV 373a V3.0) to VMIX software.

    1. I updated sender firmware to last ver with open admin page (Encoder_20160407_0942.bin, IPTV_TX_PKG_v4_0_0_0_20160427.PKG)

    With this firmware i’v got FullHD resolution.
    2. I configured sender with url:
    http://hdmiip/dev/info.cgi?action=streaminfo&udp=y&rtp=n&multicast=n&unicast=y&mcastaddr=STREAMPCIP&port=5004

    In VMix Only Transport Stream over UDP works, rtp does not work at all.
    But when I try to send audio by HDMI, VMix input stops with error “audio error”.
    If no audio in HDMI source, everything works fine.
    In VLC player everything works correctly with audio.

    1. I don’t know vmix very well but I installed it and configured the source as VLC and using rtp://@:5004 I can see video and have audio as well. It required to install the vlc for vmix plugin but it seems to work

  164. Has anyone had any luck with gstreamer?
    If so, could you share the gst-launch command line?
    I’m wondering if i should perhaps revert to a version supporting rtp so make that work smoother..
    Any ideas?

    1. gst-launch-1.0 -v udpsrc multicast-iface=”eth0″ multicast-group=239.255.42.42 auto-multicast=true port=5004 caps=”video/mpegts, media=(string)video” ! tsdemux ! decodebin ! videoconvert ! autovideosink sync=false

      1. Amazing, thanks!
        There is barely even any latency too! With VLC I couldn’t go down to even 20ms before it started glitching.
        Oh, and BTW… those quotes got horribly mangled by the comment system, should be swapped for regular double quotes if anyone else attempts this.

      2. Here is my pipeline for getting audio to work… with your pipeline as a base that wasn’t too hard 🙂

        gst-launch-1.0 -v udpsrc multicast-iface=”eth0″ multicast-group=239.255.42.42 auto-multicast=true port=5004 caps=”video/mpegts, media=(string)video” ! tsparse ! decodebin name=dec ! queue ! videoconvert ! autovideosink sync=false dec. ! queue ! audioconvert ! autoaudiosink sync=false

        There is just one very annoying problem, it doesn’t work until the source has actually played some audio. I fail to follow some examples that names tsdemux, and if i try something similar with tsdemux instead of tsparse, i get a still image and no sound. 🙁 Any ideas?

        1. Finally got something that works (key being the leaky part)… it does however hang for a few seconds (if audio is not playing) at the start, so it can certainly do with some improvements. Any suggestions are much appreciated.

          gst-launch-1.0 -v udpsrc multicast-iface=”eth0″ multicast-group=239.255.42.42 auto-multicast=true port=5004 caps=”video/mpegts, media=(string)video” ! tsparse ! tsdemux name=demux demux. ! queue leaky=1 ! h264parse ! avdec_h264 ! videoconvert ! autovideosink sync=false demux. ! queue ! mpegaudioparse ! mpg123audiodec ! audioconvert ! autoaudiosink sync=false

          NB: this comment system messes up double qoutes, you need to swap them for regular ones

  165. VLC 2.2.8 Weatherwax (revision 2.2.7-14-g3cc1d8cba9) has started to give me errors while playing back multicast stream,
    ts demux error: libdvbpsi error (PSI decoder): TS discontinuity (received 0, expected 4) for PID 17

    Anybody seeing this?

  166. I upgraded the firmware from 7.1.2.0.11.20160127 to using TX_V1.3c_20161104_bin and LKV lost its 1980×1080@60 fps resolution. It is back to 1728×1080@30fps. However, the stream is much more stable. One downside is that the Encoder version comes up as empty in the Control center gui.

  167. Hi danman et al
    thanks for all the hard work.

    got a LkV383 that I am keen to upgrade to change behaviour from multicast to unicast etc.
    but worried that smashing a lkv373 firmware into a lkv383 is not god.
    though i would start with the RX unit since that is of less value.
    currently running FW: 0.5.0.0.20161021

    got some other ideas also and thinking about buying the 4k , UHD version but before that figure I need to learn a bit more and would like to understand what the 4k unit is based on for hardware.

    anyway
    Found this link to a chines forum site (chrome to translate), so far non here has linked to it so though it might be of some value
    http://mofulls.pixnet.net/blog/post/102010316-lkv383%E5%8D%87%E7%B4%9A%E5%88%86%E4%BD%8D

    some firmware, looks old, that can be downloaded
    and some Chinese software that appears to configure some IPv4 stuff and allow firmware upgrade?

    1. You could use a SPI programmer do extract the original firmware from the LKV383 *before* you try upgrading to a 373 version. If it doesn’t work, you can flash it’s original fw back. That way you don’t brick your device.

      I would be really interested to know if the 383 is compatible (see my comments below).

  168. Hi, using a custom Multicast address appears to work via the streaminfo action.

    Are there any similar action commands to set the receiver to this custom multicast address? I don’t see any firmware dumps for the RX devices.

  169. Hi all,

    first of all, thanks danman and all the others for your work!

    I played around with the box over the last days and got a bit frustrated with the firmware and how inconsistent they work. It just seems so buggy…

    Lastly I tried to install TX_V1.3c_20161104_PKG and bricked my TX. Just ordered to the spi programmer to get that fixed.

    I want to use the LKV373A to encode a 1280×1024 hdmi signal.
    I got the device shipped with version 20161116, that downscales it to 720p, but it DOES NOT honor the max bitrate settings. It just streams at about 10-11 Mbit/s. I tried all possible “videoinfo” settings, resolutions, bitrates etc.
    Doesn’t matter what I try to set as videoout_brate_fhd or videoout_brate_hd. It just gets ignored.

    I was quite happy with firmware version 20160427 (persistant unicast, stable stream) and with input signals of 720p or 1080p it stays within the defined bitrates! Awesome!
    The problem are then other resolutions. With that FW my 1280×1024 input gets through as is (which by itself is fine), but then again with the 10-11 Mbit bitrate..

    Re-encoding is not really an option as I am going to receive 10-20 signals simultaneously. Raw-dumping and re-encoding afterwards would work, but then my scenario is a bit time sensitive.

    The thing is, the box can do exactly what I need, but the firmware is just to buggy (feature A working in one fw version, but not in the other, where feature B works but then not in the first fw…)

    I am a bit stuck here… any other ideas?

    1. Hi Sebastian.
      There are multiple fields to set the bitrate: FHD, HD, SD. Did you try experimenting with all these?
      I also wonder, if you can share, what’s your use case with 10-20 simultaneous streams?

      1. Yeah, I’ve tried all of these settings. Fw 20160427 honors them, but only with 1080p, 720p or 480p signals (well, I honestly didn’t test 480p).
        As the encoder uses these settings, it probably just queries them from the config (or is setup/configured accordingly). An educated guess would be, that 15000 is just an internal hardcoded default value in the encoder fw. It then falls back to that value if none of the 3 preset resolutions matches.

        I could successfully “unbrick” my box using an SPI programmer and your published rom. Thanks again!
        I’ve looked around in the firmware and surprisingly the box also just accepted any changed configuration flashed to it. I guess it only checks the checksum value when upgrading via the webinterface?
        I also changed the “factory defaults” in the image, so resetting the box over the interface sets my values. Nice to play with, but not really useful.

        Then still, even changing all available bitrate strings in the firmware (u3) didn’t fix my issue. As I said, it’s probably just in the encoder firmware (which sadly does not expose any plain stings).

        As my input signal is VGA anyhow, I am looking at using an additional upscaler (like Lenkengs LKV352A) so I just get a 1080p input and the box with fw 20160427 gets my target bitrate.
        There is the LKV383VGA that looks like it could do all this for me, but I couldn’t find the “TX only” for sale.

        Atm I can’t really share what I am building, but I will, it in couple of months when the project really comes to life.

        Cheers!

        1. Short update on this. I didn’t manage to get another bitrate for other resolutions than SD/HD/FHD.
          I’ve bought an LKV352A upscaler and in full HD the configured bitrate was honored, but of course the image is distorted which weights more than the high bitrate for me.
          Something interesting I’ve observed that you can reduce the stream size by 40% by using any compression, like gzip.
          The “solution” for now is to re-encode on-the-fly using ffmpeg (with -re) as suggested before. This causes considerable additional CPU load on receiving server, but this I can manage.

          I’ve also got an LKV383VGA TX and can confirm that it behaves exactly the same as the LKV373A TX and also supports the alternative firmwares.

          1. Hey Sebatian,

            I want to ask you something about the VGA input signal, I have a VGA output from a radar that has a resolution of 1600 x 1200, i wish to use a VGA to HDMI converter connected to the LKV373A and use that to stream the source to a raspberry pi on where i can save images every 15 seconds. my question is, is this possible and can i use a resolution of 1600 x 1200 without using a upscaler?

            best regards,
            Tim

            1. Hey Tim..
              Sorry for the late reply. I think this should work, but you will get a stream with 12Mbit/s.
              Cheers,
              Sebastian

  170. Hi,

    Can someone tell me if it is possible to use a V2.0 TX with a V3.0 RX? Do I need a firmware upgrade for the V2.0?

    Thanx

  171. Not sure, but I don’t think this will work. Afaik the hardware is different and a v3 firmware will not run on a v2 device.

  172. Hi, Danman

    I downloaded your ffmpeg for Mac, but couldn’t make it work.
    ./ffmpeg-20180723-0bb5cd8-macos64-static/bin/ffmpeg -i udp://@239.255.42.42:5004 -c copy hdmi.ts

    [mpegts @ 0x7f8fe6801200] Could not find codec parameters for stream 0 (Video: h264 ([27][0][0][0] / 0x001B), none): unspecified size
    Consider increasing the value for the ‘analyzeduration’ and ‘probesize’ options
    [mpegts @ 0x7f8fe6801200] Could not find codec parameters for stream 1 (Audio: mp3 (mp3float) ([4][0][0][0] / 0x0004), 0 channels, fltp): unspecified frame size
    Consider increasing the value for the ‘analyzeduration’ and ‘probesize’ options

    can you give me some idea?

    thanks
    Feng Liang

  173. Got my V3.0, but can’t get it to work (I can’t get the video).
    When I plug it in, I loose my Wifi connection on my laptop… pretty strange.
    Lenkeng Hdmi Extender Encoder gives me “Check broadcast. No signal?”…

  174. For information:
    nmap -sS -sU 192.168.0.19

    Starting Nmap 7.50 ( https://nmap.org ) at 2018-08-24 21:15 ope
    Nmap scan report for 192.168.0.19
    Host is up (0.00s latency).
    Not shown: 1970 closed ports
    PORT STATE SERVICE
    25/tcp filtered smtp
    135/tcp open msrpc
    139/tcp open netbios-ssn
    445/tcp open microsoft-ds
    587/tcp filtered submission
    902/tcp open iss-realsecure
    912/tcp open apex-mesh
    1025/tcp open NFS-or-IIS
    1026/tcp open LSA-or-nterm
    1027/tcp open IIS
    1028/tcp open unknown
    1029/tcp open ms-lsa
    1030/tcp open iad1
    2701/tcp open sms-rcinfo
    2869/tcp open icslap
    3389/tcp open ms-wbt-server
    6666/tcp filtered irc
    6667/tcp filtered irc
    6668/tcp filtered irc
    6669/tcp filtered irc
    12000/tcp open cce4x
    123/udp open|filtered ntp
    137/udp open|filtered netbios-ns
    138/udp open|filtered netbios-dgm
    500/udp open|filtered isakmp
    1900/udp open|filtered upnp
    3702/udp open|filtered ws-discovery
    4500/udp open|filtered nat-t-ike
    5353/udp open|filtered zeroconf
    5355/udp open|filtered llmnr

    Nmap done: 1 IP address (1 host up) scanned in 65.99 seconds

        1. Done. I should maybe add a DHCP server in my machine (seedling) so that we go farther than that?
          19:18:51.143223 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
          19:18:51.163028 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:18:51.567528 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
          19:18:51.855794 IP6 :: > ff02::1:ff15:cd48: ICMP6, neighbor solicitation, who has seedling, length 32
          19:18:52.879475 IP6 seedling > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
          19:18:52.890860 IP6 seedling > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
          19:18:52.980942 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
          19:19:02.642652 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:19:05.033075 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:19:07.993327 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
          19:19:14.881692 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:19:23.941343 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:19:24.007891 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
          19:19:35.502103 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:19:36.154845 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 2 group record(s), length 48
          19:19:36.178910 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 2 group record(s), length 48
          19:19:36.200411 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:19:36.719268 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
          19:19:36.846883 IP6 :: > ff02::1:ff15:cd48: ICMP6, neighbor solicitation, who has seedling, length 32
          19:19:37.871138 IP6 seedling > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
          19:19:37.886994 IP6 seedling > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
          19:19:37.972103 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
          19:19:38.112252 IP6 seedling > ip6-allrouters: ICMP6, router solicitation, length 8
          19:19:38.153831 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] [2n] ANY (QM)? 8.4.d.c.5.1.0.c.c.4.f.0.b.e.7.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? seedling.local. (152)
          19:19:38.382796 IP6 seedling > ff02::16: HBH ICMP6, multicast listener report v2, 2 group record(s), length 48
          19:19:38.405511 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] [2n] ANY (QM)? 8.4.d.c.5.1.0.c.c.4.f.0.b.e.7.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? seedling.local. (152)
          19:19:38.656572 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] [2n] ANY (QM)? 8.4.d.c.5.1.0.c.c.4.f.0.b.e.7.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? seedling.local. (152)
          19:19:38.857282 IP6 seedling.mdns > ff02::fb.mdns: 0*- [0q] 2/0/0 (Cache flush) PTR seedling.local., (Cache flush) AAAA fe80::67eb:f4c:c015:cd48 (140)
          19:19:38.863114 IP6 seedling > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
          19:19:38.972271 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
          19:19:39.402017 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:19:40.089470 IP6 seedling.mdns > ff02::fb.mdns: 0*- [0q] 2/0/0 (Cache flush) PTR seedling.local., (Cache flush) AAAA fe80::67eb:f4c:c015:cd48 (140)
          19:19:40.973516 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
          19:19:42.116236 IP6 seedling > ip6-allrouters: ICMP6, router solicitation, length 8
          19:19:42.322475 IP6 seedling.mdns > ff02::fb.mdns: 0*- [0q] 2/0/0 (Cache flush) PTR seedling.local., (Cache flush) AAAA fe80::67eb:f4c:c015:cd48 (140)
          19:19:42.838254 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:19:44.976578 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
          19:19:46.115740 IP6 seedling > ip6-allrouters: ICMP6, router solicitation, length 8
          19:19:48.383646 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:19:51.732295 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:19:52.984075 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
          19:19:56.167116 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:20:01.936283 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:20:08.997571 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
          19:20:15.324115 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:20:21.159093 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 3 group record(s), length 68
          19:20:21.194939 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 3 group record(s), length 68
          19:20:21.207961 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:20:21.295236 IP6 :: > ff02::1:ff15:cd48: ICMP6, neighbor solicitation, who has seedling, length 32
          19:20:21.871062 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
          19:20:22.318982 IP6 seedling > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
          19:20:22.320541 IP6 seedling > ip6-allrouters: ICMP6, router solicitation, length 8
          19:20:22.330828 IP6 seedling > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
          19:20:22.420990 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
          19:20:22.585623 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] [2n] ANY (QM)? 8.4.d.c.5.1.0.c.c.4.f.0.b.e.7.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? seedling.local. (152)
          19:20:22.639070 IP6 seedling > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
          19:20:22.836747 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] [2n] ANY (QM)? 8.4.d.c.5.1.0.c.c.4.f.0.b.e.7.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? seedling.local. (152)
          19:20:23.086833 IP6 seedling > ff02::16: HBH ICMP6, multicast listener report v2, 2 group record(s), length 48
          19:20:23.087109 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] [2n] ANY (QM)? 8.4.d.c.5.1.0.c.c.4.f.0.b.e.7.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? seedling.local. (152)
          19:20:23.288055 IP6 seedling.mdns > ff02::fb.mdns: 0*- [0q] 2/0/0 (Cache flush) PTR seedling.local., (Cache flush) AAAA fe80::67eb:f4c:c015:cd48 (140)
          19:20:23.421135 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
          19:20:24.503777 IP6 seedling.mdns > ff02::fb.mdns: 0*- [0q] 2/0/0 (Cache flush) PTR seedling.local., (Cache flush) AAAA fe80::67eb:f4c:c015:cd48 (140)
          19:20:24.758960 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:20:25.422385 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
          19:20:26.114869 IP6 seedling > ip6-allrouters: ICMP6, router solicitation, length 8
          19:20:26.720258 IP6 seedling.mdns > ff02::fb.mdns: 0*- [0q] 2/0/0 (Cache flush) PTR seedling.local., (Cache flush) AAAA fe80::67eb:f4c:c015:cd48 (140)
          19:20:28.476707 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          19:20:29.425404 IP6 seedling.mdns > ff02::fb.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
          19:20:30.113363 IP6 seedling > ip6-allrouters: ICMP6, router solicitation, length 8
          19:20:33.237775 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:d7:22:28 (oui Unknown), length 300
          ^C
          70 packets captured
          86 packets received by filter
          16 packets dropped by kernel

          1. Did you use any filter? I don’t see any packets from the device (08:00:27:d7:22:28 is your PC, right?). Maybe you have faulty one.

            1. No, I just used `tcpdump` without any option.
              08:00:27:d7:22:28 is my PC, you’re right (well, in fact, that’s my Ubuntu virtual machine, as Windump didn’t give me any information on Windows).

                    1. ffmpeg seems ok, but vlc can’t read anything:
                      $ ffmpeg -i udp://@239.255.42.42:5004 -vcodec copy -f mpegts udp://127.0.0.1:1234
                      ffmpeg version N-50911-g9efcfbe Copyright (c) 2000-2013 the FFmpeg developers
                      built on Mar 13 2013 21:26:48 with gcc 4.7.2 (GCC)
                      configuration: –enable-gpl –enable-version3 –disable-w32threads –enable-avisynth –enable-bzlib –enable-fontconfig –enable-frei0r –enable-gnutls –enable-libass –enable-libbluray –enable-libcaca –enable-libfreetype –enable-libgsm –enable-libilbc –enable-libmp3lame –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-libopenjpeg –enable-libopus –enable-librtmp –enable-libschroedinger –enable-libsoxr –enable-libspeex –enable-libtheora –enable-libtwolame –enable-libvo-aacenc –enable-libvo-amrwbenc –enable-libvorbis –enable-libvpx –enable-libx264 –enable-libxavs –enable-libxvid –enable-zlib
                      libavutil 52. 19.100 / 52. 19.100
                      libavcodec 55. 0.100 / 55. 0.100
                      libavformat 55. 0.100 / 55. 0.100
                      libavdevice 54. 4.100 / 54. 4.100
                      libavfilter 3. 45.103 / 3. 45.103
                      libswscale 2. 2.100 / 2. 2.100
                      libswresample 0. 17.102 / 0. 17.102
                      libpostproc 52. 2.100 / 52. 2.100

  175. I haven’t been able to watch video coming from the TX on my Windows laptop, and the howto commands won’t work for me, even on Linux VM. I tried this command under Linux on an ODroid XU4, and it somehow worked:
    vlc –network-caching 16000 udp://@239.255.42.42:5004/
    I now have a Check your TX Input or something approaching… Later on, I retried with
    cvlc udp://@239.255.42.42:5004/
    and I got the first image showing.
    Unfortunately, I never get any other image of the remote computer, always the very first one is displayed. I also have errors:

    odroid@gamestation-turbo:~$ cvlc udp://@239.255.42.42:5004/
    VLC media player 2.2.8 Weatherwax (revision 2.2.7-14-g3cc1d8cba9)
    [0004b268] dummy interface: using the dummy interface module…
    Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
    [abf04860] xcb_xv vout display error: no available XVideo adaptor
    libGL error: MESA-LOADER: malformed or no PCI ID
    libGL error: unable to load driver: exynos_dri.so
    libGL error: driver pointer missing
    libGL error: failed to load driver: exynos
    [abd01418] ts demux error: libdvbpsi (PSI decoder): TS discontinuity (received 4, expected 7) for PID 17
    [abd01418] ts demux error: libdvbpsi (PSI decoder): TS discontinuity (received 4, expected 7) for PID 0
    [abd01418] ts demux error: libdvbpsi (PSI decoder): TS discontinuity (received 4, expected 7) for PID 4096
    [abd0c628] avcodec decoder error: more than 5 seconds of late video -> dropping frame (computer too slow ?)

  176. Greetings!

    Thanks for this blog, really appreciated – and learned a lot. I m really interested in that product as it is relatively cheap for what i want to do. I have some questions though:

    1) My network setup is shown in that pic: https://imgur.com/a/GnlUQK2

    I am a little confused: Will this encoder work with my setup (with modem/router + 2 ethernet switches)? I am about to use the unicast option of course. Will i have any streaming problems?

    2) I want to do this also

    https://imgur.com/a/COBckeb

    Problem is that my Samsung Smart tv (mu6102K) vant decode rtp stream (only http). But that is my second step as my number 1 question should be answered first.

    Any thoughts appreciated

    1. Hi,
      1) should be without problem
      2) you will probably need some device to convert the stream to something your tv will understand.

      1. Thanks 🙂

        1) I red somewhere that my switches need to be in “igmp snooping mode” or smth like that. Is this correct? My switches are simple ones like this here:

        https://www.ebay.com/itm/New-TP-LINK-5-Port-Fast-Ethernet-Desktop-Switch-TL-SF1005D/123068968043?epid=93545301&hash=item1ca77b6c6b:g:bcAAAOSwWMhaXbMP:rk:4:pf:0

        2) Have y smth in mind? Maybe a device (like a rasp pi ?) or a PC based software (dont know much of that – just guessing) which will convert my rtp stream to http on the fly?

        1. PS. I think maybe i have found a way for my 2 question but i m not sure yet:

          I used kodi (libreelec) which natively plays rtsp streams (look here https://kodi.wiki/view/Internet_video_and_audio_streams#The_.STRM_file_method🙂 but it uses this format

          rtsp://host/path/stream

          I was able to play this stream for example:

          rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov (i wasnt able to find a public rtp stream to test it)

          But – in your example – you have used

          rtp://@239.255.42.42:5004. So my question: Are rtsp and rtp the same? Will rtp work as well through kodi?

        2. 1) when you switch to unicast, you don’t need multicast capable switches
          2) RTSP != RTP, you can google that…

          1. About 2) Yes i know that. I just dont know if kodi’s *.strm file can play rtp streams too (along with rtsp ones). I hope (?) yes.

            Just 2 more questions:

            1) In order to use the below command (to set the device to unicast)

            http://DEV_IP/dev/info.cgi?action=streaminfo&udp=n&rtp=y&multicast=n&unicast=y&mcastaddr=DST_IP&port=5004

            do i need to update the fw with the IPTV_TX_PKG_v4_0_0_0_20160427.PKG file (found in IPTV_command_library_and_tool_20160303/TX folder)? Or can i do it without installing any fw?

            2) In order to use the above command, i just copy-paste it in my windows firefox web browser?

            Thanks in advance!

  177. I have very thick Black Border on all sides of the video which is included in the 1920x1090p resolution, the effective resolution is much lower than 1920 x 1090

  178. Hello Danman, can the port number of the multicast/unicast address of these HDMI extenders be changed? I am planning on delivering a video feed to a DTH headend in Nigeria and their system only takes (IP) unicast and multicast, so I want to covert my HDMI signal into a specific UNICAST/MULTICAST IP address.

  179. Anyone know the output settings for ffmpeg for the receivers to receive a feed? I’ve tried replicating the transmitter with a software solution with not much luck. Looking for a COTS solution without having to configure an RPI or similar.

  180. Ran across this article and it has been extremely helpful. Thanks to all who have contributed! Started playing with this as I want to be able to remotely watch my DirecTV across a vpn connection. Here my progress/findings so far. Trying to give as much detail as I can so this will be a long one…

    Originally I purchased a “J-Tech Digital ProAV Hdmi Extender Over TCP/IP Ethernet/Over Single Cat5e/cat6 Cable 1080p with IR Remote – Up to 400 Ft” https://www.amazon.com/gp/product/B00TR9N4U8/ref=oh_aui_search_asin_title?ie=UTF8&psc=1 because it has IR. Had no luck, both the IPTV control v2 and v3 could not find them. In addition, I was unable to get it to work at all with my switch stack as IGMP Snooping is an additional license and did not want to pay for it. Sent them back.

    Then ordered “Kenuco LKV373A HDMI Extender Over Ethernet up to 120m / 390ft” https://www.amazon.com/gp/product/B01C9CI1B6/ref=oh_aui_search_asin_title?ie=UTF8&psc=1. Am able to see the tx with the controll app.

    Here is the default settings
    TX version: 4.0.0.0.20161116
    Encoder version: 7.1.2.0.11.20.161116
    DHCP: On
    IP: 192.168.2.210
    Video Bitrate FHD: 15000
    Video Bitrate HD: 12000
    Video Bitrate SD: 4000
    Straming Mode: Unicast

    Able to find the rx but when I try and access it the IPTV control hangs for a long time and then pulls back basic gobbly-gook.

    Device name/Rx version: ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ
    Mac address CCCCCCCCCCCC
    etc.

    Getting HDCP: On in the control app. rx working fine but vlc has blank screen. Task #1 remove hdcp. I purchased a “Revesun 1×2 HDMI Splitter 1 in 2 out 1080p HDCP 2.2 4k2k Ultra High Definition Splitter HDMI Box DVI 1.0 3D” https://www.amazon.com/gp/product/B014EZ7266/ref=ppx_yo_dt_b_asin_title_o00__o00_s00?ie=UTF8&psc=1 which was supposed to remove hdcp. It did not work so it went back as well.

    I purchased “HDMI Splitter 1 In 2 Out – Aluminum 4K Signal V1.4 Powered HDCP Bypass Supports” https://www.ebay.com/itm/HDMI-Splitter-1-In-2-Out-Aluminum-4K-Signal-V1-4-Powered-HDCP-Bypass-Supports/202566835790?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649 and hooked it up. HDCP is now off 🙂

    Have played with a bunch of settings on both the control app and via the direct web url (going to the tx ip just gives the upgrade firmware page and telnet 9999 is dead).

    1. Factory reset via the control app and push the reset button for 15 seconds on the tx box.
    2. Able to see video on the rx and pcs running vlc using default settings by going to rtp://@239.255.42.52:/5004
    3. On one particular pc will not play it
    a) without doing the following http://192.168.2.210/dev/info.cgi?action=streaminfo&udp=y&rtp=n&multicast=n&unicast=y&mcastaddr=239.255.43.43&port=5004
    b) This glitches the video on all devices for a second or two as it updates and then all devices work.
    c) Have uninstalled (with remove cache and preferences) and reinstalled.
    d) Very strange
    4. Downscale setup works.
    a) Resets to default output on reboot.
    1. control app shows the old settings
    2. video output is at default hd
    b) Can only change settings once per boot.
    c) VLC plays smoothly but rx is choppy on any transcoding. ie. 1920×1080 in tx, rx choppy transcoded to 1280×720 and 720×480
    d) rx plays smoothly when tx is being fed sd. Getting sd on rx
    5. Unicast/multicast has no effect in control app and show unicast on reboot
    6. Have not been able to get udp to work no matter what settings I use.
    a) Will re-read the article and see what I am missing.
    b) Firware issue? See below for plan of attack
    c) Probably related to my switch issue. Have a new cheap test switch on the way that supports IGMP snooping.

    Purchased the following as well. “Gikfun USB Programmer CH341A Series Burner Chip 24 EEPROM BIOS Writer 25 SPI Flash AE1185” https://www.amazon.com/gp/product/B01I1EU9LG/ref=ppx_yo_dt_b_asin_title_o00__o00_s00?ie=UTF8&psc=1 and “CTYRZCH SOIC8 SOP8 Flash Chip IC Test Clips Socket Adpter Programmer BIOS/24/25/93” https://www.amazon.com/gp/product/B015W4PKR6/ref=ppx_yo_dt_b_asin_title_o00__o00_s01?ie=UTF8&psc=1. Have not had a chance to play with them yet, but will do the diode trick and pull and post the factory firmware for both.

    The board on these seem to have unpopulated ir. Puchased a couple of 1/8″ jacks, IR rx and IR tx dongles. Will hook them up and see if I can get IR to pass through.

    1. Update: TVHeadEnd

      First off sorry for the formatting on the last post. was trying to do a layout that made it easy to follow but obviously that did not work. Will try something a little different this time and see if that helps.

      I have basic TVHeadEnd up and working. Had a friend test both 1080 and SD remotely. Both played without any issues. They even mentioned it was playing better than YouTube has been for them lately. Seeing 1080 at 15Mbit and sd at 5Mbit throughput. Here are the settings I used under the Configuration tab

      1. General
      1a. Base
      1a1. set server name, etc to your liking
      1b. General
      1b1. Image cache: defaults
      1c. SAT>IP servers
      1c1. RSTP Port: 9983
      1c2. Anonymize: unchecked
      1c3. Disable UPnP: checked
      1c4. RTP over TCP payload: 7896 byte
      2. Users
      2a. Setup any users you want to have access
      3. DVB Inputs
      3a. TV adapters
      3a1. Leave alone
      3b. Networks
      3b1. Network Name: (your choice)
      3b2. Maximum # input streams: 1
      3b3. Maximum bandwidth: 0
      3c. Muxes
      3c1. Enabled: Enabled
      3c2. EPG Scan: Disable
      3c3. URL: rtp://239.255.42.42:5004 (I do not udp working on my transmitter yet but it should work here if you have yours working)
      3c4. ATSC: Checked
      3c4. Mux Name: (your choice)
      3c5. Channel number: 0
      3c6. Service name: leave blank
      3d. Services
      3d1. Enabled: Enabled
      3d2. Channel: (what you set in 3b1 and 3c4)

      There are lots and lots of other settings but I have not played and honestly have not done the research to understand. Next steps looking at seeing if I can get it running on a Pi.

  181. So, I just got my Sender, hooked it up to a Nintendo Switch and the LAN straight into my PC.
    Looking at Wireshark after plugging it in I can see a lot of packages coming from 192.168.1.238 going to 239.255.42.42. The Packages are either:
    UDP protocoll with the length of 60
    some NULL packets with the length of 1358
    a video-stream package with a lot of MP2T fragment packages beneath it and the length of 1358.

    After that I opened VLC and tried both upd://@239.255.42.42:5004 and rtp://@239.255.42.42:5004
    Both don’t throw me an error but also don’t show any image, just a loading bar bouncing from left to right.

    Also, I can’t access the build-in webserver to update the firmware and the windows utility you shared (IPTV Control Center 3.0) also doesn’t find any device. I am slowly running out of clues on what to do, sadly I don’t have the equipment to reprogramm the storage chip myself, I’d have to wait 3 months until university starts again and then ask one of the laboratory guys for help.

    Any ideas on how I can get the stream running?
    Thansk for helping,
    Chris

    1. Nevermind this comment. After actually reading the documentation in your google drive I noticed that I am quite stoopid at times and used the wrong IP adress. some firmware and encoder updates later now everything is smooth sailing.

      1. Hi,
        i have the same problem can you please tell me what are your firmware and encoder version?

        Thanks

        1. Oh. Kind of late reply, sorry for that. Sorry, unfortunately I cannot give you that answer, I’d look it up but the thing lays on the corner of my desk with ripped PCB traces because I cannot solder.
          Anyways, if you are using Windows I’d suggest disabling the firewall aswell as all network adapters despite the one you use to connect to the device, the Windows utility gets easily confused and it may help with getting on the website too.
          Good luck!

  182. Bought a few different HDMI extenders to test with

    The Monoprice BitPath AV HDMI Extender, Product ID 16228 uses LKV373A v3.0
    It came with Version :4.0.0.0.20161116
    Encoder Version :7.1.2.0.11.20161116
    It also has POE so there’s no need for separate power supplies.

    HDWAVE K3027 HDMI OVER IP EXTENDER uses LKV373A v3.0
    It came with Version :4.0.0.0.20161116
    Encoder Version :7.1.2.0.11.20161116

  183. Hey all,
    I stupidly brought a KLV383 to be used as a “KVM”, not knowing about he high latency

    Lenkeng supplied me with a 2017 version of the firmware
    Which reduced the latency to around 100ms @ 1080p.
    Has anyone been able to reduce the latency lower? or remove the compression all together ?

  184. Hello, i made big mistake. put RX.pkg into TX device.
    Didnt flash the bin file only PKG file.
    How can i fix the device. I will manually flash the device, is there any tips?

  185. Hello, i made made mistake flashed TX with RX firmware.
    Only pkg file. And now my device not working
    I will flash it manually. Is there any how to? with what file etc.

  186. Hello everybody!
    Is it possible to use LKV373a v3.0 in matrix mode?
    The task is:
    1. I need to broadcast one signal to many monitors using existing network and LKV373a sender and recievers. (it works fine out of the box)
    2. I need to send 2 other signals from cameras to videoserver using the same network (point to point).
    Is it possible to solve this task with LKV373a? Using multicast groups or unicast?
    Network is 1Gb ethernet.
    What is the easyest solution?

  187. Greetings. Tell me please. Is it possible to make RTSP or RTSP over UDP 1080p 12000mbps?

  188. Hello,
    I’m currently facing a major problem with the TX that I am simply unable to overcome seeing how I tried for 3 days straight now after completely bricking my first TX a few weeks ago which was having the same problem -_-

    Anyways, to the Problem. Little Information beforehand.
    I am running firmware version 4.0.0.0.20160427 (the one that came with the windows utility) and the encoder firmware version 7.1.2.0.11.20160407 on my unit. It is hooked up local-link into a raspberry pi which has a self written application on it that is supposed to use opencv and the image for ambilight. It all worked just great for a few days when suddently, whoops. I can’t open the stream anymore. Now whenever I start my ambilight programm I get thrown a TON of ffmpeg (backend capturer of OpenCV) errors which look like this:
    [NULL @ 0x11f4a40] SPS unavailable in decode_picture_timing
    [NULL @ 0x11f4a40] non-existing PPS 0 referenced
    with the occasional
    [h264 @ 0x125fe90] Invalid level prefix
    [h264 @ 0x125fe90] error while decoding MB 28 9
    sprinkled in.
    I open the capturer by giving ffmpeg the link: “udp://@239.255.42.42:5004?overrun_nonfatal=1&fifo_size=5000000”
    though I also tried just udp://@239.255.42.42:5004 and rtp aswell as rtsp (rtp getting stuck forever while rtsp is outright refusing to give me anything).
    In an attempt to solve it I went into the embedded webpage (using the good ol admin 123456 default password) and factory reset the thing. Same issue.
    Next up I tried opening a ffmpeg capture directly though ffmpeg, not the opencv backend. That gave me a little more interesing information:
    [h264 @ 0x278d160] SPS unavailable in decode_picture_timing
    [h264 @ 0x278d160] non-existing PPS 0 referenced
    [h264 @ 0x278d160] decode_slice_header error
    [h264 @ 0x278d160] no frame!
    [mpegts @ 0x276e7b0] decoding for stream 0 failed
    [mpegts @ 0x276e7b0] Could not find codec parameters for stream 0 (Video: h264 ([27][0][0][0] / 0x001B), none): unspecified size
    Consider increasing the value for the ‘analyzeduration’ and ‘probesize’ options
    Input #0, mpegts, from ‘udp://@239.255.42.42:5004?overrun_nonfatal=1&fifo_size=5000000’:
    Duration: N/A, start: 968.337000, bitrate: N/A
    Program 256
    Metadata:
    service_name : AIR_CH_521_6M
    service_provider: ITE
    Stream #0:0[0x7d1]: Video: h264 ([27][0][0][0] / 0x001B), none, 59 tbr, 90k tbn, 180k tbc
    Stream #0:1[0x7d2]: Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, fltp, 192 kb/s

    do note the either useless or missing information on Video. Oh and I did use increase probesize with a very generous size on both.
    And to sum it all up, this issue only comes occasionally. Every now and then my ambilight Software throws me a missing header or outright refuses. If that issue I have been describing the entire time comes up the stream usually works, but with a ~6 second delay and my Software crashing after a minute max because it got a 0x0 resolution image in the capturer.

    I am at my end for solutions to this, seeing how I softbricked by old capturer by using another firmware and then fried the PCB while attempting solder I am ….. hesitant to use non known good firmware and just try out all the other firmwares, so preferably I’d stick with this firmware, expecially seeing how it provides low latency downscaling.

    Thanks for the help,
    Chris

    1. To me it seems like some problem in input. Did you try to plug out and in the HDMI input cable?

      1. Yeah I did try that, no success.
        My input usually was: Something like XBOX or Switch –> Onkyo audio reciever –> audio stripper (removes HDCP) –> LKV373A
        Just for testing I plugged in my laptop straight in the LKV373A and captured with ffmpeg. After some of the exact same text wall he started to record (ffmpeg is able to record with both kind of sources, if I set the analyzeduration and probesize big enough). After looking at the video I noticed one thing. the stream is extremely delayed. It still showed me typing in the record command, starting ffmpeg and starting the recording, but not the test actions I did with after starting the recording. Much too delayed. So yeah, no clue why but it is sending with massive delays.

        In the webinterface I set downscale mode for both FHD and HD to SD (The Pi aparentally can’t really handle FHD, that gave me all other issues when it used to work)

        1. Fixed it!

          My opencv is really using an old ffmpeg version, which does not filter out null packets. Added the iptable rule you posted in the article and boom. No problems, delay is there in the beginning but after like 30 seconds the pi catches up and I have pretty much no latency at all.

          Thanks for the help and awesome article so far ^^

          Chris

  189. Really pleased to have found this sight, hopefully some one can answer a question for me. I have a LKV373 which I have flashed with IPTV_TX_PKG_v4_0_0_0_20160427.PKG.

    It works ok but the packet length is 1358 and I need it to be mpegts with a length of 1316.

    Any idea how I can change it ?

    Many thanks

      1. Hi, Wireshark reports mpegts and VLC decodes it ok – but not actually sure what it is sending, looks like mpegts just not the right length !

        Lots of null packets – don’t know if that’s relevant ?

        Thanks Tim

    1. You are right, The IP and UDP headers seem to be off. Did you also flash encoder firmware?

      1. Not as far as I know as I was following a link which said not to flash the encoder. So I guess I need to ref lash the encoder back to the ‘correct ‘ version whatever that is. At least I know what to look for now and my hunch was correct.
        Can you recommend any fw for the encoder which could handle 1080i ?
        Regards Tim

  190. Hi again,

    I’ve tired several encoder versions and firmware but my 373 seems to only want to produce packet lengths of 1358 not 1316 as required.
    Also the IPTV tool doesn’t want to detect it anymore so I upgrade thru the units built in web server.
    Any idea what I could try next ?
    Regards Tim

  191. Hi.
    I just purchased one of these, hoping to record my Wii U at 720p 60fps. It does work, and if I set the bitrate in the new firmware, the video quality is excellent. It appears the bitrate caps out at 32735 kbps, and if you set it to anything higher than that, then the quality looks worse for some reason.

    The ONE PROBLEM is the audio quality. Because this is MPEG-2 audio, it sounds so much worse than if they just used MP3 or AAC… like they could’ve, but it’s almost like they chose specifically not to.

    The audio from this unit sounds like it’s a lower sample rate than it actually is. While it works fine, it’s not high quality by any means, like the video from this unit. It also has a little bit of hiss in the background that appears to go away when the audio is silent, I don’t believe this is interference or anything, it’s probably the audio codec again.

    MPEG-2 at high bitrates will never sound better. At a certain point, it all sounds the same. AAC or MP3 on the other hand, will sound better and much closer to lossless audio at higher bitrates.

    I just don’t know why they decided to choose MPEG-2 audio. I wanted to fix this, and I tried using the commented-out HTML to change it to AAC, then manually changing iptv.ini on the main firmware flash memory… nothing. It won’t change from MPEG-2, 48khz at 192 kbps.
    I just want to see if anyone else has got this unit to use AAC, or in fact anything other than MP2 (the unit appears to use MP3 with the “Signal Loss!” screen. By the way, this screen appears to be a part of the encoder, as updating the firmware but not the encoder firmware doesn’t change this. Not like it can be changed anyway.)

    I saw strings for “[AAC Enc]” along with “[MPEG Enc]” in the encoder firmware, so it should be possible, maybe. The worst part is that this device uses totally proprietary compression and instruction set, so you couldn’t even hack it into using AAC, without months and years of reverse-engineering this $30-ish device.

    By the way, I’m also interested in capturing 1080p at 60fps at this device. While it can already capture fairly choppy 1080p at 30fps, I’d like to see it at least try, and this would probably be something else that’s possible if the compression and instruction set are reversed.

  192. Hi, great article! All went very smooth. Does anyone know how to stream it back to the receiver? Could be great to make use of that device and display live stream on a remote projector as well.

      1. Thanks @danman but code looks like LKV373 specific (not A version). I’ve tried couple times with FFmpeg without any luck

        1. Ah, sorry… But for this purpose you can use any cheap *anything*-pi – I don’t see a reason to use LKV

  193. Hello everybody,
    I just purchased the 4k LKV683 hdmi extender but was not able yet to receive any other resolutions than I got with the LKV373, e.g. 720p 50fps.
    Has anybody the same device and already found the right url parameters for higher resoutions like 1080p with 50/60 fps ?

  194. https://www.youtube.com/watch?v=j7JRosD_ua8
    Hi,
    Not sure if anyone already mentioned this but OpenTechLab is back with his reverse enginering on LKV373A and I think he’s making an impessive job. He claim he spent several months in investigating the hardwre and crafting custom script to recover data and code and the findings look very promising. Check it out.

    Pino.

  195. Hi, is there a way to force this thing to produce progressive output from interlaced input? I don’t want to run a separate ffmpeg instance for this. Thanks.

  196. Those who suffer from PORT mess if streaming to the same machine, use rule:
    iptables -t nat -A PREROUTING -p udp -s STREAMER_IP –dport 5004 -j REDIRECT –to-ports WANTED_PORT

  197. Hi i tried a 5V usb power output (max 2A output) from different devices to power the module. It dit not work. With the external power adapter everything works fine.
    Why doesn’t this work?
    I measured 5.0v on the usb power supply.
    I measured 5.2v on the external power adapter.

    Is there a solution to be able to connect to the 5V (2A) usb output?

  198. Did anybody notice how bad this thing is encoding on fast scenes? Picture gets broken and then it plays normal on slow scenes. No matter which encoder firmware.

  199. hi
    i have a probleme
    i bought the LKV373A ,the first time used with vlc udp://@239.255.42.42:5004
    worked fine ,but now it won’t work at all
    in my router i don’t see any dhcp address or ip assigned to my device ,it does not show up at all
    the ethernet led is on
    is it dead ?

    1. Hello, something similar happened to me at the time of flash, just showing the green light of the j45 port, the solution was to take out the 25Q32 eeproms and record it with the file lkvm-4M.bin and now it is working perfectly. Congratulations to danman for the work done.

  200. Hi
    i bought the LKV373A, I can see picture when i connect directly with rj45 cable but if i connect throught smart switch netgear gs724tpv2 i do not see picture anymore but i have not message ‘verify tx connexion’. Do i have to set some pamameters on switch ? Can you give me an idee to solve ?

    Regards

  201. Hi,

    I would like to buy an LKV383 because I need infrared, can anyone tell me if I can see the video stream with VLC and LKV383?

    if I change the firmware with the one indicated in this discussion can I continue to use infrared?

    Thanks!

  202. Hi,
    Follow the steps of Update 14. Dec.

    My idea is to disable multicast and deactivated (Checking is no longer marked on
    Stream Setting-> Transfer).

    But now what URL do I have to put in VLC in order to receive the image in unicast?

    1. If you set the unicast IP address, you have to open on VLC udp://@:5004 from the device that has that IP.

  203. Looks like a newer H.265 version with a web interface and some additional features: https://www.monoprice.com/product?p_id=39686

    Documentation (user’s manual) looks rather complete as well, with instructions for receiving the streams via VLC for both the main stream and sub stream.

    Waiting for a Monoprice sale and will then pick up a pair for testing.

    1. It seems, that it is an RTSP encoder/decoder and not using multicast/unicast. very interesting cause it will not kill your network and its more easy to use with vmix/OBS or any other software.

  204. Hello everybody! I’m using the LKV373A to create my own IPTV Server. It’s working very well! The only problem is that the video quality during sport matches (i.e. football) is bad and I see horizontal lines. It happens also when I set an high bitrate (15000 kbps). Could you suggest me a good encoder for sport matches? Thank you

  205. Giatzo: i have the same issue,i was not able to find any way to fix it.I think this hardware is not capable for better performance (tired many encoder firmwares,different settings but the encoded video playback is not smooth:(

  206. Hi,

    there are several copycat devices or maybe devices from the same manufacturer but marketed by different companies like AGPtek and Lindy etc.

    I bought one of these devices from amazon. To be more precise this one from GHB:

    https://www.amazon.co.uk/d/Video-Converters/GHB-Extender-Repeater-Transmission-Supports-Black/B072FLFRHY

    I got it very cheap but unfortunately only later found out, that this one only allows direct connections and does not work if there is router inbetween, which is of course far more useful.

    I’m however wondering, if these Direct Link Only devices are only limited via Firmware to allow only direct connections? Is it possible to flash a Multicast Firmware to these limited devices and make them work through routers and assign IP’s?

    I also wan’t able to reverse engineer this device myself. Wireshark did not capture any pakets at all when I directly connected the sender to my PC and captured the LAN Interface.

    Also the IP’s danman has mentioned here do not produce any response at all. Neither through VLC via rtp or UDP on 239.255.42.42:5004 or via browser.

    Do these cheaper Direct Link only devices use a non standard method of sending the data, so that the method discussed here does not apply? That would be a bummer.

    Does anyone know how to update the firmware on these devices if you can not access any Webui through some IP?

    The general approach schould be similiar for these cheaper devices than what is discussed here right?

    I may add that in the discussions here it was never mentioned that ordering these devices from china adds customs and handling fees. If you consider that, the prices for the sender only pushes costs up to about 50 or 60 Bucks and at that price level one may just get a HDMI capture card and save all the firmware hacking troubles.

    I got my devices for 15 Bucks so it was worth a try.

    Please give feedback if it is possible to change my device to receive the stream via vlc on a pc or not, as I have a 2 weeks time to send these devices back and get a refund.

  207. Version :4.0.0.0.20161116
    Encoder Version :7.1.2.0.11.20161116

    Not able to open the stream in VLC on the Version 3d tranmitter.
    I’m running windows 3.0.8
    i can see the traffic in wireshark and I’m trying to join the multi cast steam but i never get a picture.

    trying to connect to
    udp://@239.255.42.42:5004 with a long buffer.

    vlc just had a yellow bar bouncing along the progress bar but no pic or audio.

    can anyone guide me?

  208. For anyone still looking for the RTSP url when multicast is off, use the following
    rtsp://{ip_of_tx}/{anything}.airts

    It doesn’t seem to work very well. VLC can only play for a couple of seconds. FFPLAY can play for a bit longer. Forcing it to use TCP makes it even worse.

    Using the normal UDP multicast and unicast urls, I get issues when I use a 1080p source, (720 and 1080 output), 1080i source seems fine

    [mpegts @ 0x7f8cea82dc00] DTS 100800 < 2199690 out of order
    [mpegts @ 0x7f8cea82dc00] PES packet size mismatchsq
    [mpegts @ 0x7f8cea82dc00] DTS 100800 < 743400 out of order
    [mp2 @ 0x7f8ce9860e00] Header missing
    [mpegts @ 0x7f8cea82dc00] PES packet size mismatch
    [mp2 @ 0x7f8ce9860e00] Header missing
    [mpegts @ 0x7f8cea82dc00] DTS 100800 < 379800 out of order

  209. I have been struggling with very choppy and corrupted images. Just thought I leave my findings here:

    The latest firmware on the google-drive (and which I got) is from 201611xx, which does not offer any of the control features. Flashing 4.0.0.0.20160427 onto my TX, as found in the ‘IPTV_Control…’ directory on Google drive has all the settings I need.

    After flashing it, I had to reset the password via telnet as the article describes. Then I could change the settings. 15000 for FULLHD was lowered to 1500 which helped for me. But I still had a very bad picture with VLC. What helped me was switching from Multicast to Unicast.

    This can be done via HTTP:
    http:///dev/info.cgi?action=streaminfo&udp=n&rtp=y&multicast=n&unicast=y&mcastaddr=&port=5004
    where the device-ip needs to be the IP of the device and the reciever-ip the IP of my PC.

    Then starting VLC with ‘vlc –network-caching=10 udp://@:5004’ gave me a pretty robust picture!

  210. Have you ever found out if this RTP-mode is in fact what they call the HDbitT protocol or if that’s just an addon feature of this specific device?

    The HDbitT.org website isn’t really helpful as it contains no technical information on the standard. From the marketing/comparison stuff you can see it’s using multicast-IP as well (as they’re using IGMP to perform routing), but there’s no word on it using RTP inside, so I’m not sure if this might instead be the non-RTP-protocol mentioned at the end of the OpenTechLabs video and would then require a matching receiver box to decode.

    They claim on their website that HDbitT was capable of streaming 4kx2k@60Hz (I assume this refers to 3840 × 2160)

  211. Is it possible to more precisely control the output resolution/framerate? I’d really like to get this outputting a really low bandwidth video stream, something like 720×480@15fps, no audio. I can get 720×480@60fps.

  212. hello, I can’t get this to work. which firmware do I have to install and how do I get the stream e.g. in vlc?

    1. I have a pair of these devices TX and RX (I might buy a second RX also) – but on my network multicast is flooding the wifi (and affecting everything) so I want to switch to unicast – but I cannot see how to configure the RX with the ipaddress of the TX device? I can see how to use VLC via Unicast, so any advise would be appreciated.

      Thanks

  213. Tried to capture picture from PS4 with LKV383 but all I get is black screen. Though when I try to capture HDMI signal from my PC everything works fine and I can see my screen in VLC. Anyone know what can cause such trounle? Using multistream function.

    1. PS4 signal is most likely HDCP protected. Do you have something in the HDMI chain to the LKV383 that strips HDCP? If not you can get a cheap HDMI splitter from Amazon, that’ll also strip the HDCP signal.

  214. I bought some units, that have the worse UI – they are equiv to the HHD264 units.

    The sender is model ZH1001H

    Does anyone know if there is any firmware for these?

    The seller on aliexpress, totally useless to deal with… they seem equiv to HHD264.. basically same box, and popping the cover.. similar insides.

    P

  215. Hi all, first of all, thank you for this really great writeup, all of the hard work and helpful comments. I borrowed a V3 device and now wanted to order my own just to notice that V3 seems to be not sold anymore.
    You either only get the old v2 or a newly v4, e.g. on aliexpress:
    https://de.aliexpress.com/item/32787640267.html
    Which explicitly states that it is not compatible with v2 or v3 RX.
    On lenkeng:
    https://www.lenkeng.net/Index/detail/id/1642
    It states that it is an “upgraded version of the LKV373A, with lower transmission delay and better compatibility”.
    Does anyone have experience with those? I ordered one to arrive mid of december but would be nice to know whether someone already has one and can confirm better latency or perhaps out of the box 1080p transmission or something. Perhaps also the firmwares here might still be compatible (and most of all still using RTP/UDP?
    Thanks all

      1. It is announced for 11th of december. Maybe something to tinker with during holidays. I will post details when I have it.

  216. @danman

    Hello there . . . again! Well, just a little over 2 and 1/2 years, and I now may have a need to use the 6 of these (senders only) that I purchased back in 2018. (After I purchased the capture devices, I ended up using Amazon Fire Tablets, and I found a software on github call SCRCPY that allowed me to capture video of all devices simultaneously through USB directly into a MTT 7 port USB hub. It works pretty well, but the Fire tablets are SUPER low performance for gaming. There is a possibility we’re getting a bunch of laptops with an additional HDMI out port, so I’m revisited these capture devices.)

    Previously, I was talking about sending all devices over multicast by changing the multicast address on each and using a router to stop the sending of packets across the entire network (so I can stream/receive only to the one target PC for OBS).

    I now notice that your number nine (9) above says “But to set your unicast destination you need to use following URL:”

    I also noted that at OpenTechLab’s video (here https://www.youtube.com/watch?v=SAvGylthpkU&t=1273s ) that he put in a similar URL to change from multicast to unicast, but to the SPECIFIC IP address of the target PC he wanted to send to.

    What I’m hoping is that I might be able to somehow do this as OpenTechLab and what you did above, but also send that URL command to CHANGE THE PORT.

    So, for instance, the target PC on the local network is 192.168.1.200 (this is the PC running OBS where I want each device capture to be a different “scene” in OBS).

    Could I send that URL command like your step 9 and OpenTechLab’s referenced video timestamp to change the UNICAST IP to 192.168.1.200 on all capture devices, keep the port of on of them at 5004, and then change the port of the other 5 capture devices to 5005, 5006, 5007, 5008, and 5009?

    This seems to be the easiest and cleanest way to accomplish the goal, I think.

    Thoughts?

  217. And now here’s a conundrum.

    Mine came with the following Firmware:

    Version :4.0.0.0.20161116

    Encoder Version :7.1.2.0.11.20161116

    I followed the instructions above to get the IPTV web server by using the default web server to change Firmware.

    I used the 20160427 versions that are in the shared Google Drive in IPTV_command_library_and_tool_20160303/TX as instructed above.

    First, I did the .PKG upgrade, and then the web server stopped working. I won’t get an IP address at all (I’m using an IP scanner, and the IP address of 192.168.1.238 no longer shows up); however, the device is connecting to the network.

    I know this because I see the green light activity on my switch (turns green and flashes when good connection) and I opened VLC and played a Network URL of rtp://@239.255.42.42:5004

    I get the Red Exclamation Point with the Text “Please check the TX input signal” so I know it’s sending the signal.

    But why did the web server fail? Why can’t I get the webserver back up? I didn’t change the ENCODING firmware yet, because I can’t get the webserver to come back up.

    Did I semi-brick this thing by installing that Firmware in your folder?

  218. Well, I answered one out of two of my own questions.

    I didn’t brick the device. After the FW upgrade to 20160427 from your folder (step 9 above to get the IPTV web server interface with all the options) the IP address changed to 169.254.53.20. I was able to determine this using Wireshark as recommended here https://gist.github.com/Juul/8adc297cf49675d858976f5d10fffc6e

    I plugged directly to my PC and gave my PC a static address of 169.254.53.2. I was then able to pull up the device’s web server in a browser, assign a default IP address (192.168.1.20) on my regular network, put my PC back to now a static IP address of 192.168.1.252 and set the LENKENG device to http://192.168.1.20/dev/info.cgi?action=streaminfo&udp=n&rtp=y&multicast=n&unicast=y&mcastaddr=192.168.1.252&port=5004

    I still have to put udp://@:5004 in my VLC (where I thought it would be rtp://@:5400 per the above link programming the device to turn UDP off and RTP on) but it works.

    Everything is as should be, so it seems.

    As for my question 2 of 2, I tried using the link to program the device and change the port number. That does not appear to work. Any ideas?

  219. BOOM! Got it figured out.

    Used this guide to add more IPs that are used ONLY for receiving streams from multiple TX Senders (these IPs will not be used by any other program for sending/receiving):

    http://woshub.com/assign-multiple-ip-addresses-single-nic-windows/

    I added 6 additional IPs, and followed the guides I already referenced above to “multicast” to a single destination IP (6 different destination IPs for each of 6 different TX Senders).

    SWEET! I have a master control broadcast system that can create scenes and switch scenes all using 6 different Full HD and audio captures from 6 different HDMI sources.

    Since at the time I believe I only purchased the Sender parts for about $33 a piece, that’s 6 Full HD capture cards for $198 shipped – BOOM BABY!

  220. I noticed one of my previous replies (with the key to getting this thing “unbricked”) was deleted?

    Here it is again:

    Well, I answered one out of two of my own questions. I didn’t brick the device.

    After the FW upgrade to 20160427 from your folder (step 9 above to get the IPTV web server interface with all the options) the IP address changed to 169.254.53.20. I was able to determine this using Wireshark as recommended here

    https://gist.github.com/Juul/8adc297cf49675d858976f5d10fffc6e

    I plugged directly to my PC and gave my PC a static address of 169.254.53.2. I was then able to pull up the device’s web server in a browser, assign a default IP address (192.168.1.20) on my regular network, put my PC back to now a static IP address of 192.168.1.252 and set the LENKENG device to

    “http://192.168.1.20/dev/info.cgi?action=streaminfo&udp=n&rtp=y&multicast=n&unicast=y&mcastaddr=192.168.1.252&port=5004”

    I still have to put udp://@:5004 in my VLC (where I thought it would be rtp://@:5400 per the above link programming the device to turn UDP off and RTP on) but it works.

    Everything is as should be, so it seems.

    As for my question 2 of 2, I tried using the link to program the device and change the port number. That does not appear to work. Any ideas?

  221. Hi all!
    I got a 373a v4 receiver:
    The web page server does not show anymore neither the encoder version nor the encoder upgrade button. It seems only fw is upgradable.
    I also tried to mess around with url commands to set ip, multicast and such…unfortunately I screw up my device. Now if I connect it to the Ethernet adapter on my mac, the adapter interface gets disconnected and reconnected continuously. From wire shark I see join multicast group and leave multicast group requests under IGMPv2. Basically I cannot connect to the device anymore…any idea on how to reset it/fix this?
    Hereby pics of the v4 pcb and a small video of the issue I am experiencing from the sender side (seems that lan totally restarts)

    https://imgur.com/gallery/By2Pu6p

      1. Unfortunately I managed to brick it I think…tried to flash v3 fw as last result, but it was not a clever idea.
        If someone can provide a dump of the original fw I can try to flash it again.

  222. Hello to everyone.
    I am a great fun of this blog 🙂 thank’s to @DANMAN
    As for me I use 8 senders in our video streaming projects.
    But suddenly I notice that v3 senders are not available any more on aliexpress.
    Only v4 version. If any one test them already?
    Best regards Denis Eltsov

  223. Very interested in the possibility of using a V4 Lengkeng, anyone any success? Someone on Aliexpress mentions it works using the V4 — but this could be old review.

  224. I just received my V4.0 sender (I didn’t order a receiver as I just wanted to use the stream in VLC) but unfortunately it doesn’t seem quite so easy to open the stream (at least for me).
    With Wireshark I found out that the device is sending UDP packets from IP 192.168.1.210 to UDP 239.255.42.42 port 7777. But this doesn’t seem to be mpeg/ts as neither rtp, nor udp access works in VLC.
    When resetting the device it sends
    1765 7.014678 192.168.1.210 224.0.0.1 IGMPv2 60 Membership Report group 224.0.0.1
    and also regularly
    512 2.330572 192.168.1.210 239.255.42.42 UDP 62 49155 → 6000 Len=20
    The packet lengths seem to vary with every reset but then always the same packets get send every some miliseconds:
    First try, three packets get repeated:
    275 0.951584 192.168.1.210 239.255.42.42 UDP 186 49154 → 7777 Len=144
    276 0.957621 192.168.1.210 239.255.42.42 UDP 191 49154 → 7777 Len=149
    277 0.958640 192.168.1.210 239.255.42.42 UDP 630 49154 → 7777 Len=588
    Second try, two packets get repeated:
    2359 14.905788 192.168.1.210 239.255.42.42 UDP 100 49154 → 7777 Len=58
    2360 14.911719 192.168.1.210 239.255.42.42 UDP 111 49154 → 7777 Len=69
    Third try, two packets get repeated:
    1709 4.537315 192.168.1.210 239.255.42.42 UDP 194 49154 → 7777 Len=152
    1710 4.547921 192.168.1.210 239.255.42.42 UDP 186 49154 → 7777 Len=144
    The data bytes in the packets stay the same.
    All those tries where done while the picture was not changing on the display (Extender is connected to a PC as second monitor).

    If the picture changes (and sometimes also when the picture is not changing but not so frequently), wireshark reports more packages, e.g.
    17412 12.566698 192.168.1.210 239.255.42.42 IPv4 1514 Fragmented IP protocol (proto=UDP 17, off=0, ID=08d5) [Reassembled in #17432]
    The old V3 whowed also fragemented packages but recognized them as video, e.g.
    100 0.060924 192.168.178.43 239.255.42.42 MPEG TS 1358 video-stream [MP2T fragment of a reassembled packet]
    101 0.061646 192.168.178.43 239.255.42.42 MPEG TS 1358 [MP2T fragment of a reassembled packet]

    One of the V4 packages detailed info:
    Frame 17412: 1514 bytes on wire (12112 bits), 1514 bytes captured (12112 bits) on interface \Device\NPF_{F1787638-1B65-4B84-9AD1-ED43E4C104E2}, id 0
    Interface id: 0 (\Device\NPF_{F1787638-1B65-4B84-9AD1-ED43E4C104E2})
    Encapsulation type: Ethernet (1)
    Arrival Time: Nov 28, 2020 14:40:06.877168000 Mitteleuropäische Zeit
    [Time shift for this packet: 0.000000000 seconds]
    Epoch Time: 1606570806.877168000 seconds
    [Time delta from previous captured frame: 0.011806000 seconds]
    [Time delta from previous displayed frame: 0.011806000 seconds]
    [Time since reference or first frame: 12.566698000 seconds]
    Frame Number: 17412
    Frame Length: 1514 bytes (12112 bits)
    Capture Length: 1514 bytes (12112 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: eth:ethertype:ip:data]
    [Coloring Rule Name: Broadcast]
    [Coloring Rule String: eth[0] & 1]
    Ethernet II, Src: 00:ac:ef:be:36:85 (00:ac:ef:be:36:85), Dst: IPv4mcast_7f:2a:2a (01:00:5e:7f:2a:2a)
    Internet Protocol Version 4, Src: 192.168.1.210, Dst: 239.255.42.42
    Data (1480 bytes)

    The V3 extender I borrowed from a friend was retrieving an IP address from my router and was sending from that IP. The V3 has following versions:
    Version :4.0.0.0.20161116
    Encoder Version :7.1.2.0.11.20161116

    The V4 is not showing up in my router and with its default IP 192.168.1.210 I am not able to ping or open http-site.

    @itsbasix: you seem to have been able to open the website for FW update, how did you access it?

    I am thankful for any ideas.

  225. Hi all, I don’t know whether my previous comment is still in approval but in short: I have my V4 TX device, it is showing firmware version 5.3.2.10.20200928
    It still sends UDP packages but to different ports with different package length and format than V3 and I am not able to open the stream with VLC.
    I can give more details and if necessary also open it but soldering to SMD is not something I am already gifted with. So if you have any other suggestions I am very open to trying that first.
    I could provide package dumps (e.g. from the webserver I was at least able to access the info.js) or others.
    Given the brick of itsbasix I will maybe not try any info.cgi commands for now though.
    @danman: any other place (e.g. https://freenode.logbot.info/lkv373a) to get more peope involved or to share more findings? Otherwise I would maybe use my github to also be able to provide images/dumps and share the progress here?

    1. Hi Boris, thanks for your effort. I’d like to see the dump of the device. I can do that for you if you are willing to send to Czech Republic, as a bonus I can socket the flash for you (so you will be able to plug it in to device or programmer. Do you have some photos of internals?

      1. I also got device. (I try to add comments to Boris post 21.11
        Dumps from device are available: https://yadi.sk/d/5H8Oukfn61bpyg?w=1
        v4.pcapng – original dump
        v4_2.pcapng – pump after I send http://192.168.1.210/dev/info.cgi?action=streaminfo&udp=y&rtp=n&multicast=n&unicast=y&mcastaddr=192.168.1.100&port=5004
        !!! After I send http://192.168.1.210/dev/info.cgi?action=network&ipaddr0=192&ipaddr1=168&ipaddr2=1&ipaddr3=211&netmask0=255&netmask1=255&netmask2=255&netmask3=0&gw0=192&gw1=168&gw2=1&gw3=1
        Device change IP but now it’s reboot every one or two seconds.

        In the same folder you can find photo of board up and down.

        If you interested in this device fill free to tell me address and I order it from Ali to you.

        1. Interesting… by default it looks like encrypted stream, when you request unicast, it sends normal MPEG-TS stream. Can you play it in VLC?

          1. try
            ffprobe ffprobe -analyzeduration 100000000 -probesize 100000000 -i udp://@239.255.42.42:5004

            but no luck if

            [mpegts @ 000001e926270640] Unable to seek back to the start
            Last message repeated 1 times
            [mpegts @ 000001e926270640] Could not find codec parameters for stream 0 (Video: h264 ([27][0][0][0] / 0x001B), none): unspecified size
            Consider increasing the value for the ‘analyzeduration’ and ‘probesize’ options
            Input #0, mpegts, from ‘udp://@239.255.42.42:5004’:
            Duration: N/A, start: 17000.944000, bitrate: 192 kb/s
            Program 256
            Metadata:
            service_name : AIR_CH_521_6M
            service_provider: ITE
            Stream #0:0[0x7d1]: Video: h264 ([27][0][0][0] / 0x001B), none, 90k tbr, 90k tbn, 180k tbc
            Stream #0:1[0x7d2]: Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, fltp, 192 kb/s

            ffplay -i udp://@239.255.42.42:5004 – play only sound

          2. The structure of the firmware looks +- the same. The biggest difference between v3 and v4 I see is a huge hole here:
            00322000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |…………….|
            *
            00e92000 eb 3c 90 4d 53 44 4f 53 35 2e 30 00 02 01 08 00 |.<.MSDOS5.0.....|

            1. Wow, I missed some progress the last week.
              @danman: As per your request I also opened my V4 and it looks the same as the one itsbasix posted https://imgur.com/gallery/By2Pu6p
              Do you need any more pictures?
              Also I see that Denis already provided a dump and even offered to order a device for you.
              Is there something else I can do?
              I meanwhile tried to get a V3 from another shop (joom.com) but they sent me a V2 device (although it explicitly says V3). But at least they gave me a full refund and I dont need to return the device…

              1. Only a short update. I also have a V4 receiver now and it sends membership report group messages all 5 seconds (independent of whether the sender is online or not)

                47632 164.050104 192.168.1.220 224.0.0.1 IGMPv2 60 Membership Report group 224.0.0.1
                47658 164.250098 192.168.1.220 239.255.42.42 IGMPv2 60 Membership Report group 239.255.42.42

                The only other messages I saw from the receiver were:
                319 15.944891 00:c3:92:aa:25:7d Broadcast ARP 60 ARP Announcement for 192.168.1.220

                47615 163.926446 192.168.1.220 239.255.42.42 IGMPv2 60 Membership Report group 239.255.42.42
                47616 163.927379 192.168.1.220 0.0.0.0 TCP 60 49153 → 7000 [SYN] Seq=0 Win=35040 Len=0 MSS=1460
                47632 164.050104 192.168.1.220 224.0.0.1 IGMPv2 60 Membership Report group 224.0.0.1
                47658 164.250098 192.168.1.220 239.255.42.42 IGMPv2 60 Membership Report group 239.255.42.42
                47751 166.802022 192.168.1.220 0.0.0.0 TCP 60 [TCP Retransmission] 49153 → 7000 [SYN] Seq=0 Win=35040 Len=0 MSS=1460

                I checked against the V3 receiver and that one gets itself an IP from my router (192.168.178.44 instead of the 192.178.1.220 of the V4 RX) but sends those IGMPv2 messages, too

                The UDP transfer seems a bit low (~1MBit against the 12MBit from the V3) for the video, isnt it? Could there be direct traffic from TX to RX so a “man in the middle” analysis would make sense?

                1. I have to correct myself, the transfer rate with the V4 is only so low when no changes are on the display. if there is running video, it also goes up to around ~12MBit

        2. Indeed that is the same behavior I got before bricking it completely!!! Any tips on how to connect a programmer to the Board and flash the dump?

            1. Thanks, I will give it a go. Which one is the chip to reflash? U3 or U10? also, it is sufficient to open the Arduino SPI Programmer and load the img file you provided with the last button of the GUI?
              Thanks

              1. I take this firmware from U3 Winbond.
                After you load sketch to adruino and wire chip to arduino.
                Run GUI. Choose COM port and size of flash (16 777 216 for this one)
                Press small button “Запуск”
                Program will read part of flash.

                To write firmware to flash put cursor to the beginning of file and press button:
                “Вставить файл в текущую позицию”
                on my translation picture https://yadi.sk/i/dcaM0vsU271-Lg it’s : “insert file to position (start writing)”
                After you choose file program will start writing. It will take some time. Green indicator of percent work fine.

    1. Looks like the forum ate my brackets. That last message should be:
      If you go to http://[ip address]/lksetting.html it’s that same page but with everything filled in.

  226. Found telnet on default 23 port.
    user: admin password:123456
    list – list of commands
    Looks like device can stream in 3 modes:
    So call lo delay to port 7777 something I can’t identify
    UDP to port 5004
    RTP to port 5004
    udp and rtp both looks like only sound no video
    wireshark dumps are on https://yadi.sk/d/5H8Oukfn61bpyg?w=1
    v4_lowdelay_777.pcapng, v4_rtp.pcapng, v4_udp.pcapng

  227. Looking around the pct-max website and noticed there are some LKV373 v3 firmware and rom files:

    http://www.pct-max.com/act.php?act=2&index_id=17

    Archive: MCU_Firmwares_20161014

    Contains RX Files:
    IPTV_MCU_RX_PKG_v0_2_4_0_20161011.PKG
    IPTV_MCU_RX_ROM_v0_2_4_0_20161011.ROM

    Contains TX Files:
    Encoder_20160812_1047.bin
    Encoder_20160812_1047.rom
    IPTV_MCU_TX_PKG_v1_2_2_0_20160913.PKG
    IPTV_MCU_TX_ROM_v1_2_2_0_20160913.ROM

    I haven’t had time to test any of these, but wanted to share them here as well in case Daniel wanted to add them to his firmware archive.

    1. I just tried the later one an it works very similar to IPTV_command_library_and_tool_20160303 but it additionally has Low latency option. It shows about 160ms delay during my quick test.

      1. Thank you for posting the firmware to the google drive archive – it is great for the community to have all the versions in one place.

        I just tested TX Version 1.2.2.0.20160913 with Encoder Version 7.1.2.0.11.20160812 – here are my observations:

        2 new web interface options:

        Low Delay [ ]
        Multicast Mode: [ ] RTP

        The Low Delay option forces output to 720P at 60 fps – I do not see any other improvements.

        Also tested RX Version :0.2.4.0.20161011 and there are no new web interface options or other changes I could find.

        Still poking around, but it seems like this could now be the preferred firmware for the LKV373A v3. Going to upgrade all my transmitters and receivers to these versions.

  228. Found newer LKV373 v3 iptv (web interface) firmware:

    TX Version : 4.0.0.0.20170103 (note: default username and password are admin / admin)
    TX Encoder Version : 7.1.2.0.11.20170103
    RX Version : 0.5.0.0.20170103

    Daniel – can you please also upload to the google drive firmware repository?

    Found under the “Software” tab on: https://www.hdtvsupply.com/hdmi-over-lan-adapter.html
    Direct link: https://sep.yimg.com/ty/cdn/yhst-25967117716530/iptv-fw-20170104-standard.rar

    Running now, only easily noticeable difference is on the TX page there is now the ability to upload a “File to Upgrade EDID:”

    It also seems that scrolling text is smoother at 1080p from the encoder.

    Did not test if the latest encoder firmware still spits out zero length MPEGTS packets.

  229. I have been using a lkv373a to stream an HDMI signal across my home network. It is this one:
    Purched from here: https://www.amazon.co.uk/gp/product/B07PPH1HLT/ref=ppx_yo_dt_b_asin_title_o08_s00?ie=UTF8&psc=1

    And the Tx version is:
    Version : 4.0.0.0.20161116
    Encoder Version : 7.1.2.0.11.20161116

    and Rx version:
    Version : 0.5.0.0.20191125

    Everything is fine, broadly speaking, but the problem I have is that the encoding of some shapes, in particular any red circles, is poor, with lines showing. From my limited understanding of encoding it feels like the encoding algorithm in the transmitter. I’ve emailed the seller, but they say there is no firmware upgrade available (above 7.1.2.0.11.20161116). Is this correct? Has anyone else encountered this problem?

    FYI they told me there’s a new version being released in a few weeks. They referred to it as version 4 of the hardware.

    1. Julius –

      I sent an e-mail to support@imypin.com (the seller from your amazon link above) asking for them to send me a copy of the latest firmware so I could have Daniel add it to the google drive firmware archive he maintains. The seller requested my amazon order number, which of course I don’t have. Would you do us a favor? Since you have an order could you e-mail support to obtain the latest firmware they have so we may add it to the google drive firmware archive? We have been successful collecting different firmware versions so that the community can find the right version for their use case. Thanks in advance!

  230. Hi@all and hi Denis Eltsov,

    did you Denis or someone else VLC working with v4-Device. Unfortunately the Chinese shop send me a v4-device and now I can not receiver an picture. It has the IP 192.168.1.210 and sends data to 239.255.42.42 either on port 5004 or 7777. But still no luck.

  231. Hi all, I have a pair of the new V4 RX/TX devices, firmware version 5.3.2.10.20200928, long story I managed to brick my TX because my backup of the flash was corrupt. Turns out you have to hold the reset button down for the entire time you read or write to the flash else the processor gets back powered and interferes with the flash.

    I tried to restore the firmware with the copy that Denis Eltsov posted above and now the TX boots long enough to respond to 3 or 4 pings then reboots again. Has anyone else managed to dump the flash of a V4 TX and may I please have a copy? Or point me to a download of a firmware for it, I would very much appreciate it.

    I don’t know why my TX is stuck in a reboot loop, I had a look at Denis’ firmware file and it has the two expected SMEDIA02 firmware chunks at offset 000000 and 080000 as well as the FAT filesystem at offset 2D0000 and I can extract the files from the FAT filesystem and they look OK as far as I can tell. I also verified that my flash was written correctly by dumping it again and comparing it against Denis’ copy and it’s a perfect match. I don’t know why the TX crashes and reboots unless Denis’ firmware was a bad dump.

    1. Hi Alex. My dump was taken from screwed device. But some how (I really can’t remember how, may be try some times) I was able to:
      Load : http://192.168.1.210/dev/info/LKSETT~1.HTM
      And set: Setting ->Low Latency Mode (Multicast Only without RTP)
      Transfer: Multicast will set automatic
      Device will return, to default udp to 7777 mode.

  232. Hello!
    Thank you for the above, many useful things are described! However, I got stuck and want to ask for help.
    In my church we use v4.0 extenders for the cameras. These are connected to an Atem mini device. The problem is that the Atem mini is unable to process the signal. During the attempts, I see a completely black or green or blue image. It works perfectly when tested with v3.0. I suspect HDCP because it is not supported by the Atem mini.
    Reading from the previous comment, I can see that the IPTV Control Center program can be used to configure HDCP on v3.0, but unfortunately the program cannot find the v4.0. Is there a newer version of the program?
    I am a beginner in this topic. Can you help solve the problem?
    Thanks in advance!

    1. V4 is completly different from V3, it uses a different, proprietary and not (yet-?)reversed protocol, so it won’t work with your “Atem”-thing (whatever that is).

      This beeing said, i am interested in Wireshark-dumps from V4 for analysis. I you have something please post on #lkv373a on freenode.

  233. Hello,

    I want to extend an HDMI signal over a VPN. Will the LKV373A device do the job?

    Camera SDI (remote site network) -> Black Magic ATEM-> LK Sender -> VPN (internet) -> LK Receiver (local network) -> convertor ->Wirecast (local network)

    1. It can be done but you have to be able to make a nontrivial multiticast over vpn configuration.

      1. Hi,

        Thank you very much for your quick reply. This is good news. Can I ask 2 questions?
        1. A further explanation ‘nontrivial’ multicast would be appreciated
        2. The product line of LK has grown to include some new model, can I just go ahead with the 373a or go with a newer model?, suggestions?

          1. 1. It depends on the used VPN software, some are easier, some are impossible.
            2. No suggestions.

    2. Dale – quick thought, try using unicast on the LKV373A – it would make it easier over VPN, then you wouldn’t have to deal with multicast. unicast config info can be found earlier in the post. my 2 cents, take them for what their worth. -wil

    3. Hi, yes I have mine working over a VPN. I set it up using a VXLAN to join the two sites and then bridged with a VLAN on each site (Mikrotik router). Works pretty well and required no configuration on the LKV373A itself.

  234. Thanks Dan for sharing all this info. I just received two LKV383 Tx units, and was successful in rolling back the Tx firmware from 4.0.0.0.20161116 to 4.0.0.0.20160427 using the IPTV control center tool. This was needed to be done as the config web page seems to have been removed at some point between 0427 and 1116.

    I do not yet know if this rollback has broken the IR functionality of the unit, but thats not a big deal to me if so.

    I have not rolled back the decoder firmware; still on 7.1.2.0.11.20161116 and I believe everything is working well with that combination.

    Question: What is the recommended max firmware versions for both? In watching your latest video you published in 2019 you were set up with this exact combination, but not sure if that is still your recommendation (ie. are the MCU firmwares any better?)

    1. Thanks to @wil for the link to the 20170103 versions (re: his post on Dec 30 2020). I upgraded and all is still well on my LKV383 units.

      I may have located an even newer firmwares, file dates of August 28 2017. I am not confident enough to try it myself since I don’t have the tools needed to unbrick. The files themselves don’t actually have the version number so I’m making this assumption that they may be newer based off of the file date.

      https://www.purelink.de/en/signal-extenders/ip/1139/2k-hdmi-ip-extender-transmitter?c=2214

      Direct DL: http://purelink.de/marketing/daten/software/PureTools/PT-IPAV-E2_FW_v0_5-v4_.zip

      1. Hi,
        Could you please post the zip somewhere (dropbox google drive or some other place) cause it looks like it’s not downladable anymore (at least when I click it notjhing happens.

        Thanks.
        Pino.

    2. After trying them all, I landed on:

      Version : 1.2.2.0.20160913
      Encoder Version : 7.1.2.0.11.20160812

      With this version you get 2 new options:

      Latency Setup: Low Latency checkbox
      Multicast Mode: RTP checkbox

      1. That is great. 1.2.2.0.20160913 seems to be working here with encoder v20170103 as well. 🙂 Little need to have to go into the control center tool now!

  235. I piped the bins from purelink thru strings cmd and by comparing to other firmwares was able to confirm they they are indeed newer builds:
    Version :4.0.0.0.20170828
    Encoder Version :7.1.2.0.11.20170828
    Unfortunately the config page once again removes the low latency and rtp checkboxes. I attempted to alter the bins to add the html back in to this one, but that didn’t work so the files must be signed.

    I’m going to call this good now, going to be running:
    Version :1.2.2.0.20160913 from MCU
    Encoder Version :7.1.2.0.11.20170828 from Purelink

    1. Those firmwares are about 3x the size they should be. My guess is that “2G” and “3G” may be equiv to the v4 and v5 Lenkeng models. I cannot locate anything that would be a firmware for the “1G” model.

  236. Hi Everybody,

    I need some help. My transmitter with V1.0 burned out and I replaced with a new one with V2.2, but unforchantly the resolution/signal is not supported from all of the receiver because they are version 1.0 too.
    I have the follow questions.
    Do you have some ideas how to reconfigure the Transmitter or the Receivers, to be compatible or I need to replace all of them whit the some version.

    Where can I find the specification list for the different versions? Because I searched, but I did not find any helpful information for the differents between v1,2,3,4….and the compatibility between them

    TX HW Ver 2.2
    SOFT VER – 4.0.0.0.20160218
    ENCODER – 7.1.2.0.9.20151028

    RX HW VER 1.0
    SOFT VER – 0.5.0.0.20170103

    Thx
    Regards
    JP

    1. Everything I have read indicates that there is absolutely no compatibility between hardware versions.

  237. Dear Community,

    I just got LKV383 v4.0 (soft ver. 1.3f) and I cannot find the devices whit the IPTV Control Center tool 1, 2, 3 or 4..
    The other issue is whit the IP – I found the IP address of the receiver (192.168.1.x range), but whit the transmitter, there was not success

    Any suggestion ?
    Thank you
    YP

  238. Just found the transmitter 🙂

    Transmitter was – 192.168.1.210
    And the receivers are from 220 ->

    The only case now is whit the IPTV Control Center Tool
    TX Version: 5.3.2.10.20200928
    RX Version: 5.3.2.10.20200827

  239. I have a receiver version 1.3f that cannot reach the transmitter 1.3c….could please someone inform me hog to upgrade the transmitter from 1.3c to 1.3f version???

    Thanks in advantage

  240. Sadly nothing of these seams to work for lkv373a v4.0.
    Changing stuff from telnet or http://192.168.1.210/dev/info/LKSETT~1.HTM doesn’t make any difference.
    VLC just decode some choppy audio and ffmpeg shows:
    [mp2 @ 000002a73fb99680] Header missing
    Error while decoding stream #0:1: Invalid data found when processing input
    [mpegts @ 000002a73fb6e5c0] PES packet size mismatch
    [mpegts @ 000002a73fb6e5c0] Packet corrupt (stream = 1, dts = 3927240).
    [mpegts @ 000002a73fb6e5c0] PES packet size mismatch
    [mpegts @ 000002a73fb6e5c0] Packet corrupt (stream = 1, dts = 3942360).

    Is it possible to downgrade firmware to v3 for this hardware?
    Thanks

  241. Hi,

    Firstly thanks for all your efforts in posting this blog!

    I have the V4.0 hardware, with apparently firmware version
    5.3.2.10.20200928.

    I understand this is incompatible with V3, but having looked at https://github.com/danielkucera/lkv373a-v4 and https://github.com/kittennbfive/lkv373-tools it’s unclear what to do with these. It would be really useful to have some pointers beyond just these links.

    Is there a discussion forum or IRC hangout since the demise of freenode where these units are discussed?

    I’ll post below my discoveries with this device so far:

    Firstly it makes no DHCP request out of the box. So I configured a spare NIC on my workstation to 192.168.1.x and connected the LKV373A directly via ethernet crossover cable.

    ———————————————————————-
    Output from nmap:

    # nmap -sU -sT -p- 192.168.1.210
    Starting Nmap 7.80 ( https://nmap.org ) at 2021-09-13 09:47 BST
    Nmap scan report for 192.168.1.210
    Host is up (0.0042s latency).
    Not shown: 131061 closed ports
    PORT STATE SERVICE
    23/tcp open telnet
    80/tcp open http
    7000/tcp open afs3-fileserver
    7004/tcp open afs3-kaserver
    8888/tcp open sun-answerbook
    7001/udp open|filtered afs3-callback
    49153/udp open|filtered unknown
    49154/udp open|filtered unknown
    49155/udp open|filtered unknown
    MAC Address: 00:2F:7D:xx:xx:xx (Unknown)

    Nmap done: 1 IP address (1 host up) scanned in 12.67 seconds

    ———————————————————————-
    Telnet is on port 23:

    $ telnet 192.168.1.210
    Trying 192.168.1.210…
    Connected to 192.168.1.210.
    Escape character is ‘^]’.
    ================================
    =========IPTV TX Server=========
    ================================
    user name>admin
    User name is OK.
    password>*******
    Password is OK.
    input>list
    set_group_id get_group_id set_dhcp get_dhcp
    set_uart_baudrate get_uart_baudrate set_static_ip get_static_ip
    set_mac_address get_mac_address get_lan_status get_video_lock
    get_ip_config get_session_key set_session_key set_device_name
    get_device_name set_video_bitrate get_video_bitrate set_downscale_mode
    get_downscale_mode set_video_out_mode get_video_out_mode set_streaming_mode
    get_streaming_mode set_low_delay_mode get_low_delay_mode set_multicast_mode
    get_multicast_mode get_fw_version get_company_id factory_reset
    reboot list save exit
    input>get_fw_version
    Tx Firmware : 5.3.2.10.20200928
    input>exit
    Good Bye!!!
    Connection closed by foreign host.

    ———————————————————————-
    The webserver serves empty headers and needs some foolery to show the page as text:

    $ lynx –dump http://192.168.1.210 | html2text | grep -v ^\$

    ****** TX Server ******
    Version: 5.3.2.10.20200928
    ===============================================================================
    File to Upgrade Firmware(*.PKG): [File] [Upgrade]
    ===============================================================================

    ———————————————————————-
    tcpdump with no HDMI input:

    # tcpdump -i enp2s0
    tcpdump: verbose output suppressed, use -v[v]… for full protocol decode
    listening on enp2s0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
    10:34:40.204182 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 196
    10:34:40.703153 IP 192.168.1.210.49155 > 239.255.42.42.6000: UDP, length 20
    10:34:40.708152 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 196
    10:34:41.212171 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 196
    10:34:41.595152 ARP, Request who-has 192.168.1.210 tell 192.168.1.210, length 46
    10:34:41.715163 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 196
    10:34:41.795150 IP 192.168.1.210.49155 > 239.255.42.42.6000: UDP, length 20
    10:34:42.220178 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 196
    10:34:42.726168 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 196
    ^C
    9 packets captured
    10 packets received by filter
    0 packets dropped by kernel

    ———————————————————————-
    tcpdump with HDMI input present:

    # tcpdump -i enp2s0
    tcpdump: verbose output suppressed, use -v[v]… for full protocol decode
    listening on enp2s0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
    10:35:29.717555 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 28
    10:35:29.729033 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 30
    .
    .
    .
    10:35:29.812049 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 30
    10:35:29.817558 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 28
    10:35:29.821006 IP 192.168.1.210.49155 > 239.255.42.42.6000: UDP, length 20
    10:35:29.829019 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 30
    10:35:29.834626 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 28
    .
    .
    .
    10:35:30.112047 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 30
    10:35:30.117556 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 28
    10:35:30.133642 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 61440
    10:35:30.133644 IP 192.168.1.210 > 239.255.42.42: udp
    10:35:30.133748 IP 192.168.1.210 > 239.255.42.42: udp
    .
    .
    .
    10:35:30.135244 IP 192.168.1.210 > 239.255.42.42: udp
    10:35:30.135246 IP 192.168.1.210 > 239.255.42.42: udp
    10:35:30.137464 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 35758
    10:35:30.137544 IP 192.168.1.210 > 239.255.42.42: udp
    10:35:30.137546 IP 192.168.1.210 > 239.255.42.42: udp
    .
    .
    .
    10:35:30.138589 IP 192.168.1.210 > 239.255.42.42: udp
    10:35:30.138591 IP 192.168.1.210 > 239.255.42.42: udp
    10:35:30.144601 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 54339
    10:35:30.144652 IP 192.168.1.210 > 239.255.42.42: udp
    10:35:30.144702 IP 192.168.1.210 > 239.255.42.42: udp
    .
    .
    .
    10:35:30.146285 IP 192.168.1.210 > 239.255.42.42: udp
    10:35:30.146341 IP 192.168.1.210 > 239.255.42.42: udp
    10:35:30.147075 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 405
    10:35:30.152022 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 278
    10:35:30.162004 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 30
    10:35:30.167681 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 28
    10:35:30.179050 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 30
    10:35:30.184615 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 28
    10:35:30.192016 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 196
    10:35:30.195017 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 30
    10:35:30.202004 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 28
    .
    .
    .
    10:35:30.513032 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 30
    10:35:30.517514 IP 192.168.1.210.49154 > 239.255.42.42.7777: UDP, length 28
    ^C
    201 packets captured
    204 packets received by filter
    0 packets dropped by kernel

  242. Hello danman,

    Do you happen to have any information on how the tools you provided links for can be used for `v4`? The git pages offer very little and unclear information, and sadly, I cannot find `v3` available to buy in Europe 🙁

    Thank you in advance

      1. The dude on Alixexpress doesn’t reply. I’d like to buy a v3 unit.

        The v4 seems to have washed our colors when paired with VGA2HDMI, and it’s not the adapter.
        I am working on a Linux receiver tool, but there are many unsolved problem:
        – audio is not correctly synchronized
        – if the source is >60Hz, it crashes
        – there are some malformed packages causing corrupted video stream
        – the hard-coded CRC sometimes doesn’t match correctly

        1. Hi DiTBho,
          is you linux receiver tool available on github or somewhere else?
          I also did some tests some time ago and ran into similar problems. Would be nice to see your progress.
          Regards

  243. We’ve been using a V3 transmitter for a few years with great success. Unfortunately it was accidentally connected to a 12v power supply. The ethernet port shows a dim solid green light, the orange tx light never flashes, and the device no longer shows up on the network.

    Wondering if anyone has any ideas on which components may have been damaged, and if it would be possible to fix? Would be a shame to see this wonderful device go to waste.

  244. Hi guys! So I ordered to see if this:
    https://www.amazon.com/dp/B08VW6N1Z3?ref=ppx_yo2ov_dt_b_product_details&th=1
    Would work the same or similar to the lenkeng
    uploaded is the file for this hdmi extender i’m trying to hack. If you can look a it and make some sense of it? https://drive.google.com/drive/folders/1if-KJFEe0QecLeEQArQREMbBNpPVEhXC?usp=share_link

    Current:I am able to connect and pull a multicast UDP video from udp://@224.0.200.100:12425Video is h264 1080 25 fpsAudio is mpgaPlays great in ffplayable to access webserver on device port 80- But theres nothing on the page but a purple background. After inspecting the page I found there is some JS files and a css, some images in a folder. I then saw from settings file there is a way to pass some basic commands like restart
    What want/ need to do:Figure out how to change the bitratechange from multicast udp to rtp unicast if possible or unicast udp 

    1. I just got one of these PWAY units too. I can’t seem to get video from it, how did you do it?
      I found those same files in the /cgi-bin and /js folders. I can’t seem to get the menu to work either. I also soldered headers onto the serial. I got the unit into a linux recovery prompt. Need to recover the root password, as nothing obvious worked so far.

  245. I’ve orderd some device with displayport. As my ordered reciever turns out to be also a sender, i have to senders now :-/ . So i can only share the information from the senders:

    TX Server
    Version :4.0.0.0.20170104
    Encoder Version :7.1.2.0.11.20170104

    As mentioned its a displayport version, i’m not sure if it will brick the device if I update the firmware or the encoder, so i didn’t try.

  246. Hello everybody. I finally found a place where I enjoy all this information! I work in a company where we have 3000 Samsung screens which work in several stores in France with an RX to each TV and a TX which powers them. In short, like all of you, my supplier no longer had non-V4.0 products and I found myself in problems for after-sales service. Until then I had stock but it’s getting complicated. If anyone here is interested I have 30 RX 1.3f in stock. What I would like to know is through which IP I can access the V4.0 web interface? And also if anyone has found a trick to downgrade V4.0 to make them compatible with previous versions? Thank you for your help

    1. >And also if anyone has found a trick to downgrade V4.0 to make them compatible with previous versions?

      I am afraid this is probably impossible. I worked on this stuff a *long* time ago and don’t remember much, but i know that V4 uses a completly different protocol. You might be interested in my repo https://github.com/kittennbfive/373-v4-tools

  247. If anybody can assist, I want to send an command to the Lenkeng383Matrix HDBaseT device to change the output. This will be done from an RTI controller unit. Can anybody point me in the right direction to get these commands perhaps. I have 7 TX and 7 RX devices and all is working with the supplied remote to change the output on the screens, but I want to do it via IP

  248. Hi there, as far as I understand it, this blog is about the LKV373A V3.0 device. The device is currently not easy to get, but V4.0 devices are available and cost around 30€ on AliExpress. Has anyone some experience or made progress with those? Apparently, changes have been made at least to firmware – I could find that the multicast address was the same but the port was changed to port 7777 and also sometimes 6000 according to tcpdump. The device’s fixed IP is 192.168.0.210 and it came with firmware 5.xxxx – the web server is accessible and firmware can be uploaded/upgraded but not encoding firmware, at least not via the visible web interface of the preinstalled firmware. I wasn’t able to get any stream via rtp or udp out of it as described above. Also, when connected to my router with DHCP enabled, the device does not show up in the network, I was only able to get access to it when directly connected to a PC with linux or windows. The software scan (IPTV Control Center.exe) didn’t show any result even when at the same time the web server was accessible.

    I wonder if there is any (relatively easy) way to get a stable stream out of this version of the device which can be shared over a local network. Any comment or help on this would be appreciated! Or, if there are still options to buy V3.0 from global resellers

      1. Thanks. It looks all a bit cryptic to me, I’m afraid. I guess I’ll somehow try to get a V3.0 device, or look for an alternative. Thanks anyways for all the work you put already into this, it’s altogether a really great way to upcycle all sorts of video devices and make them available via network video stream =)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.