Android视频格式

时间:2013-05-08 03:20:36

标签: android video h.264

我们想要创建一个可以在所有Android设备上播放的视频。 我们应该如何指定视频的格式,以便它可以在几乎所有的Android设备上播放?

我们正在与之合作的制作公司提出:

Container = QuickTime Movie
Frame Size = 1280 x 720
Frame Rate = 30 fps
Codec = ProRes HQ (if alpha channel is needed, use ProRes 4444) 
Audio = PCM - 48khz, 16bit (if needed)

认为是完全错误的。他们显然对Android一无所知,只是提出了一些适用于iOS的东西。 .Mov文件根本不在Android上播放。

我认为这是通用格式,具体包括“将在Android上播放”:

container format = .mp4 (MPEG4) 
codec =  "H.263", 
audio codec = AAC-LC

在Android上拥有视频实践经验的人能否就此提供指导?谢谢, 彼得

2 个答案:

答案 0 :(得分:1)

1280 * 720是任何Android设备的一个大分辨率,它不会在所有设备上工作...我使用640 * 480,它在我将检查的所有设备中工作.. 这是我的代码

this.mediaRecorder = new MediaRecorder();     this.mediaRecorder.setCamera(this.camera);

this.mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
this.mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
this.mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);


this.mediaRecorder.setMaxDuration(10000);


this.mediaRecorder.setOutputFile(this.initFile().getAbsolutePath());
this.mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
this.mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
 this.mediaRecorder.setVideoSize(640,480); 
 this.mediaRecorder.setVideoFrameRate(12); 





try {
    this.mediaRecorder.setPreviewDisplay(this.cameraPreview.getHolder().getSurface());
    this.mediaRecorder.prepare();




    // start the actual recording
    // throws IllegalStateException if not prepared
    this.mediaRecorder.start();
    Toast.makeText(this, R.string.recording, Toast.LENGTH_SHORT).show();
    // enable the stop button by indicating that we are recording
    this.toggleButtons(true);
} catch (Exception e) {
    Log.wtf(TAG, "Failed to prepare MediaRecorder", e);
    Toast.makeText(this,"record nathi thatu...", Toast.LENGTH_SHORT).show();
    this.releaseMediaRecorder();
}

}

答案 1 :(得分:1)

有很多细节herehere

摘要:

  • H.264 Baseline Profile,480 x 360 px,30 fps,500 Kbps
  • AAC-LC,立体声,128 Kbps