Hello Tello Pilot!
Join our DJI Tello community & remove this banner.
Sign up

New app: TelloFPV for Android

Contineous short sound interrupts every 2 till 3 seconds during Video playback

Tested with:
TelloFPV versions 1.2k, 1.3a, 1.3b
TelloFPV Copilot versions 1,3a, 1.3b

HW: Xiaomi Redmi 5 Plus Android 8.1.0 MUI 10.2
Wifi conection with and without Mi Repeater 2

All cobinations with the same result: Smal sound interrupts in Video playback.
Tried different Video bitrates as well.
Gamesir T1d did not influence the result
All tests performed indoor

Not such interrupts in Sreen_Recorded files. They look great !

All other funtions works perfect.
The Copilot functions is great as well.

Volatello has done and is still doing a great job!

All the tests repeated with Samsung Galaxy Tab S2 SM-T813. without any sound problems.

Conclusion:
I am afraid that this problem is related to my Phone Xiaomi Redme 5 plus.

Any Suggestions?

aquarius1201
 
Last edited:
I don't think I'd worry too much about the sound problem. Its not directly related to the phone but a more generic problem.

You have two sources of data: Video and sound.
Where audio is recorded without any hickups video is recorded from an unreliable source. Some frames just get lost. Say in an extreme case you have 10s of audio, but only 9s worth of video. Audio and video would run out of sync.


So there is two options to solve that:
1) Audio determines the pace. Audio is recorded continuously , and video is muxed to the audio as new frames arrive. If some video frame is lost we just pause the video recording until we have a fresh frame to continue with. The end result would have perfect audio but video would be full of stutters both long (if a frame is lost) and short (video frames aren't delivered exactly at 30fps but with minimal timing deviations).
2) Video determines the pace. Each frame is delivered at 30fps. If one is lost, the next one takes its place. This causes minimal skipping which goes mostly unnoticed. Now to sync audio to this I have to break up the single audio stream into short packets, ideally on 30ms recording per video frame. If a frame is lost, we drop the audio frame as well.

I chose to do #2 as it results in a much better video recording. Audio is IMO only an unimportant add-on.

THe drawback is that there is some audio stutter, but IMO that isthe smaller problem. I may be able to improve audio quality a bit, but the conceptual issue remains: I have to cut away audio to synch it with the somewhat shorter video. And it needs to be done in realtime so can't be a complex operation.

Or I could probably just cut away all audio left over after the video finished.
 
Last edited:
I don't understand the use of recording audio during a drone flight - ambient background sounds? Narration?

I'm sure it's something I'm missing or haven't thought of... would someone tell me please? Thanks
 
I don't think I'd worry too much about the sound problem. Its not directly related to the phone but a more generic problem.

You have two sources of data: Video and sound.
Where audio is recorded without any hickups video is recorded from an unreliable source. Some frames just get lost. Say in an extreme case you have 10s of audio, but only 9s worth of video. Audio and video would run out of sync.


So there is two options to solve that:
1) Audio determines the pace. Audio is recorded continuously , and video is muxed to the audio as new frames arrive. If some video frame is lost we just pause the video recording until we have a fresh frame to continue with. The end result would have perfect audio but video would be full of stutters both long (if a frame is lost) and short (video frames aren't delivered exactly at 30fps but with minimal timing deviations).
2) Video determines the pace. Each frame is delivered at 30fps. If one is lost, the next one takes its place. This causes minimal skipping which goes mostly unnoticed. Now to sync audio to this I have to break up the single audio stream into short packets, ideally on 30ms recording per video frame. If a frame is lost, we drop the audio frame as well.

I chose to do #2 as it results in a much better video recording. Audio is IMO only an unimportant add-on.

THe drawback is that there is some audio stutter, but IMO that isthe smaller problem. I may be able to improve audio quality a bit, but the conceptual issue remains: I have to cut away audio to synch it with the somewhat shorter video. And it needs to be done in realtime so can't be a complex operation.

Or I could probably just cut away all audio left over after the video finished.


Thanks for the quick reply.


I understand your explanation but...... why is this sound affect not present in the screen recorded file and why does it work well on the Sansung galaxy Tab S2. The audio input should be the same for the recorded drone viedeo as well as for the screen recorded file or is the sreen recorder a seperate task. Xiaomi has a build in screen recorder option the one i use to record my Mavic Air files with as well.

