Using Xiaomi Yi Sports Camera with iPhone and VLC

To start stream on Xiaomi camera just need send 2 commands to port 7878
Authenticate:
{"msg_id":257,"token":0,"param":0}
on reply get "param" parameter is a token

Activate streaming
{"msg_id":259,"token":#TOKEN FROM AUTH PARAM#,"param":"none_force"}
 
Any yi camera experts out there willing to consult with me on how to set up a multi camera system that can take still photos?
Ideally looking to be able to sync all the cameras together to take still photos. And to be able to control all camera settings avaliable if possible in the firmware. Followed being able to down load them. All via wire or wifi.
 
Or just use my C&C PC app that allows you to view live stream with one click :)
 
Can't make live stream work on VLC android app.
Linkineyes android version does not work either.
Is there other android app that works with Yi?
 
intoi: there is a PC app which you can try. If that will not work, then there is something broken in your camera. Maybe reflash will help, but don't count on it..
 
Can't make live stream work on VLC android app.
Linkineyes android version does not work either.
Is there other android app that works with Yi?
Remote Video apk by Spondias Inc works.
The link is post by martin555 at #20 in this thread.
 
Hey,

got my XYi today, vlc is working fine using the rtsp connection.
My target is to get a higher quality video (at least 720p - like on hdmi out) also using the rtsp connection.
Is there any chance to achieve this?
 
as pointed out many times - no.
 
To start stream on Xiaomi camera just need send 2 commands to port 7878
Authenticate:
{"msg_id":257,"token":0,"param":0}
on reply get "param" parameter is a token

Activate streaming
{"msg_id":259,"token":#TOKEN FROM AUTH PARAM#,"param":"none_force"}
I did this in python

Code:
#! /usr/bin/env python
# encoding: windows-1250
#
# Res Andy

import os, re, sys, time, socket, urllib2
camaddr = '192.168.42.1';
camport = 7878;

def wait_for_internet_connection():
  while True:
    try:
      response = urllib2.urlopen('http://%s' % camaddr,timeout=1)
      return
    except urllib2.URLError:
      pass

def main():
  srv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  srv.connect((camaddr, camport))
 
  token = ''         
  while token == '':   
    time.sleep(1)
    print "Send"
    srv.send('{"msg_id":257,"token":0}')
    data = srv.recv(512)
    print "Receive: %s" % data
    if "rval" in data: 
      if len(re.findall('"param": (.+) }',data)) > 0:
        token = re.findall('"param": (.+) }',data)[0]
      else:
        token = ''
    else:
        data = srv.recv(512)
        if "rval" in data:
            token = re.findall('"param": (.+) }',data)[0]   
 
  if token != '':
    tosend = '{"msg_id":259,"token":%s,"param":"none_force"}' %token
    srv.send(tosend)
    srv.recv(512)
    print "Live webcam stream is now available."
    print 'Run VLC, select "Media"->"Open network stream" and open'
    print 'rtsp://%s/live' %camaddr
    print
    print "Press CTRL+C to end this streamer"
    
    while 1:
        time.sleep(1)

wait_for_internet_connection()
main()

Yet all I get is Receive: { "rval": -4, "param_size": 0, "session_id": 0 }

What to do?
 
Back
Top