Supported video formats

by Strawp » Wed, 11 Feb 2009 18:43:22 GMT


Sponsored Links
 Hi,

I'm testing out video playback and not having a great deal of luck
playing back XviD encoded files in the 3rd party Video Player app but
I've also tested out a video designed for iPhone playback (H.264, 483
x 272, 400 kbps video, 112 kbps AAC audio) and although the video
plays perfectly, I don't get any sound.

Any ideas what's up with that?

Cheers,
Strawp
--~--~---------~--~----~------------~-------~--~----~



Supported video formats

by Dave Sparks » Wed, 11 Feb 2009 19:36:01 GMT


 There is no support for MPEG4-ASP required for XviD.

I'm not sure why you're not hearing sound from the MP4 clip. Is this
emulator or a G1 device?

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

Some encoding tips:

H.264 (AVC) is preferred for G1 due to h/w acceleration. Max width
should be 480 (set height to match aspect ratio - most encoding
software will do this for you). Video bitstream should be no more than
500Kbps (I've pushed it higher than that, but you need a good
encoder). No b-frames.

Preferred format for audio is AAC @ 96Kbps or less.

For streaming, 'moov' atom must precede 'mdat' atom.



--~--~---------~--~----~------------~-------~--~----~


Sponsored Links


Supported video formats

by Strawp » Wed, 11 Feb 2009 21:46:21 GMT


 Thanks, yeah I knew by default XviD wasn't supported but various apps
on the Market claim to add support for more formats.

Anyway, the H.264 video is my main concern. I had assumed this was the
most ideal format so I've no clue what the issue is. I'm running this
on my actual device from a video file on my SD card. There doesn't
seem to be any built-in way of playing video so I'm not sure if what
I'm doing is right. I've started Android File Manager (3rd party) and
selected the file, then it gives me a list of apps to run it with, and
I get "Movies" as an option with the same icon as "Music". Selecting
that one makes it play, but without the sound. Everything else about
the app seems to work fine.

The source video had mdat before moov but it's rearranged to allow
streaming with the app that produced it. I doubt this would affect
sound data (and besides it works on other systems).

I will try a lower bitrate video. Not sure what else to try.




--~--~---------~--~----~------------~-------~--~----~



Supported video formats

by Strawp » Wed, 11 Feb 2009 22:16:19 GMT


 Curiously, if I grab a MOV file from apple.com/trailers and put it on
my SD card it doesn't play in Android. Just flat out refuses.

I'm wondering if there's some error I'm making in how I actually start
the video, since there only seems to be 3rd party methods for loading
up a file. Maybe it's something simple like the Movie Player is
starting muted or something.





--~--~---------~--~----~------------~-------~--~----~



Supported video formats

by Dave Sparks » Thu, 12 Feb 2009 11:58:59 GMT


 oviePlayer doesn't have its own volume control. It uses the master
media volume. There is no mute except for the global "silent" mode.

We should be able to play .mov files, but we haven't done enough
compatibility testing to feel confident about it, so MOV files are
currently excluded from the media scan. If you want to give it a try,
rename the file to a .mp4 extension.

If you have a sample file that you can upload, log a bug and attach
the file, and I'll have someone here take a look at it.

On Feb 11, 6:16 am, Strawp <ikwall...@gmail.com> wrote:
--~--~---------~--~----~------------~-------~--~----~



Supported video formats

by Strawp » Thu, 12 Feb 2009 18:15:31 GMT


 K, I'll just give you ground-up description of what I'm trying to do.

This is my wiki: http://beebhack.wikia.com/

The contributors are a few developers who've worked out how to make
third party software for using BBC iPlayer. I've already written a
java class for pulling down the iPhone H.264 video and I'm intending
to wrap it with Android GUI and make it a proper app.

Before I do that I'm just testing whether I can actually play the
video that this thing grabs, so I've used get_iplayer and iplayer-dl
to grab test videos, put them on my SD card and play them. Changing
the extension to .mp4 means they recognise MoviePlayer as the right
app to play them instead of .mov but it doesn't make any difference to
the sound missing from playback.

Now, if you want to test what I've done you have an obstacle in that
the iPlayer content is GeoIP restricted to the UK and I imagine you're
in the US. You can get around that fairly easily to test it if you
want, but I'm not going to spell it out on here because the Beeb
deserve fair use really. For the same reason I'm not going to upload a
test file online.

