《Pro Android Graphics》读书笔记之第二节
Android Digital Video: Formats, Concepts and Optimization
Android Digital Video Formats: MPEG4 H.264 and WebM VP8
H.263 支持老显示器MPEG4 SP
supported for commercial video(支持商业视频)
3GP
Google在2.3.3中加入对WebM的支持
video Stream 4.0以后版本
recommend using MPEG-4 H.264 AVC
WebM 直播流
Android VideoView and MediaPlayer Class: Video Players
MediaPlayer:在包android.media中。
VideoView:在包android.widget中,direct subclass of the Android SurfaceView(具体介绍请参考书)。
The Foundation of Digital Video: Motion, Frames and FPS
pixels, resolution, aspect ratios, color depth, alpha channels, pixel blending, image compositing, and even data footprint optimization(类似于图片的概念)。
计算影片大小:每帧的大小*帧率*时间
Digital Video Conventions: Bit Rates, Streams, SD, and HD
Internet 2.0 IP infrastructure is 1536 kbits/second (1.5 MBPS, or megabits per second)。
A faster data pipe is at least 2048 kbits/s, or 2 mbits/s or 2 MBPS, and video compressed at this higher bit rate exhibits a higher visual quality level. More modern 4G networks claim to be between 3 and 6 mbits/s(3G networks deliver between 600 kbits/s and 1.5 mbits/s, so, on average, these will be 1.5 mbits/s and classified as a medium data pipe)。
Digital Video Files for Android: Resolution Density Targets
DPI:density pixel imagery
For digital video, this also includes different target bit rates, so that you can try to fit all of the different device screen densities and the different processing power capabilities of single-core through quad-core CPU product offerings。
Optimizing Digital Video: Codecs and Compression
decode codec
professional solution(专业解决方案(不到1000刀))
EditShare Lightworks 11(open source)
Creating Your Video Assets: Using Terragen 3 3D Software
Planetside
Creating Uncompressed Video: Using VirtualDub Software
VirtualDub Video(需要花费大量时间)
Compressing Your Video Assets: Using Sorenson Squeeze
从AVI到MP4(H264)(文中例子:压缩比达到120:1)
Installing a Video Asset in Android: Using the Raw Folder
Referencing the Video Asset in Your Android Application
Uri splashScreenUri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.pag480portrait); (VideoView)splashScreen.setVideoURI(splashScreenUri); MediaController splashScreenMediaController = new MediaController(this);