You are right the audio is nice to have to comment acttions during the flight but for this the screen recorder suits more.


Local phone video settings have no effect.
 
I don't understand the use of recording audio during a drone flight - ambient background sounds? Narration?

I'm sure it's something I'm missing or haven't thought of... would someone tell me please? Thanks


As i told in my answer above it is a nice to have feature to record comments during a flight for later feedback.
I found this very usefull with my Mavic Air. Here i use the screen recorded file to analyze what information was given on the screen and my personal comments to it.
 
Thanks for the quick reply.


I understand your explanation but...... why is this sound affect not present in the screen recorded file and why does it work well on the Sansung galaxy Tab S2. The audio input should be the same for the recorded drone viedeo as well as for the screen recorded file or is the sreen recorder a seperate task. Xiaomi has a build in screen recorder option the one i use to record my Mavic Air files with as well.

You are right the audio is nice to have to comment acttions during the flight but for this the screen recorder suits more.


Local phone video settings have no effect.
When doing screen recording you have two reliable sources: Video and Audio are constantly in sync, and are automatically recorded without much effort. There is no synching required at all. Now of course you see video stutters in the screen recording in case of broken frames - just like you see stutter in the live feed. But no one cares about that, people just expect that.

When muxing video from Tello and audio from mic things are a very different. I get chunks of video data without exact timing on one channel, and chunks of audio data on the other channel. I can't split the chunks, or do some complex timing adjustment. I have to do a best guess how to fit these pieces together so the end result is acceptable.



Why it works in the Galaxy Tab? Pure coincidence. I have one S4 that sounds good, and another that sounds jerky.
By coincidence one device has a matching audio chunk size, CPU, audio recorder, etc. Next recording could be broken again like the other phone.
 
I haven't heard any complains beside the occasional connection issue from Copilot so here we go:

v1.4 of TelloFpv, TelloFpv Demo , and TelloFpv Copilot have just been released to production on play store.
This release makes Copilot available to the wider audience, and gives a nice performance boost for the live video feed.

For those who haven't heard of Copilot: Its a free companion app that allows to mirror the live video and telemetry data to another phone. It requires a wifi extender as Tello alone can't handle multiple phones in parallel.

TelloFpv Copilot can be found here:

Enjoy!
 
Within the week I am a little short with time so I cannot test too much these days, however I tried the latest versions from the play store this evening. I wasn't able to find any expert settings to play with, so I just used it "as-is" without trying any changes in settings.
The good news first: No image freezes for the endurance of the flight with one battery.
The bad news however, the Tello behaved in between with strange delays in reactions on controls that I was not used to before with TelloFPV. Movements initiated sometimes delayed, short commands were not performed at all from time to time, sometimes they were executed longer than expected. Once almost crashed into an obstacle because forward flight continued unchanged for ca 500ms after the stick for moving forward was already released back to center position. Seen also for yaw movement while hovering and turning cw/ccw. On short yaw commands sometimes no reaction at all, sometimes reaction as usual, sometimes yaw continued longer than stick was hold. I'll try tomorrow if it can be reproduced and if it is related to the combination with copilot or also happens with FPV only.
Or is this delay issue known for other reasons like artificial light etc? - As I tested in the evening, so VPS conditions were not perfect.
 
Sorry for the issue... :cry:

This one is going to be complicated but maybe its time to release the jini from the bottle. These are the expert settings for the educated user:

open menu-about
tap 3x on credits section
enter s:exp=1
cose app using the menu-exit or the back button (i.e. not using task manager)
restart

This adds a new menu Expert which opens two tabs, both have two buttons at the top: "Reset" which restores the default settings, and "apply + restart". Most settings are only applied after restart.
You can remove the expert menu later with "s:exp=0"

Settings on tab 1:
  • Async control: Use separate thread to handle received telemetry data asynchronously (if false the Control receiver thread also does the handling)
  • Headless Dynamic: Modified headless mode so that "pitch forward" always means away from the takeoff point, backward brings the drone back. The normal headless means "Pitch forward" moves into the direction tello had when Headless was activated. Personally I find this alternative mode confusing.
  • Show Debug: Adds debug overlay
  • Tester: Currently unused
  • V Async: Use separate thread to handle received video asynchronously (if false the video receiver thread also does the video decoding)
  • V Codec enforce PPS IF Seq: Ensures that an IFrame is always preceeded by a PPS NAL (If you don't understand, don't woory). Useful only if video freezes in noisy environments
  • V codec filter redundant config: most codecs want to be configured once, some want it for every iframe.
  • V Codec Reset on Format change: Resets / Renews the codec after a format change was detected by TelloFpv
  • V Codec Reset on Surface change: Resets / Renews the codec after a format change was propagated by the codec (the previous one should be preferred)
  • V Codec Reuse: If active the Codec will be re-used for the previous two settings, otherwise a new codec instance is created
  • V H264 Write Len: Adds NAL length to the separate H264 file (of no use for a user)