So, if you've managed to navigate that maze of clauses, gotten a
download app off the wiki and successfully downloaded a video off
iPlayer you'll be where I am at the moment. You can see how it's a bit
sticky though, right?

Cheers!

On Feb 12, 3:58am, Dave Sparks <davidspa...@android.com> wrote:
--~--~---------~--~----~------------~-------~--~----~



Supported video formats

by Strawp » Fri, 13 Feb 2009 23:54:14 GMT


 ondering if any details from mplayer would help. Here's the output
from mplayer when I start it from the console in verbose mode on an
example video:

Playing Wolverine__The_X-Men X-Calibre.mov.
get_path('sub/') -> '/home/iain/.mplayer/sub/'
[file] File size is 88817693 bytes
STREAM: [file] Wolverine__The_X-Men X-Calibre.mov
STREAM: Description: File
STREAM: Author: Albeu
STREAM: Comment: based on the code from ??? (probably Arpi)
Checking for YUV4MPEG2
ASF_check: not ASF guid!
Checking for NuppelVideo
Checking for REAL
Checking for SMJPEG
Searching demuxer type for filename Wolverine__The_X-Men X-Calibre.mov
ext: .mov
Trying demuxer 7 based on filename extension
Checking for MOV
ISO: File Type Major Brand: Original QuickTime
ISO: File Type Minor Version: 512
ISO: File Type Compatible Brand #0: qt
MOV: 'WIDE' chunk found!
MOV: Movie DATA found!
MOV: Movie header found!
MOV: Movie DATA found!
Quicktime/MOV file format detected.
MOV: Movie header (100 bytes): tscale=1000 dur=1362360
--------------
MOV: Track #0:
MOV: Track header!
tkhd len=84 ver=0 flags=0x0 id=1 dur=1362360 lay=0 vol=0
MOV: Media stream!
MOV: Media header!
MOV: Handler header: mhlr/vide () VideoHandler
MOV: Media info!
MOV: Video header!
MOV: Handler header: dhlr/url () DataHandler
MOV: unknown chunk: dinf 28
MOV: Sample info!
MOV: Description list! (cnt:1)
MOV: desc #0: avc1 (121 bytes)
MOV: Sample duration table! (1 blocks)
MOV: Syncing samples (keyframes) table! (367 entries) (ver:0,flags:
0)
MOV: Sample->Chunk mapping table! (1 blocks) (ver:0,flags:0)
MOV: Sample size table! (entries=34059 ss=0) (ver:0,flags:0)
MOV: Chunk offset table! (34059 chunks)
MOV track #0: 34059 chunks, 34059 samples
pts=34059 scale=25 time=1362.360
==> Found video stream: 0
MOV: AVC decoder configuration record atom (51)!
MOV: avcC version: 1
MOV: avcC profile: 66
MOV: avcC profile compatibility: 192
MOV: avcC level: 30
MOV: avcC nal length size: 4
MOV: avcC number of sequence param sets: 1
MOV: avcC sps 0 have length 28
MOV: avcC number of picture param sets: 1
MOV: avcC pps 0 have length 4
Image size: 480 x 272 (24 bpp)
Display size: 483 x 272
Fourcc: avc1 Codec: 'libx264'
--------------
MOV: Track #1:
MOV: Track header!
tkhd len=84 ver=0 flags=0x0 id=2 dur=1361920 lay=0 vol=256
MOV: Media stream!
MOV: Media header!
MOV: Handler header: mhlr/soun () SoundHandler
MOV: Media info!
MOV: Sound header!
MOV: Handler header: dhlr/url () DataHandler
MOV: unknown chunk: dinf 28
MOV: Sample info!
MOV: Description list! (cnt:1)
MOV: desc #0: mp4a (115 bytes)
MOV: Sample duration table! (1 blocks)
MOV: Sample->Chunk mapping table! (1 blocks) (ver:0,flags:0)
MOV: Sample size table! (entries=63840 ss=0) (ver:0,flags:0)
MOV: Chunk offset table! (63840 chunks)
MOV track #1: 63840 chunks, 63840 samples
pts=65372160 scale=48000 time=1361.920
==> Found audio stream: 1
Audio bits: 16 chans: 2 rate: 48000
Audio header: samp/pack=1024 bytes/pack=0 bytes/frame=0 bytes/samp=2
Audio extra header: len=79 fcc=0x77617665
MOV: Found MPEG4 audio Elementary Stream Descriptor atom (39)!
ESDS MPEG4 version: 0 flags: 0x000000
ESDS MPEG4 ES Descriptor (25Bytes):
-> ESId: 2
-> streamPriority: 0
ESDS MPEG4 Decoder Config Descriptor (17Bytes):
-> objectTypeId: 64
-> streamType: 0x15
-> bufferSiz



