Mobile devices today are coming increasingly powerful but constrains in computing power and battery capacity make it prohibitive to convert in real time media information upon downloading or streaming on a mobile client. With limited codec support in most smartphone devices with the exception of Asian PMP devices catering to torrent-loving media consumers, Internet downloaded media in DivX, MKV, or Blu-Ray MPEG-4 have to be converted to H.264 prior loading to device or streaming. Transcoding is a time-consuming and often manual activity that needs to be eliminated and automated. Vuze/Azureus have changed that with automatic transcoding to iPhone including import in iTunes, PSP support with thumbnail support, probably soon to support Android devices as well. Yet, Vuze or similar solutions need to be accessed on the transcoding station (powerful Desktop PC) and synced with the device. On the go, often the user may find out he wants to watch a video that he has at home, but it is not transcoded yet. Carrying all transcoded media on the device sometimes is not viable – user may have terabytes of videos at home, which convert to hundreds of gigabytes of transcoded data. He may not want to have transcoded copy to every media file. Finally, not every device requires the same transcoded copy – user may have a HTC Tattoo budget smartphone and an Archos5 PMP. While codec support is the same, resolutions are totally different and bitstream support differs as well or the user may not require same quality for each device he has. The following combination of server and mobile client solves this problem.
- Remote-control 24/7 Server PC/Mac/Linux box that serves as torrenting client as well as transcoding server. Every downloaded movie or TV show is compared using RegEx with Scraper information using similar methods to XBMC to gather full movie or TV show information and episode list. This builds Web Server which the Video Player can access. The user, via special Video Player with Web interface access integrated in it, can list all the movies and TV Shows on his home computer in a rich User Experience full of Fan Art, DVD Box covers, screen thumbnails and more, and can check which one is watched or not. While Web Based, the whole HTML/image pack of the remote server is cached in the background to allow the user to access a snapshot of the server’s offerings even if offline. The server also should support merging subtitles into videofiles via FFMPEG, and also must receive additional options for video/audio/subtitle track choice for MKV packagers (i.e. you can request transcoding for an anime series, by choosing default or specifying exact audio (Eng/Jap) and subtitles (Yes/No/which ones).
- Android OS Video Player. No need for fancy codec support as we will be streaming or downloading media with transcoding on demand. The user chooses what Movies or TV Shows he wants to watch. The Video Player demands these shows from the remote server, informing him about the specifics of the device – in our case, it’s an Archos PMP, so the server knows that he has to serve 800×480 MPEG-4 to the device using specific kbps setting (Archos has 500GB hard drive so it can take 1.5Mbps, but if it was a HTC Tattoo it would be 384 kbps video). The remote server starts transcoding all requested videos. It sends an estimated transcoding time to the Video Player. Using Interface bar or Home Screen Widget, the user may see how much time is required before the videos are completely transcoded. Once the videos are transcoded, or if they were transcoded previously and transcoded copy for that device exists already, it it sent to the device via background downloaded service that supports resuming if the user drops connection from time to time due to mobility. Once the video is uploaded to the device, the user may start watching it. Or, if streaming is possible, he can start watching it once certain buffering is made possible and downstream can support buffering – the user is informed in real time whether streaming will go perfectly or there may be hiccups.
- The Video Player may also support additional automation such as: (1) deleting transcoded cached and/or original copy files on local mobile device and/or remote server once the video is being completely watched; (2) merging video player UI with data from various torrent client web clients, such as mTorrent, Vuze, Transmission – see while watching what is the remote up/down ratio for the video so you know whether it is safe to delete both as data and as torrent from used torrent client.