If your video freezes when changing between video & photo mode, you may play with the Codec settings. This will introduce some flicker but should fix the freeze.

Settings on tab2 are only thread priorities (1 is low prio, 10 is highest)
  • Audio Recorder: Records audio (only the audio to be muxed into the tello video, not screenrecording)
  • Background: low priority tasks
  • Control handler: Handles telemetry data that was received from Tello (unused if Control Async is off)
  • Control receiver: Receives (but not handles) telemetry data
  • Copilot receiver: Receives Connection requests from Copilot
  • Heartbeat: Assembles the stick control data to be sent to Tello
  • Send handler: Sends data to Tello
  • Vide Drainer: Moves decoded video data to the screen
  • Video handler: Handles the decoding of video data (unused if V Async is off)
  • Video Receiver: Receives video data from tello
Change only one at a time, and return to default if it doesn't fix your problem. Otherwise you can't isolate the setting that fixed your issue.

Now for your case @AnGo :
Please set "heartbeat" to 6 and "send handler" to 6, then press "apply + restart".
If that doesn't fix the problem try "heartbeat"=7 and "Send handler"=6 and vice versa.






Important
---------------
1) Anyone messing with these settings should seek prior consultation - otherwise please do not expect any help or even sympathy. You do so at your own risk. The worst thing that can happen is that your video freezes / becomes choppy, the telemetry data is slow to update, or your Tello behaves sluggish. That is what the reset button is for, no permanent damage is done (unless you crash Tello).

2) If you can fix a problem please do report your issue and what settings solved the problem. That will help get the settings right for us all. The default settings work well for all my devices, but I am mostly using older Samsung Galaxy devices and other manufactuers may need different settings and without any empirical data I can't change these.

3) If you changed a setting, you should check after an app update. They may be overwritten with any update.
 
Last edited:
Within the week I am a little short with time so I cannot test too much these days, however I tried the latest versions from the play store this evening. I wasn't able to find any expert settings to play with, so I just used it "as-is" without trying any changes in settings.
The good news first: No image freezes for the endurance of the flight with one battery.
The bad news however, the Tello behaved in between with strange delays in reactions on controls that I was not used to before with TelloFPV. Movements initiated sometimes delayed, short commands were not performed at all from time to time, sometimes they were executed longer than expected. Once almost crashed into an obstacle because forward flight continued unchanged for ca 500ms after the stick for moving forward was already released back to center position. Seen also for yaw movement while hovering and turning cw/ccw. On short yaw commands sometimes no reaction at all, sometimes reaction as usual, sometimes yaw continued longer than stick was hold. I'll try tomorrow if it can be reproduced and if it is related to the combination with copilot or also happens with FPV only.
Or is this delay issue known for other reasons like artificial light etc? - As I tested in the evening, so VPS conditions were not perfect.
How was your phone battery level at the time?
 
Screenrecorder issue found in Version 1.4a

After staritng the screen recorder a confirmation screen pops up.
As long as this screen is shown the bluetooth connection to the controller is lost.
After the confirmation has been performed the bluetooth reconnection is automatc recovered after a few seconds.

Controller Gamesir T1d
Phone Xiaomi redme 5 plus android 8.1.0

I assigned the screenrecorder start to button B of the controller. Would it be possible that a second push on this buttion confirms the popup screen. And a third press stops the rec
 
Last edited:
Had a go yesterday but have not tried the update yet. For some reason Google assistant popped up but it was probably a finger fault on my part?. I also forgot to switch my phone to airplane mode and had to deal with 2 incoming calls!! ?. Why can't people leave you alone when you fly. Throuhout the calls the app stayed rocksolid and with the surprise appearance of Google assistant it moved to the background but immediately opened and connected when I reopened it. So I only have positive feedback on it.
 
