iOS Dev: video App - size limit - xcode

I know this has probably been answered before but I couldn't find an answer
We have a client that is currently selling video DVDs with dance classes. He wants to convert it to an App for obvious reasons.
The DVD has 90 minutes of video (divided in 8 chapters) so we estimated that it would be around 1.6GB of size. I'd like to know best practices for this.
We would like to download the 8 videos embedded in the App to avoid the user having to download chapters once they open the App (and to avoid hosting fees).
We are targeting iOS 6 because most of his customers have the latests iOS devices. We don't want to stream the video, it should play locally for different reasons.
Is 1.6GB too much for an App? Any suggestions for this scenario?
Thanks in advance

(iOS only) App Size Tips
iOS apps can be as large as 2 GB, but consider download times when determining your app’s size. Minimize the file’s size as much as possible, keeping in mind that there is a 50 MB limit for over-the-air downloads.

Too big, I think. Personally I would make the chapters downloadable and perhaps offer a 'download all' option for anyone who wants to get all the videos in one hit.
Making it modular (i.e. app and content separate) should also make it easier to add content or update the app when required.

Why not include the first chapter and build a download option for the rest of them? Best of both worlds.
Don't forget you can re-encode the video to reduce the size. If its a DVD rip you'll be getting a 480p version at most. Play around with bit rates to find an acceptable size file.

Related

Application that Streams Videos from Local Cache - in Browser?

I've built a webapp to host low-res proxies of our teams video files. The webapp is primarily for tagging and searching video. Additionally, I'd like to be able to play a random playlist of clips on TVs around the office. I've implemented this by "Casting Tab" to a Chromecast, and it works fine.
However, now I'm running up against the bandwidth limitations of my host. Latency and everything is fine, but to run a single TV's 2.5Mbps stream 8hrs a day for 23 days a month comes to about 207 GB/month, 20% of my alotted 1TB monthly transfer.
How can i build something that will "cache" these clips client-side, so that it doesnt re-download them unnecessarily? There are about 1000 clips. I'd prefer to keep it connected to my webapp via browser or some API endpoint so the RAND() stream of clips is constantly updated as people add to it.
Note: I asked a related question yesterday, and it seemed to fix my specific issue, but it doesn't seem to have worked at scale, so I'm broadening the approach a bit. Browser Caching of images and videos served via php query strings
Shaka Player has built-in support for offline playback, along with a pretty good API for listing offline assets, and removing them again.
This would require that you have your videos in MPEG-DASH format. Luckily Google also has a tool available for that. Shaka Packager can take your mp4's and package them for MPEG-DASH, provided the MP4's follow some simple requirements.
You could probably build something yourself using similar mechanisms to the Shaka Player, but it seems much easier to use Shaka for doing it.

Youtube slower on my site than on Youtube

I have several YouTube videos embedded on my website. I'm using the Jquery youtubeplaylist.js to load and play the movies. I recently noticed that the videos on my website stall and stutter occasionally. If I watch the same videos directly through YouTube then the videos load quickly and play smoothly.
Could it be the youtubeplaylist script that is causing the slow down? Or, could it be the fact that I am loading the video in at a custom size?
Also, does YouTube give preference to the videos played directly on their site?
I've seen the same problem, but there are too many variables to know for sure. It's clear that the nocookie player that loads from youtube-nocookie loads much slower than the regular player. Google has likely devoted fewer resources to this version of the player, probably because it garners less revenue to make up for the cost of serving video. Using the regular player, things do appear to be slower at times outside of YouTube, but that could be purely coincidental.
Having shared hosting or not shouldn't matter, since as you note the video stream is directly between Google's servers and the user's browser.

Is there a way for an iPhone app to only make users download the graphics necessary for their device resolution?

