Giter Club home page Giter Club logo

Comments (11)

sweebee avatar sweebee commented on June 11, 2024 1

did some more testing. In a dark environment it works fine (latency is always good and no increasing delay). once there is a lot of light it goes bad.

https://www.youtube.com/watch?v=RRIMHVJCURI

from digiview-android.

sweebee avatar sweebee commented on June 11, 2024 1

@jlucidar yes I already tested it this morning before work. Here is the output, it looks quite good. but still laggy sometimes but it catches up and the latency doesnt stack up.

https://www.youtube.com/watch?v=nwWIL_f-LMM

from digiview-android.

jlucidar avatar jlucidar commented on June 11, 2024 1

Ok, Performance Presets is now a thing so we can switch between alpha strategy (called legacy) and new strategy with different buffering strategy (default, aggressive, conservative).
So I'm closing this.
If anyone wants to play with presets values or add new one, I will accept PRs :)

from digiview-android.

jlucidar avatar jlucidar commented on June 11, 2024

Just make the title a bit more generic. So people can comment on this.

from digiview-android.

jlucidar avatar jlucidar commented on June 11, 2024

So this is related to how the h264 stream is being passed to the exoplayer frame extractor.

Actually the h264 stream coming from the goggles is not encapsulated, nor contains information for the framerate.
It's been a bit of a testing/changing/retesting procedure to find a suitable timestamp for each frame to make it looks good, but this is not ideal, and the value is probably still too high.

see https://github.com/fpvout/fpv_viewer_android/blob/master/app/src/main/java/com/fpvout/digiview/H264Extractor.java#L32

If anyone comes with a great solution to calculate this value I'll take it. Or we can just lower it down till it breaks :)

from digiview-android.

mavenius avatar mavenius commented on June 11, 2024

Running down a quick stackexchange hole led me to this: https://stackoverflow.com/a/11920252/467210

Not sure if it helps, as I'm not sure what the raw h.264 looks like (nor do I have more than a cursory understanding of how video streams work, but maybe it does?)

Also, here is a deeper dive into where this information could possibly be gleaned:

timing_info_present_flag : 1
num_units_in_tick : 100
time_scale : 5994
fixed_frame_rate_flag : 1

I'm going to try to run through this example (https://www.cardinalpeak.com/blog/the-h-264-sequence-parameter-set) with one a DJI file that I'll record on Windows and see if I can get anywhere.

from digiview-android.

mavenius avatar mavenius commented on June 11, 2024

Actually, I randomly ended up here: https://github.com/district-michael/fpv_live/blob/4c7bb40e5cc5daec67b39cc093235afb959a4bfe/src/main/java/dji/midware/media/record/RecorderGop.java#L112

Looks like for the decompiled fpv_live from a year ago, DJI is assuming 30fps. I may be on the completely wrong path here though...

from digiview-android.

brad8898 avatar brad8898 commented on June 11, 2024

I did some testing of the v0.1.0 Alpha release on two devices:

  1. Samsung Galaxy Tab S3, Android v9
  • USB connects and starts the app automagically.
  • First frame of video appears after 5sec, but freezes for about 30sec.
  • Video delay is approx. 1 second, occasionally slowing to 2 seconds.
  • Quality of video is otherwise good, with a good stable framerate, no skipped frames.
  • Various combinations of Air video settings tried, inc bitrate, quality/latency mode, and focus mode. Results were consistent despite air settings.
  • Air unit kept cool. Did not go into low power mode.
  • Different USB cables attempted. Largely the same results across all cables, except a 3m/10' cable which did not connect.
  • Video at https://youtu.be/G-WOKrJsLlE
  1. Samsung Galaxy S10, Android v11
  • USB connects and starts the app automagically.
  • First frame of video appears almost immediately, but freezes for about 20sec.
  • Video delay is approx. 4-5 seconds.
  • Video appears to be dropping frames and/or changing speed frequently. Very unwatchable.
  • Various combinations of Air video settings tried, inc bitrate, quality/latency mode, and focus mode. Results were consistent despite air settings.
  • App restarted with USB connected. Video playback restarted.
  • Different USB cables attempted. Largely the same results across all cables, except a 3m/10' cable which did not connect.
  • Air unit kept cool. Did not go into low power mode.
    Video at https://youtu.be/NBkyl5Tc088

Happy to help with more testing if required. You're doing a massive service to the community!

from digiview-android.

jlucidar avatar jlucidar commented on June 11, 2024

Ok, Here is a version with internal buffering strategy reworked.
had 2 internal devs trying it and reporting to work well.
If it works well, I will merge it in dev branch.

@sweebee @brad8898 can you try this ?
app-debug-issue16.apk.zip

from digiview-android.

jlucidar avatar jlucidar commented on June 11, 2024

@sweebee looks great ! will see if I can tweak it a little bit to remove the disconnection and freezes.

from digiview-android.

brad8898 avatar brad8898 commented on June 11, 2024

Ok, Here is a version with internal buffering strategy reworked.
had 2 internal devs trying it and reporting to work well.
If it works well, I will merge it in dev branch.

@sweebee @brad8898 can you try this ?
app-debug-issue16.apk.zip

@jlucidar, this apk is failing to install on both of my devices for some reason. Package installer gets to about 80-90% on the progress bar, then stops with an error "App not installed". No further info that I can find. I downloaded and extracted the file again to rule out a corrupted download, but got the same result.

from digiview-android.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.