Supported video formats

by Dave Sparks » Sat, 14 Feb 2009 05:56:28 GMT


  wonder if the problem is the 48KHz sample rate. I'm pretty sure we
test it for MP3 playback, but I'm not sure that we have any test
material for MP4 files.

I'll ask someone to look into that.

On Feb 13, 7:50 am, Strawp <ikwall...@gmail.com> wrote:
--~--~---------~--~----~------------~-------~--~----~



Supported video formats

by elcadar » Sun, 01 Mar 2009 08:06:24 GMT


 Can you explain what hardware component of the G1 is providing h.264
acceleration? Are you saying there is a co-processor or that there is
support in silicon on the 7201 chip or one of the DSP's? Judging by
the h.264 performance, I didn't think it had h/w/ acceleration.





--~--~---------~--~----~------------~-------~--~----~



Supported video formats

by Dave Sparks » Sun, 01 Mar 2009 19:47:07 GMT


 The DSP is handling video decode.





--~--~---------~--~----~------------~-------~--~----~



Supported video formats

by Eric » Tue, 03 Mar 2009 02:52:36 GMT


 What profile and level is supported for H.264 video? It is basically
meaningless to say you have or support H.264 if you do not specify the
associated profiles and levels for video given the scope of the H.264
standard. The same is true for audio - which of the three AAC formats
is supported - profile and level?

Are these profiles and levels the same for all playback situations, or
do you support only lower levels for streaming situations?

As a quick background for those less familiar with modern standards
for video and audio encoding: Profile is a specification of the
complexity of the data stream (essentially describing the kind of
techniques that may be used to compress the video, you will need more
hardware or more complex codecs to decode higher profiles) while level
indicates the parameters controlling the encoding/decoding - thing
such as size of the video frame, etc. Level basically also indicates
the maximum bit rate of the data.


--~--~---------~--~----~------------~-------~--~----~



Other Threads

1. Fwd: Adding a new package to the source

Hello all,

I am also trying the same thing and getting same error. Can anyone
please provide the solution to this problem?

Anu


---------- Forwarded message ----------
From: Wick <twick...@gmail.com>
Date: Feb 11 2009, 10:37am
Subject: Adding a new package to the source
To: Android Beginners


I'm working with the android source and trying to add a newpackage,
'test.package', which holds a class 'Test'. Everything works fine and
thepackageis built with the rest of the source (I can also build
using 'Make Test'), but if I attempt to import the class (using
'import test.package.Test' within any otherpackageI get the error
'packagetest.packagedoes not exist'. I added the directory holding
thepackageto main.mk to get it to build, do I need to declare
thepackageanywhere else to let android know it exists?

-- 

2. Trackball Light

Hi all,

I am currently looking at developing an application for the android
environment. Before starting on my project I have been looking at the
android developeres guide and going through the different things that
I want to get working.

I have been looking at making notifications in the notification bar
and I have two queries regarding this.

The first question is I would like to make the trackball on my phone
(HTC Hero) and any other phone with a trackball flash when the
notification appears.

I tried adding the line notification.defaults |=
Notification.DEFAULT_LIGHTS; but this appears to only flash the small
LED at the top of the phone and not the trackball. How would I go
about flashing the trackball instead.

Also the second question is about making and changing the icon of the
notification. I have set up a drawable object and given it a HEX value
to give me a rectangular block of colour, but this looks pointless and
un-professional so instead want to have a proper icon. How would I go
about changing this as I can't seem to find anything about this.

Thanks for your help in this matter.

-- 

3. I need javax.microedition.io in android, what can I do ?

4. Help required on Eclair Video Camera framework

5. Free Push Notification Service for Android

6. Problem with ContextMenu

7. getDuration() in VideoView returns -1 !!!