Mid-March 2017 Release of APSync

I’ve just changed the links on the firmware server to reference new images for APSync.

I’ve also pushed up the relevant changes to the build instructions and scripts to the github master repo.

So that’s what a release for APSync looks like!

Here are the release notes:

Release 201703

 - RPi is based on 2017-03-02-raspbian-jessie-lite.zip
 - "niceties" like strace, tcpdump installed by default
 - cmavnode now does the 14550 broadcast
 - MAVProxy is no longer started by default
 - video streaming is automatically started to first connector to :14550
 - release files:
  - apsync-rpi-20170314110804.img.xz
  - apsync-tx1-201703141027.img.xz
  - apsync-edison-20170316114410.tar.xz

I believe the change in there which is going to be of most interest to people is the “starts streaming video automatically” change. I’ve had several reports of out-of-the-box success already, which is awesome! There is a major caveat with this functionality, however: the script which starts the video stream is extremely limited in functionality. On RPi3 it streams the board camera (v2) only. On TX1 it encodes the first video device it finds using hardware acceleration. Edison uses software encoding for the first video device found, and is a slide-show.

If your camera does not work out of the box, you will need to modify the “start_udp_stream” script on the input and encoding sides. Notably, I have had great success on Edison using h.264-encoding cameras; both the LogiTech C920 (not the C930!), and a random camera I picked up off Ali-Express (https://www.aliexpress.com/item/USB2-0-1080P-full-HD-usb-Camera-Module-with-H264-Output-audio-mic-microphone-UVC-for/32424848584.html?spm=2114.13010608.0.0.Df1A69).

Second caveat: we don’t change the video stream once it is in motion. If you change GCS you will need to CC.

Enjoy, and please report on both successes and failures!

1 Like

Third caveat. Grab the images out of the “beta” directory rather than using the latest links. I’ve provided the names above. Some of our distribution servers don’t seem to be updating appropriately.

@peterbarker Sorry Peter if I repeat myself here but I had an issue updating my password and couldn’t log in. I think I had a bit of an issue loading async TX1 using the command line GitHub repo. I got a command not found on three lines.
87 - ./2_install_niceties
89 - ./4_setup_log_rotation
94 - ./setup-video-streaming
Because of that I downloaded and flashed the async image and I have telemetry as before and using a Logitech C920 I get a static image in the HUD when it first starts the feed but no live video. I have the same thing on my hex and on the bench with the Nvidea development board. (gstreamer is on my laptop)

Randy B

Looks like I need to watch the auto-correct. APSync😎

Solved the video streaming problem by removing gstreamer 1.10 and installing 1.9.2 as the instruction in mission planner stated. I just thought later is better😎 Cheers, RB.

Thanks Randy. I’ll check the commit state of everything carefully.

Peter, does anything change using a Nvidia TX2? Still use jetpack 2.3.1 or 3.0. Looks like 3.0 was released for the TX2.

Cheers, RB

can anyone suggest how to modify start_udp_stream for a C920 webcam? I am trying to use the following:

gst-launch-1.0 -v v4l2src device=/dev/video0 !
video/x-h264,width=1280,height=720,framerate=30/1 ! h264parse ! rtph264pay
pt=127 config-interval=4 !

the webcam lights up for a brief second while mission planner is getting the parameters but then the lights turn off and mission planner freezes. I have to restart everything in order to get a connection.

Try something like:
gst-launch-1.0 v4l2src ! video/x-h264, width=1280,height=720,framerate=30/1 ! h264parse ! rtph264pay pt=96 config-interval=1 ! udpsink host=192.168.x.x port=5000

This is a copy of the start_udp_stream I used on edison (rename it and copy it overthe existing start_udp_stream…) for my C920

Looks like the gstreamer pipeline is close to @fnoops 's :slight_smile:

start_udp_stream.txt (1.0 KB)

thanks for your help @peterbarker and @fnoop. It seems like I have to specify the udpsink host IP manually. I am not great with linux/raspbian but it seems like I need to track down the where the IP is specified for the variable?

There’s a process that runs on APSync which looks at where the telemetry is being sent. Once it determines that there is someone that’s likely to use a video stream it starts to send video there - by invoking this start_udp_stream with the appropriate IP address.