I’ve made a little utility on Android that allows you to record audio > compress > encrypt > convert to base 64 and I am wondering if there are any ways to streamline sending the data over meshtastic or are there limits to the amount of characters you can send?

  • edinbruh
    link
    fedilink
    English
    arrow-up
    3
    ·
    24 hours ago

    Converting binary to base64 makes the data 33% bigger, you should not do that when you have limited bandwidth

    • hereforawhile@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      3 hours ago

      So, hex encoding of the aes cipher made it bigger. base 85 is slightly smaller than 64. The goal was to make it copy paste safe I think that’s the best option

      • edinbruh
        link
        fedilink
        English
        arrow-up
        1
        ·
        44 minutes ago

        There is no way to make this work. As others told you, hex made it bigger, because hex is like equivalent to base16. Every digit in base64 is 6 bit, while in hex it’s 4 bit. Raw bytes would be equivalent to base256.

        You will not get a good result with this technology, it just can’t handle the bandwidth, and will make it worse for everyone else by consuming their shared bandwidth.

        Instead, try to look into midi and sound fonts, that might give you a more sustainable solution.

    • hereforawhile@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      ·
      23 hours ago

      Good point, I guess using hexadecimal would shrink the data even further than using base64.

      The compression was implemented to reduce the audio input drastically. It can compress audio down to 6kb/s and you can still interpret voice clearly.

      I should try and optimize even further to shrink the final payload.

      • aubeynarf@lemmynsfw.com
        link
        fedilink
        arrow-up
        3
        ·
        16 hours ago

        huh? hex is 200% the size of raw binary.

        modern voice codecs run below 2.4 kbits/s.

        It should be pretty easy to discover the packet framing and content field specs, letting you embed raw binary data if you want. That would make it look like you at least care a little bit about the scarce channel and network routing capacity that exists.

        Have you checked out freedv?