9

I'm researching the development of an Android (2.2) app/service that will enable users to record short (I do emphasize short, < 30seconds) video on their phones and then upload that video (HTTP) to a server that will then transcode the video to other formats. That same user can download videos from other Android users and play them.

Now, I get a bit lost with everyones recommended approaches to all the issues in doing something like this because I haven't seen any ask this in a cohesive context. Ideally I would like a non commercial solution to this (as in no vendor/service being needed for the the video hosting/transcoding), but, feel free to include those as a recommendation (I've marked this as a wiki) as I know many like to use youtube and vimeo for the middle layer in all this.

The questions are

  • What server technologies do you recommend for hosting and transcoding?
  • What technology do you recommend for streaming the video (it would be nice to offer a high and low quality encoding depending on the users network connection)
  • What video format and software do you recommend for converting the uploaded video on the server to be viewable later by other Android owners.
  • Im assuming it's bad to do any transcoding on the phone prior to upload (battery/proc issues), but, if I'm wrong with that assumption what do you recommend?

    Some things that may help you...

  • The video will only need to render on an Android device, and in the future in a webkit html5 browser.
  • Bandwidth isnt cheap (even with numerous 30 second videos), so a good mix of video quality and video file size is important (streaming if needed to ensure quality vs. download).
  • This is for android 2.2 devices with a video camera of course and medium to high density screen of 800x400 min.
  • Open source solutions (server to receive the uploads, code to do the transcoding, server to do the streaming) are preferred, but not required.
  • CDN's are an option, but I don't think that really figures in to the picture right now.
  • Marc
    • 1,178
    • 1
    • 18
    • 31

    1 Answers1

    4

    Check out this page to see all the video formats that Android supports for encoding and decoding.

    http://developer.android.com/guide/appendix/media-formats.html

    For encoding use FFmpeg or a service like encoding.com

    Chris
    • 81
    • 6
    • 1
      What experience have you had with users downloading or streaming 3GPP or MPEG-4 on their Android device? And why would you choose one over the other? Encoding.com looks fantastic, but very pricey. I like the idea of FFmpeg. – Marc Sep 01 '10 at 17:34
    • 3GP over progressive download has been reliable. MP4 is temperamental. It can work but the file has to be optimized for streaming and there's not much documentation on all the settings to make it work. I have done it with AAC audio, H.264 encoding. Another option for encoding that I forgot to mention is Quicktime 7 with Quicktime Pro. Costs $30 from Apple. – Chris Sep 02 '10 at 21:49