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:

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.
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:
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:
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:

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:
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:
- 3,3V
- GND
- 0V
- 2,7V
- 3,3V
- 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:
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:
- Install FW from usual source (folder IPTV_command_library_and_tool_20160303/TX)
- Connect device and your PC to the same network with DHCP
- Run IPTV_Control_Center.exe and hit Start Scan (your extender should be detected)
- Change to Tx Setup Page and select your device, you will see this:
- Write down the IP in right top corner.
- Hit Factory Reset to reset login settings to default
- Open Device IP in your browser and login as
user: admin
pass: 123456 - Now you should see this screen. You can set the same settings as in app here, e.g. bitrate, downscale, IP, etc.:
- 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:
- Linux: https://www.johnvansickle.com/ffmpeg/
- Win & Mac: https://ffmpeg.zeranoe.com/builds/
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.
Happy days, I just ordered one, perfect for what we want.
Thanks a lot for pointing out useful -and hackable!- hardware
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?
Yes. For best network performance, you should use switch with IGMP snooping to stop broadcasting the stream to whole network.
What about LKV383 “HDbitT” version also sold as monoprice “bit-path”? Any plans to test it?
I believe it’s the same platform so I’m not planing to test it.
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.
Look here https://blog.danman.eu/new-version-of-lenkeng-hdmi-over-ip-extender-lkv373a/#comment-6719
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).
your input is probably HDCP encoded
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.
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.
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
>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?
+ why is there interlacing on your pictures? does it really produce interlaced picture or was it the source
no, the source was interlaced.
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?
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.
Hi again !
Would it be possible to have the reference of your eeprom reader ?
what do you mean by reference? like type?
For example, or a link to a model available online
CH341A
https://blog.danman.eu/ch341a-usb-serial-eeprom-reader-under-linux/
Thanks !
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.
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.
The two bigs chips are
u1-vct6299
u2- vct6289
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
@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.
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.
I got almost same issue, only VLC plays UDP stream, not ffmpeg nor mpv.
Did you find any solution 4 this? I have the same prob
Make a file:
lenkeng.strm
Put udp://@239.255.42.42:5004 in that file.
Open the lenkeng.strm file in Kodi 🙂
@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.
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)
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
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
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… :
I’m using the one in RAR format that you provided – dated November 15 or 30 I think?
Oh, I thought that you have dump of the original flash.
this happens in firmware
Version :4.0.0.0.20161116
Encoder Version :7.1.2.0.11.20161116
and this url
http://TX_IP/dev/info.cgi?action=videoinfo&hdmi=y&cvbs=n&videoin_res=1920x1080I&videoout_res=1920x1080I&videoin_frate=20&videoout_fhd=1&videoout_hd=1&videoout_brate_fhd=15000&videoout_brate_hd=12000&videoout_brate_sd=8000
is setting a good 720p with correct aspect ratio even though the resolution is 1080p and survive after reboot
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.
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.
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
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.
Hi Tobias,
try this zip, it contains one more firmware version: https://blog.danman.eu/wp-content/uploads/LKV373A_V3.0_fw.zip
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?
LKV372A doesn’t have ethernet port. It only support cat6 cables as transport medium because they have good electrical characteristics.
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…)
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.
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.
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?
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.
BTW, there doesn’t seem to be any difference between firmware versions as far as I noted.
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.
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 ?
.. 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 ?
Ayy yeah http://imgur.com/a/sIUEv
Let us know if it works over ethernet. I guess that no…
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.
I can’t even get it working with itself… (both modules hooked to each other)
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
Also is the firmware up grade v3.0b? my v3 units say v3.0b
What do you mean by “say v3.0b”? Is that printed on the metal cover or somewhere else?
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!
You need a switch with IGMP snooping. That will prevent your network from being flooded.
Also,
http://***your_transmitters_IP***/dev/info.cgi?action=streaminfo&udp=y&rtp=n&multicast=y&unicast=n&mcastaddr=***your_receivers_IP***&port=5004
should make it unicast.
Have you tried it yourself? Does it persist after reboot for you?
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!
Oh, for anybody interested in stripping the HDCP, this is what i bought – https://www.amazon.co.uk/gp/product/B004F9LVXC/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1
Seems to work a treat, but i haven’t yet tested it with a BluRay movie, only a Sky HD satellite TV box, which without it, used to just display nothing in VLC.
I was, however recommended it by an article claiming its HDCP stripping abilities, so should be good.
Cheers! Ordered one and will report back my findings.
Hi Stu, can you please tell us the model of this splitter? the amazon page is not working anymore. Thanks!
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?
I have tried it, and no, it does not persist after reboot.
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.
The one closest to VCT6299 or ethernet port (U3).
seems someone who works at cloudflare is trying to rip off your research as his own
https://blog.benjojo.co.uk/post/cheap-hdmi-capture-for-linux
he does seem to link here but seems a bit weird he posted just as you posted an update?!
the guy has been known to copy other people’s work in the past and pass it off as his own 🙁
Yes, it’s sad but I don’t give a … Internet has a memory.
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.
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.
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.
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.
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.
I had not understood that I was powering the main chips !
Nice idea about the diode, I’ll try that.
Please can you re-upload the photo showing your clip.
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.
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.
Do you have the original dump? Can you please send it to me?
http://dl.free.fr/oyA9sB0MZ (will be deleted 30 days after the last download, please make it available if you can)
The dump numbered 0 is not my first attempt (but I did not write to the flash).
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.
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.
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
(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.
How the fart does a raspi capture HDMI?
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?
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.
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.
No luck at persisting changes anyone?
Would be cool if the audio stream could be changed to AAC too 🙂
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!
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?
vlc udp://@239.255.42.42:5004 work just fine with vlc 2.2.2
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.
Ah – just noticed you are using UDP rather than RTP in the URL. UDP works fine.
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.
I have the same trouble- ffmpeg have error when i try send udp to rtmp
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.
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?
You are mixing two types of notation:
-vcodec / acodec
-codec:a / codec:v
You should try which one works for your version of ffmpeg.
oh… Now I see I also did that… Either way, you should test which one works for you. Obviously, for me they both work.
Sorry I Don’t understand what I mix? I only try recompress audio to aac . Please write all string of ffmpeg…
Plese post the output of your ffmpeg.
I create on youtube test
rtmp://a.rtmp.youtube.com/live2/****
plese help stream….
Plese post the output of your ffmpeg.
ffmpeg -i udp@239.255.42.42:5004 -c:v copy -c:a aac -f fly rtmp//…….
Error ffmpeg :cold not write header for output file #0
Sorry End is
-f flv rtmp//….
it should be rtmp://….
Whiteout -f flv?
no, you are missing colon “:” after rtmp
a!!! yes i have “:” but not good….. error
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
I don’t know any way how to decrease latency.
I think I’ve managed to get a smaller latency by messing with the output settings:
http://192.168.1.238/dev/info.cgi?action=videoinfo&hdmi=y&cvbs=n&videoin_res=1280x720_60P&videoin_frate=24&videoout_fhd=0&videoout_hd=1&videoout_brate_fhd=3000&videoout_brate_hd=3000&videoout_brate_sd=4000
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?
You get a black screen when your HDMI input is HDCP encrypted.
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]
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.
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.
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
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]
put here a screenshot from wireshark
Here is a screenshot I took: https://drive.google.com/open?id=0B04hG4kxnQBsLTNXRm5zTmEyRjg
This one has more detail on the packet: https://drive.google.com/open?id=0B04hG4kxnQBsekdwRmYxcUN3NHc
is it from windows?
Yes, I’m running on Windows 10
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?
I downgraded the firmware and encoder to 20160218, and tried again, but didn’t change. Here is a PCAP I took of it: https://drive.google.com/open?id=0B04hG4kxnQBsUWhHVk1ONTdjM00
Is there a step I am missing, I’m currently just trying to play rtp://@239.255.42.42:5004 over Network Stream on VLC.
the stream works ok, look here: https://uloz.to/!rAt9NQDEmE34/lolo-ts
try to disable firewall and disconnect all other network.
working url is this: udp://@239.255.42.42:5004/
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!
try this: http://sinclairmediatech.com/using-multicast-on-windows-with-multiple-nics/
update firmware has released at Oct 20.
I’m not applying.but just for your infomation,
Why do you thibk so?
It seems New PKG and bin file was uploaded at here.
https://drive.google.com/drive/u/0/folders/0B3mWuDyxrXyKZkxwYi1JNllENXc
Man, this is my drive and I put it there…
Do you still have a copy of the 20161020 firmware?
Thanks.
I only have what is on my google drive.
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.
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!
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 🙁
I search more info about IPTV Control Center and i find this link:
http://www.pct-max.com.tw/images/images_download2/HT150&HR150-IPTV_Control_Center.zip
There are 2 doc and you can see a “full” interface of extender.
I try to contact the productor for a firmware upgrade
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/
Yes, you need to buy a SPI flash programmer and suitable clip adapter and reflash with my extracted firmware.
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?
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) 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
1) I ve managed to play udp streams through kodi and omxplayer.
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
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
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.
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?
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?
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.
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
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.
@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`
@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”
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!
Hi,
buy spi flash programmer, unsolder vcc pin on flash chip, connect programmer and flash full dump.
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.
Hello,
Pct-Max reply me with this firmware:
http://ftp.pct-max.com.tw:801/share.cgi?ssid=01i439L&fid=01i439L&path=%2F&filename=IPTV_FW_and_tool_20160427.rar&openfolder=forcedownload&ep=
I upload that on my LKV383 and now i i’ve a full web interface 🙂
Now i can set bitrate with tool 🙂
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!
Ok i solve that problem.
Connect with IPTV Control Center and reset to factory.
Now user and password are admin 123456
AMAZING! After reset I was able to set unicast destination and it PERSISTS after reboot! :))) Thank you!!! Will post update about this.
If you are able with solder near ethernet socket you have the ir remote sender/receiver
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
ftp21, that is awesome thankyou for sharing I can’t wait to try it out.
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
I have full original dump of my tx. And the device checks uploaded pkg and it won’t update unless the checksum is ok.
Hi Danman,
I’m a little confused, are you using the LKV373A or LKV383 ? Or are they the same?
Thanks
I have 373A. 383 has IR
> I have 373A. 383 has IR
Sorry to bother you (again), do you know if they use the same firmware?
Thanks
Hi, do you still have a copy of these files?
Thanks
Hi! I tried the link but it does not work anymore. By chance do you have the Firmware for LKV383 Sender and receiver?
Thanks!
Everything is here https://drive.google.com/folderview?id=0B3mWuDyxrXyKZkxwYi1JNllENXc&usp=sharing
Will I keep the IR control on my LKV383 if I flash the latest LKV373 firmware that you have on your website?
Thanks
I don’t know.
I cant see the firmware upgrade for the LKV383
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?
All these information and specs work also for the:
ESYNiC 120m HDbitT HDMI Extender
Thankyou for writing this great post
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.
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.
could you share the command to make it happen?
Please read section Update 14. dec
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?
nvm, stupid me forgot “&port=”
Did you upgrade and reset to default? Try logging in before running that command.
so does it work now?
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.
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.
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.
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?
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).
Hi Ftp21, do you upgrade fw on LKV383 or LKV383A?
Thanks a lot to you for your discovery and to Danman!
I upgrade that TX https://goo.gl/MnPskC and Esync RX and all work well
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.
Io l’ho preso su Amazon.
I try to contact ITE Corp for a public SDK 🙂
I’ll update you asap
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 🙂
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 🙂
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
Do you have dhcp server on that network where TX is?
The IP connection says “DHCP Enabled: Yes” But it still detects nothing (This is on Windows)
try to disable all other network adapter. one created by virtualbox blocked the tool from detecting my TX unit.
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 ?
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
Hi James,
the latest firmware is purely software. No need to have any hw programmer or so.
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)?
Hi,
the case might be the same but inside can be anything. Post a photo of the mainboard so I can compare it.
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
Do you have the firmware/iptv tool for the LKV373IR?
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.
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.
@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
I second this, it would be helpful to have for a simple html interface to send commands to the device.
…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!
Most wifi AP/routers don’t forward multicast traffic (by default).
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…..
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
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.
Thank you! I did not find the device through IPTV Control Center ever I was using Windows. This works perfektly.
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.
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.
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
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…
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.
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.
thanks for the reply danman, let’s hope someone gets a breakthrough on it.
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!
try
“http://your_device_ip/dev/info.cgi?action=streaminfo&rtp=on&multicast=on&mcastaddr=ip_address&port=yourport”
Tried that, no go..
Looked in the HTML and found this
<!– –>
so tried &stream_port=9710
No good either.
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.
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.
Did you ever got this working? My 373 came with firmware 20161116 that doesn’t accept the port change.
Downgrading did not change that.
In the meantime I’ve learned that this can get “fixed” with some iptables changes, like described here:
https://blog.danman.eu/new-version-of-lenkeng-hdmi-over-ip-extender-lkv373a/#comment-8708
Hello everyone, quick question about use with mac. I found there is no iptables on osx but that there is something called pf via: http://apple.stackexchange.com/questions/206887/macos-x-iptables
Is there any command that could be used to ignore the 0 packets?
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.
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.
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??
You should try different web browser.
I already tried Safari, Chrome and Firefox, but all on a Macbook. I have not a Windows mashine.
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 ?
Well I emailed to my ebay seller regarding latest firmware for LKV373A, and he sent me this one:
https://drive.google.com/drive/folders/0ByC9lqrZ4lBaQ1duMDd2aGVDeDA?usp=sharing
I will test it later today but if there is anyone who wants to try also, you are welcome.
I managed to fix the flooding problem, don’t know how, because it fixed itself, by leaving it out of power for an hour or so…
Now I am more brave to experiment again 🙂
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…
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?
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?
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
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.
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.
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.
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.
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.
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.
A typo, should be tplink WR1043ND router.
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”.
Would be good if the blog explained this as not many people are going to read through 750+ comments 😉
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
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.
I don’t think so… Did you try those steps I wrote above?
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
IGMP snooping might be a problem. Try to disable it.
And remove that eoip tunnel.
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.
Do you have ssh access? Can you show output of brctl show and ifconfig -a ?
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)
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.
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.
Can someone give exact infos on procedure how to update lkv373a with .pkg & .bin.
Load both and do update or one by one?
Thanks
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.
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.
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)
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.
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.
my one bricked too
which file upload to LKV ?
Jues
Hi, I just found out it was not on that google drive. Now it is: full-flash.bin
Thx so much Danman
Let me try
Jues
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
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.
Try flashing other full flash images. You need to flash chip U3.
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.
Hi,
1. Is the flash chip nearer to ethernet known as U3?
2. And is the flash chip nearer to HDMI known as U4?
I found 2 flash files here, just want to be sure. https://drive.google.com/drive/folders/0B3mWuDyxrXyKdzFFdGNIWkR4Ums
Thank you.
The U3 marking is on PCB. try flash from stefano.
is there a way to push multichannel audio through the 373A units?
AC3/DTS would make this unit almost perfect
If it doesn’t work “out-of-box”, I doubt it is possible…
Really pity
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.
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
I very doubt LKV supports CEC channel. But I guess IR should be possible with some protocol reverse engineering.
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?
Maye an adapter like this would work for you:
https://www.pulse-eight.com/p/104/usb-hdmi-cec-adapter
Or if you want to build it on your own 🙂
http://www.st.com/content/ccc/resource/technical/document/application_note/4d/6b/26/ce/14/34/4b/52/DM00050136.pdf/files/DM00050136.pdf/jcr:content/translations/en.DM00050136.pdf
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.
but basically it should also work with any splitter/switcher and e.g. your odroid as command sender
let me know about your setup then
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.
HI
What you mena by “stream exposing”
Did you manage to bypass HDCP on the sender? How?
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
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
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
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.
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.
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
ok, grazie cmq. aspetterò che mi arrivi il decoder.
MySky HD is not a CEC device.
You need an IR stream to control it.
Too bad to hear that (that sucks) but thanks for the info. I’ll try the IR solution.
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
Why my Fritz!box recognize TX device as TX-00-13-3A-xx-xx–xx but not the receiver?
Hello Guys
I just got LKV373A V2
Could I upload V3 files?
Jues
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 ↓
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.
Thanks danman :DDD
Wish you good luck with the backup!
LKV383 vs LKV373A
most best for market ???
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.
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.
Can you please make network capture with wireshark? I’d love to see some example packets to test it.
Thanks.
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.
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?
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
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
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.
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?
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?
Not sure. But i did the update soon after receiving it. UDP is garbage for me as well, but RTP works great.
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
Is it ok to downgrade firmware?
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”
I again tried to upgrade to the latest firmware and the device got bricked.
I just purchased this device (http://www.ebay.com/itm/191750919298?_trksid=p2057872.m2749.l2649&var=490770381286&ssPageName=STRK%3AMEBIDX%3AIT), but I’m not able to get the udp stream playing in VLC. I can see packets of length 1316 interspersed with zero length UDP packets.
Here’s a screenshot of Wireshark and a dump of the VLC log.
http://imgur.com/a/6H3y2
http://ix.io/tpy
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.
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..
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?
This image (https://ae01.alicdn.com/kf/HTB1eXQjFVXXXXX8XXXXq6xXFXXXP/202171472/HTB1eXQjFVXXXXX8XXXXq6xXFXXXP.jpg) seems to suggest that pin 8 is the VCC.
How do you connect the diode between the SOIC clip and the flash programmer? Is it with the help of a breadboard?
Any pictures would be nice.
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.
I added some pictures into the post, please check there.
Thanks for picture.
Hi Danman
What is the black thing between the Vcc pin and the board? Cant be metal i guess, is it paper?
It is a piece of paper. First I had at hand was thermal paper so it went black after soldering 😀
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.
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.
I know about splitters, but this is extra money.
What about older model LKV373?
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.
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.
👍
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.
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.
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.
Be aware, there are some powerline adapters that block multicast traffic.
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??
“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
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.
…..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.
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
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
do you think is possible to route the multicast stream over OpenVPN?
Yes it is, but you need to know what are you doing.
some hints? i think i have to add static route to openvpn…can you help me?
Describe your intended setup.
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.
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.
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.
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.
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) ?
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.
After filtering the zero packets with iptables (command in the OP), mythtv started to work.
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
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
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.
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?
Is there a firmware/encoder version which doesnt have ‘zero’ udp packets?
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.
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.
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.
For those who call it “Weird resolution” here is an explanation https://forum.videolan.org/viewtopic.php?t=127336
1920 x1090 is a buffer size, it’s not a “wrong” one. Sort of padding so you probably have some spare pixels to user overscan feature on TV etc.
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
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?
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)
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
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??
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?
You can do it without any special settings, you just need to filter streams by source IP in receiver, e.g.: https://ffmpeg.org/ffmpeg-protocols.html#udp option sources.
Is this specific to ffmpeg? Not sure if this would work with mythtv.
Don’t know, or you can set different multicast address via webinterface.
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).
You’ll flood out your network, especially router, without isolating it, unicast is the best option.
The port number cant be changed. So how can you have two devices unicasting to the same ip and port?
“you can set different multicast address via webinterface”
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.
Since it’s LAN, what’s a problem to get 2 IPs for one host? Are you sure port can’t be changed? Di you try to set it over http request?
http://192.168.0.5/dev/info.cgi?action=streaminfo&rtp=on&multicast=on&mcastaddr=192.168.0.226&port=5004
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.
Also, after unicast was set playing with mpv and ffplay gave garbage results. However, mplayer and vlc worked fine.
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!
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
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.”
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.
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.
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”
And I just found that device stops streaming after 24h of non-stop running. Anyone have this problem?
No.
RESTREAM IT TO RTSP! —->> https://sourceforge.net/p/iptv2rtsp-proxy/wiki/Home/
Got FullHD 1080 output over this tool, but the framerate a bit suffering. Test it out, maybe someone will make it better.
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
Http work fine with my esynic. Ffplay, ffmpg to encode a file and re-stream to rstp
According to https://github.com/John-K/lkctl 4.0.0.0.20160722 and 7.1.2.0.11.20160722 are don’t have a zero packets bug.
Just wanted to mention that we added support for the LKV373A streaming adapter in Yodeck, based on all of this useful info (we just added the zero length rule). Makes it much more easier to have Raspberry Pi’s playing back the LKV373A video stream 24/7.
https://www.yodeck.com/news/any-hdmi-device-asvideo-infor-yodeck/
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?
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.
“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.
Udp input – http output (proxy)
https://www.youtube.com/watch?v=N5ss2Qa2NVs
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.
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
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.
My post on ffmpeg support forum
http://ffmpeg.gusari.org/viewtopic.php?f=13&t=3682&p=10989#p10989
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 🙂
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.
Hi Doug,
thank you for your awesome expertise. Could you please share that datasheet you managed to find?
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.
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
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.
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?
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.
Keep us updated.
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.
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.
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 – …..
Thanks, I’ve ended up with directing each TX device to VMs running linux, each has own IP and own iptables rule. Works great.
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.
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.
Windows or Linux?
MacOS.
do you have socat utility on Mac?
Or if you can compile, you can try this version: https://github.com/danielkucera/FFmpeg/tree/ignore-empty-udp
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.
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?
did you compile it from my repo? did you switch to “ignore-empty-udp” branch?
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.
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?
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.
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?
Not possible. 15Mbps if I remember correctly.
Please, consider to feed this post on StackOverflow about ffmpeg request
https://stackoverflow.com/questions/44386798/ffmpeg-drop-udp-packet-by-lenght
I guess this won’t help. It’s a bug in ffmpeg and developers already know about it. But to fix it a change in core of ffmpeg needs to be done but prior to this multiple modules need to be fixed (so they don’t break after that change in core). You can read more in ffmpeg lists:
http://ffmpeg.org/pipermail/ffmpeg-devel/2017-May/211607.html
http://ffmpeg.org/pipermail/ffmpeg-devel/2017-June/211838.html
I think it’s worthy to keep trying
Even with ffmpeg fixed, it’s still better to use iptables if possible, to unload the CPU (I guess)
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/?????/?????
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.
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.
Not true, checking or unchecking it makes no difference, at least in all mentioned firmwares on this page.
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
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.
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?
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?
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.
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
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?
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.
RX device cannot be switched to unicast mode, it works only with multicast.
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
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?
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
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?
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.
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.
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?
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!
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.
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 🙂
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.
You can download samples (note that my devices is a 383)
ESYNiC 120M TS format (https://1drv.ms/v/s!AuIb4cEQWR92hcIPRaY_W2o8TVpZ5g)
(RAW) 220 MB/2 min./ 16 mbit (Full HD 50i)
ESYNiC 120M MP4 format (https://1drv.ms/v/s!AuIb4cEQWR92hcIQ5Qf-5HrffgyMsg)
circa 95 MB/2 min./ 6,5 mbit (Full HD 50p)
(ffmpeg … -vf yadif=1,setdar=16/9,scale=1920:1080 -pix_fmt yuv420p -c:v h264 -c:a aac -b:a 192k)
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.
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
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 😀
@Ram!, did you manage to get the stream changed from multicast to unicast?
@danman there is an effort on to port my code to the LimeSDR (still expensive)
https://www.crowdsupply.com/lime-micro/limesdr
however a guy in France has managed to transmit digital TV using a raspberry PI
http://www.vivadatv.org/viewtopic.php?f=75&t=335
Still waiting for my extender…
– Charles
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.
Did you try to upload any other firmware?
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?
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.
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.
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.
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
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.
You can push on ffmpeg developers so they fix the bug here if you want: https://trac.ffmpeg.org/ticket/6455
patch files doesn’t work anymore with last ffmpeg (from git)
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.
Polite nudge, anyone know which firmware will give me the web ui and telnet interface? Thanks.
Any luck getting the telnet interface?
Hi Guys
LKV373a can edit service name , Viedo PID , Audio PID ?
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
Hi!
You 3 of these devices on the same network and all pointed to the same PC machine?
What’s the lowest latency you can get on a v3 I’d like to use it for casual xbox play
Hehehe nevermind: today a fixed!!!!!finally I reflashed my own flashdump and I got working:)good and cheap device a love it..thanx Dan…
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.
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
Thanks Scoo – I’ll give that a go.
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.
Did anyone test LKV375N variant?
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.
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
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
ffmpeg for Windows
Anyone have the source for /dev/info.cgi ?
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. 😛
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?
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
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
You don’t need to use router, you can directly connect the sender to notebook.
Thank you danman!
I will give this a shot.
Alex
Just a note for those interested; Yodeck now supports building Video-Walls using the LKV373A and Raspberry Pi units. Each Pi picks up the multicast stream and plays back its respective area of the picture in sync with the rest of the units.
https://www.yodeck.com/news/video-wall-support/
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
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
Hi,
you should use this patch:
https://trac.ffmpeg.org/attachment/ticket/6455/0001-udp-ignore-UDP-packets-without-payload.patch
I did and this one libavformat-aviobuf-dont-treat-0-from-read_packet-as-EOF.patch. both
and how does it behave? any error or log?
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
Yesterday they accepted my patch to master so latest builds should work without hacks. https://github.com/FFmpeg/FFmpeg/commit/858db4b01fa2b55ee55056c033054ca54ac9b0fd
Ok, not yet avaiable (ffmpeg-20171016-7480f23-win64-static.zip)
ffmpeg version N-87871-g7480f232d2
Now it is.
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
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
ffplay is not working audio only
I mean, only video . no audio
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.
Sounds great. Can I help you somehow?
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.
Hello everybody.
It’s possible to use Lkv383A with moddig firmware for create a personal IPTV stream, for connect it any want device?
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.
Add some info on https://github.com/v3l0c1r4pt0r/lkv-wiki/wiki about pin on J4 header : The remaining pin are intended to spy SPI communication between MU1 and H264 encoder. Have begin to analysis messages but need to locate all registers and their meaning.
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.
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)
Based on the HDbitT website, they use AES.
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.