good point, power saving mode can also cause this.

While we're on the subject of phone power level -

I've noticed that if you don't exit Tellofpv, it won't allow the phone to go to sleep, even a very long time after disconnecting from Tello.

Any way to implement a timeout so the screen can go to sleep and save power if user forgets to exit?
 
While we're on the subject of phone power level -

I've noticed that if you don't exit Tellofpv, it won't allow the phone to go to sleep, even a very long time after disconnecting from Tello.

Any way to implement a timeout so the screen can go to sleep and save power if user forgets to exit?
I think opinions will differ in this one. I personally will prefer leaving the app manually. I usually exit first and the browse the pics and videos afterwards so don't normally leave it on. Except if the timeout comes into play if you haven't touched any buttons or no connection to the tello for a certain time. Then that will be a good idea.
 
Screenrecorder issue found in Version 1.4a

After staritng the screen recorder a confirmation screen pops up.
As long as this screen is shown the bluetooth connection to the controller is lost.
After the confirmation has been performed the bluetooth reconnection is automatc recovered after a few seconds.

Controller Gamesir T1d
Phone Xiaomi redme 5 plus android 8.1.0

I assigned the screenrecorder start to button B of the controller. Would it be possible that a second push on this buttion confirms the popup screen. And a third press stops the rec
When the screenrecording dialog pops up you are no longer using TelloFpv - the app is in the background. What you see is a dialog created by Android so effectively you just left TelloFpv. You can see thatthis dialog is the same for all screen recording apps.

About 3 seconds after leaving TelloFpv it automatically releases all connections to controllers and to tello. So you just have to be quick :)
That 3s period allows you to seamlessly switch between TelloFpv and other Tello apps. If TelloFpv kept the connection like Tello app does this would be a pain.


This is also the reason why I can't add a function to confirm the dialog using a controller button. Its not a TelloFpv dialog you see, and TelloFpv can't control system dialogs. Otherwise such confirmation wold be useless: Any app could start a screenrecording and automatically confirm the dialog, so you would not even notice your screen is recorded and Your passwords are sent to china.

Had a go yesterday but have not tried the update yet. For some reason Google assistant popped up but it was probably a finger fault on my part?. I also forgot to switch my phone to airplane mode and had to deal with 2 incoming calls!! ?. Why can't people leave you alone when you fly. Throuhout the calls the app stayed rocksolid and with the surprise appearance of Google assistant it moved to the background but immediately opened and connected when I reopened it. So I only have positive feedback on it.
Good to know! I can assure you the app can't start google assistant by itself. I don't even know how to start it. If such assistant pop up I am only interested in how to disable them.

While we're on the subject of phone power level -

I've noticed that if you don't exit Tellofpv, it won't allow the phone to go to sleep, even a very long time after disconnecting from Tello.

Any way to implement a timeout so the screen can go to sleep and save power if user forgets to exit?
You are right, I also run out of battery sometimes because I leave the phone on with TelloFpv running. I will look into this.
 
Within the week I am a little short with time so I cannot test too much these days, however I tried the latest versions from the play store this evening. I wasn't able to find any expert settings to play with, so I just used it "as-is" without trying any changes in settings.
The good news first: No image freezes for the endurance of the flight with one battery.
The bad news however, the Tello behaved in between with strange delays in reactions on controls that I was not used to before with TelloFPV. Movements initiated sometimes delayed, short commands were not performed at all from time to time, sometimes they were executed longer than expected. Once almost crashed into an obstacle because forward flight continued unchanged for ca 500ms after the stick for moving forward was already released back to center position. Seen also for yaw movement while hovering and turning cw/ccw. On short yaw commands sometimes no reaction at all, sometimes reaction as usual, sometimes yaw continued longer than stick was hold. I'll try tomorrow if it can be reproduced and if it is related to the combination with copilot or also happens with FPV only.
Or is this delay issue known for other reasons like artificial light etc? - As I tested in the evening, so VPS conditions were not perfect.
Does the latest 1.4a fix this? Or have you tried the thread priorities mentioned in an earlier post?
 
Does the latest 1.4a fix this? Or have you tried the thread priorities mentioned in an earlier post?
I will try this evening after work. Had no chance to test yet, either with the expert settings or new release.
 

Members online

No members online now.

Forum statistics

Threads
5,701
Messages
39,968
Members
17,064
Latest member
wroxel