04-13-2010 08:34 AM
The mp3 seems to work for me, but the mp4 is still intermittent and failing more often than it works. I am on Verizon EV-DO, which is high speed data for CDMA. The videos fail even when I have good signal (5 bars).
04-13-2010 12:09 PM
Hey Charred PC - Yup MP4 all good on my end! It did pause once about 2 minutes in but was interesting because occasionally the 3gp would do this if my data rate was low and the screen would go black - here it just stopped on the image.
BTW, great that an MP4 file can also work - doesn't need to be 3gp...
As for my specific setup, I'm also on Verizon (1xev with 4-5 bars), using the same device (Storm 1 not 2) with OS version v188.8.131.528 - as I recall, the same as Zelaza. Interesting that we're getting different results.
Is the MP4 file smaller? Nice work!
04-13-2010 06:28 PM
Great that it's working for you! Very pleased. That MP4 file wasn't as optimized as I like either- the fix seems to be adding in extra code to the file that acts as a streaming handler, so even while running off HTTP your phone is happy. If I haven't found a simple one-step way to do it, I'll post my multiple-step process to create these tomorrow.
With the tests I've done here and elogic's results, I'm starting to think that your issue is simple congestion in your area. That would produce the results you're seeing, and explain why the mp3 works (smaller / easier to load / lower bandwidth data file). Short of lowering the video bitrate even more or complaining to your carrier, I'm not sure what else to try.
My "streaming package" is a webserver! Seriously, I just dumped the mp3 onto my webspace and linked you to it directly. As long as the correct MIME type is set on the server, the phone can stream it. Makes it really handy to stream music or radio shows on the go
04-13-2010 07:11 PM - edited 04-13-2010 07:14 PM
Anything special I have to do to set the MIME type? And is it actual streaming as in, I can fast forward, without the need to download etc? Also your mp3 link is different than mine, in that yours asks if i want to Open, Save or Other. The one I have will only ask to save or cancel
I didn't get a chance to test that feature out.
04-13-2010 10:03 PM
My webspace uses Apache (if that matters) and the MIME type is set to "audio/mpeg" for file types "mpga mp2 mp3". If mine works and yours doesn't, this difference is the only thing I can think of offhand. I had trouble with my videos streaming (only had the option to save) until I added "video/3gpp" for the 3gp filetype, and "video/mp4" for mp4.
04-14-2010 01:45 AM
I'll take a look at my current MIMEs and modify accordingly.
The reason mine probably didn't work is because I was streaming through RTSP. So it was something like rtsp://blah.com/test.mp3
The weird thing is that different OS versions for 5.0.0.x deal with my links differently :/
04-15-2010 01:24 AM
Still don't have the info we need to replicate your success on Blackberry files with .mp4 / .3gp... Would you mind posting that on the thread? Would love to start testing it on our files / server.
Thanks again for bringing this one home!
04-15-2010 06:23 AM
I meant to write up a full comprehensive guide, but things got hectic here. As much as I like perfection in everything I do, here's a basic version so no one has to wait:
Bottom line is the codecs (sort of) mean nothing. h263, h264, 3gpr6, mp4... the biggest issue is the extra stream control data that needs to be added into the mix. This is automatically added when streamed from an RTSP server, which is why that method works for nearly everyone (for example, mobile Youtube). So in order to get pre-encoded served-off-webspace files to stream correctly, the same control data has to present.
I've spent the past several days trying to find a single good piece of software to create such a file. I really, really hope someone corrects me on this and pulls a rabbit out of their hat, but... there is no perfect software, at least not for low bitrate encoding. I've managed to get the halfway decent results I have by combing multiple methods / programs. I'll try and cover most of the important bits for getting the best quality... bear with me, it's 3:30am
First off, I only found two pieces of software which can successfully add the extra streaming control data. Of those, only one would actually produce a working encode (other continually came up "incompatible"). The bad news is, it's Quicktime Pro. This is bad news for several reasons-
1. It costs $30.
2. The resulting encoding quality is... well... cr@p.
3. There's very few options to tweak, so you're pretty much stuck with #2.
4. If you have AVI source files with MP3 audio, you're in for an even bigger headache.
While I haven't been able to find an alternative program yet, I have come up with some workarounds. Starting with the last problem first, there's a few options. First off, Perian needs to be installed so that MP3 audio will even play in Quicktime. However, even though it played, I couldn't get it to export to 3GP or MP4. It would export to MOV, though, so that can be used as an intermediary step (AVI -> MOV -> 3GP). That's a lot of processing, though. Also, that leaves us with the fact that Quicktime is one of the worst options for low-bitrate encoding there is. If you'd like to try it, here's some basics:
1. Open Quicktime (Pro). Choose File -> Open File, and load your source material. If it's not compatible, skip this bit and read ahead, I'll explain what to do.
2. After making sure your source plays fine, choose File-> Export... Change the Export: drop-down to either "Movie to MPEG-4" or "Movie to 3G" (which is 3GP format). It doesn't matter what's selected under "Use:" as we're changing those anyway. Click Options.
3. Under Options, we have all of maybe six things we can adjust :/ To begin with, in the "Video Format" drop-down, select H.264. There's supposedly an improved x264 plugin that can be installed, but it refuses to work for me.... anyway. The streaming service I'm running uses roughly 123kbps, or 15KB/s video streams. Yes, that sounds crazy, but with a decent encoder and the right settings it's very possible. If you're aiming for similar, then change the Data Rate to something like 90 kbits/sec, and choose "Optimized for Streaming." Change the image size to whatever you like, fps, etc.
4. Now click Video Options. For the love of everything, never choose "Single-pass." Every time you do, God kills a kitten, just because you wanted your encoding done a little quicker. It makes a huge difference in the end, and your customers won't care that you saved twenty minutes if the video results look like a snowstorm of colored cubes. You'll also need to check "Baseline" here, or it won't be compatible with your BlackBerry.
5. After clicking Okay, go into the audio section. make sure the audio format is AAC-LC (Music). trust me on this, it's a compatibility thing again. Most movies are all talking, and our BlackBerry phones are hardly studio-grade equipment, so we can really save some bandwidth here. This is also one of the biggest mistakes people make with low-bitrate encodes, is letting the audio hog the bandwidth. My encodes sound very decent using a data rate of 16 kbps / Mono / 22.050 kHz / Encoding Quality: Best.
6. Last but not least, click the Streaming button, and checkmark Enable streaming. I've always left the packet size and duration at stock settings, but if you have network congestion issues (I'm looking at you, zelaza) then feel free to try tweaking these values. And with that, we're done! Click Okay, click Save, and wait for a while...
... and prepare to be disappointed. Okay, it's not the worst encoding ever, but it's not optimized at all. If you keep your screen size about that of a postage stamp, or really up the bitrate, it might work out for you. I just find it completely unacceptable quality. Also, don't believe any size estimates it gives. It has horrible bitrate control, so everything comes out much bigger than you anticipate. The streaming data also adds a bit in too. So how was I able to make any decent-looking video?
Almost every "converter" I tried is based on the same principle- make it easy for people, not too technical. Thus, they are essentially horrid things with two buttons and a slider bar. Before I decided to conquer the Storm streaming issue, though, I was using something Windows-based called AVS Video Converter. Yes, it's more costly software. Now you can see why I was holding off doing any sort of guide- I was desperately trying to find freeware alternatives (who's results don't make you cry). But what's the point of another 3GP / MP4 converter if it can't create streaming files?
Here's how I did it. I used AVS to create decent looking / sounding 15KB/s h.264 MP4 video files. Then I went back to the Mac, and opened those files in Quicktime. This time, however, under "Video Format" and "Audio Format" I chose "Pass-through." Then I selected the Enable Streaming feature, and saved. What this does is make Quicktime use the already prepared audio and video without reprocessing (and ruining) it, instead just repackaging it into a streamable MP4 or 3GP. Again, keep in mind that the stream control data adds a little to the file size. It's not noticeable as much in tiny files, but for 30-60 minute movies, it can really add up.
Now, as far as streaming them, I covered the MIME info a couple posts ago. If you did it right, you can dump them on a normal web server and BlackBerry users can enjoy! Keep in mind that the much older BlackBerries don't have h.264 capability, so if you're wanting complete compatibility, you have to use h.263. That does mean taking another hit in quality or bandwidth, however.
I hope this was all understandable. If anyone has any questions, or wants to know more specifics about the different software I've tried and their shortcomings, or wants to suggest one for me to check out and test, I'd be very pleased to keep the ball rolling here This multi-stage pay-software solution is hardly convenient... not that I have any problem with purchasing software (obviously), I just want it to actually function for what I'm doing. I might have to start a spreadsheet just to keep track of all the absolute garbage that passes for video encoders these days.
Thanks for your patience, guys. Let's keep each other posted as we come up with more options in this.
PS. If there's absolutely nothing wrong with your BlackBerry, does that make it The Perfect Storm? ...boy, I'm tired. Off I go to bed.