Upload Now

In logistics, it is common to have devices that make scans of products or their identifications. For example barcode scanners. This information is then stored in a database. It is convenient to store with that information an image of the product, so that a human can, for example, at a later time do things like check whether a package was already damaged during the scan.

For this purpose you need to have a relation between the database record and the image, and this is often accomplished by giving the image a proper name. Typically it includes the barcode number. Unfortunately the camera can only generate names with a sequence number or timestamp, it can’t include information from another source.

That is where the Upload Now camera application comes in. It allows a scanning device to fiddle out a name, and then request the camera to upload an image with that name to an FTP server. To support handling of multiple detections per second, the Upload Now application listens for requests on a plain TCP socket, bypassing any delays of the HTTP subsystem. The requests have a very simple format, which can be tried by hand using a telnet client.

But to make real use of this application, you need to do a software integration. Details can be found in the download file. It comes with some Python-testscripts so you can see how it works.

It includes .eap files for ARTPEC-3, ARTPEC-4/5 and the Ambarella A5. Minimum firmware is 5.50 for the ARTPEC-4/5 and 5.40 for the others.



  1. What would be ideal for me, would be for the camera to listen for an ASCII command via TCP, but then trigger an action, or multiple actions. Not sure how hard that would be code or implement.


    1. Would it be okay for you to send a VAPIX command, essentially that’s ASCII over TCP. If you send a command to set a virtual I/O you can use that as a trigger for the normal on-camera event handling.


  2. Good idea, that may work. Maybe I’ll try to enter/send a VAPIX command (Note: I’ll need to figure out what that string would look like), via my TCP/ASCII transmitter…and then see how the camera handles it.

    On a side note, any luck on making two-way audio work via VAPIX on an iOS device.

    I haven’t found anyone who’s ever actually been successful.

    Just curious….


    1. It’s /axis-cgi/virtualinput/activate.cgi?schemaversion=1&port=. If you’re a developer you can find this in the online information on the Axis partner pages.

      To do two-way audio you have to setup distinct connections for up and down. From the camera to phone, use an RTP stream like video. To send audio you need to a ‘never-ending’ HTTP POST with mulaw samples.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s