I'm developing an iPhone game, and it's nearing 20MB in size. I'd like to keep it under 20MB so that users can download it over 3G.
One of the main causes is that I have two copies of all my images, one for Retina Display, and one for non-Retina Display resolutions. However, half the images are always completely unnecessary. Depending on the device it will use one resolution or the other, but never both.
I know I could just use the high-resolution set and scale them down for non-Retina Display resolutions, but they don't look as good and there are performance implications as well.
Is there any way to split my images up into two sets, and only make users download the set they need?
No. At least not in an Apple-supported manner.
The app bundle shall always contain everything for all platforms. One motivation: The user may have more than one iOS device synchronizing with the same iTunes library. So, say I download your app on my iPhone4, synchronize with iTunes and then also install it on my 3rd gen non-Retina iPod touch from iTunes.
Can you release two versions of the App? And then in each offer the other as a free inApp sale? Or bundle the two apps together and sell for the same price as one?

How can I filter inappropriate youtube videos?

I am developing an application that runs completely unattended and displays some info on fixed monitors (like in an hotel hall). I'm planning to allow users to submit videos using a web site, and those videos will be displayed every day at a certain time.
As this program is completely unattended (no moderation desired), it should automatically filter inappropriate videos (sexual, violence, etc)...
So, the questions are:
Is YouTube filter automatic or does it need X users seeing the video and marking it as inappropriate?
How much time does it take to detect that its inappropriate?
Thanks to anybody that can give me ANY piece of information!
It is dependend on users flagging a video. I really wouldn't do it the way you are proposing, simply because there will be videos slipping through the net you are putting up; and I don't think you want to allow that.

Hosting recommendations for technical screencasts

I am asking this question on SO because a similar question was asked here and migrated to SuperUser, but the answers it got there were more about screen sharing than hosting screencasts. I'm hoping that some of you have faced (and solved) this issue before...
My team is putting together a bunch of technical screencasts, and we are currently hosting them ourselves. We would much prefer to host them externally, to take advantage of a bigger pipe, geographically distributed data centers, and better uptime.
The screencasts are typically less than 10 minutes.
Is there a programmer-centric screencast hosting solution? Would you recommend YouTube? Vimeo? Something else?
Since Jon's answer two years ago, there have been a few additions to the screencast market:
Screencast.com, by TechSmith. The makers of Snagit, Camtasia, and Jing have a place where you can host your Screencasts at any resolution. It's not as straightforward as Screenr, but it provides you many options to upload your videos. You can upload by file or directly from Snagit 11, Jing (Free), or Camtasia.
YouTube and Vimeo (Pro) continue to be good options if you're looking for a hosting platform and they now both support a large range of HD formats as well as supporting HTML5. The drawback (or benefit?) is that your video is going to be converted to their playback resolution(s) rather than your source resolution. Snagit 11 will even upload directly to YouTube now.
Screencast.com seems like a good option if your main concern is recording screencasts on the fly and getting them uploaded quickly.
YouTube and Vimeo are probably better choices if you want your videos to be visible to the widest possible audience.
While Vimeo is more of a professional site, YouTube offers HTML5 / H.264 video playback support for all videos, so they'll play on iPhone. Vimeo currently doesn't support that on user videos, and is planning on adding it as a pro feature in the future.
If you are really concerned about 1-to-1 pixel resolution in your screencast, Vimeo Pro is not the best choice. My files had an exact 1920 to 1080 resolution and I exported them from Screenflow in "lossless". It appeared very crisp on the Mac in Quicktime Player, but after uploading to Vimeo Pro, turning HD "on", I could not read the details.
Vimeo is quick, but they have a compression good for movie scenes, but bad for small computer screen fonts. I am trying screencast.com since they leave the file "as is".
Personally, I prefer to see videos on something like Vimeo rather than YouTube or a similar site. Vimeo has a certain air of professionalism about it while still be convenient and user-friendly. Also, you can put embedded videos on your support pages if you wish or simply link to the videos in FAQs or forums. It makes it very convenient. Again though, this is just MHO.
A popular modern option is Wistia. They are more expensive than say Vimeo, but they have excellent tools for collecting emails and for analyzing how well your videos are doing. Basically they are hosting combined with video marketing.
I decided to go with them for my indie-hacker screencasts site.

Resources