我正在制作一个视频分享项目,并想知道如果有一种视频格式与Web,Android和Android上的大多数播放器兼容,该怎么办?的iOS。
该应用程序将如下工作:
我不熟悉不同的视频格式。我注意到.mov和.mp4在iOS中使用。但我认为.mov不能在除Safari之外的Android和Web浏览器上播放?任何人都可以提示吗?
答案 0 :(得分:38)
来自Android Developer - Supported Media Formats,
Type | Format / | Supported File Type(s) /
| Codec | Container Formats
------+-----------+----------------------------------------------------------
Video | H.263 | 3GPP (.3gp)
| | MPEG-4 (.mp4)
+-----------+----------------------------------------------------------
| H.264 AVC | 3GPP (.3gp)
| | MPEG-4 (.mp4)
| | MPEG-TS (.ts, AAC audio only, not seekable, Android 3.0+)
+-----------+----------------------------------------------------------
| H.265 HEVC| MPEG-4 (.mp4, Android 5.0+)
+-----------+------------------------------------------------------
| MPEG-4 SP | 3GPP (.3gp)
+-----------+----------------------------------------------------------
| VP8 | WebM (.webm)
| | Matroska (.mkv, Android 4.0+)
+-----------+----------------------------------------------------------
| VP9 | WebM (.webm)
| | Matroska (.mkv, Android 4.0+)
另一方面,来自iOS Developer Library - Media Layer,
iOS支持许多行业标准视频格式和压缩标准,包括以下内容:
H.264视频,最高1.5 Mbps,640 x 480像素,每秒30帧,H.264基线配置文件的低复杂度版本,AAC-LC音频高达160 Kbps,48 kHz, .m4v,.mp4和.mov文件格式的立体声音频
H.264视频,高达768 Kbps,320 x 240像素,每秒30帧,基线配置文件高达1.3级,AAC-LC音频高达160 Kbps,48 kHz,立体声音频输入为.m4v ,.mp4和.mov文件格式
MPEG-4视频,高达2.5 Mbps,640 x 480像素,每秒30帧,简单配置文件,AAC-LC音频高达160 Kbps,48 kHz,立体声音频,.m4v,.mp4,和.mov文件格式
- 中列出的格式
多种音频格式,包括Audio Technologies
此外,来自MDN - Media formats supported by the HTML audio and video elements(HTML5中的<video>
标记),
<video>
:WebM中的VP8和Vorbis<video>
:WebM中的VP9和Opus<video>
:通过媒体源扩展程序(MSE)在WebM中流式传输VP9和Opus / VP8以及Opus<video>
:奥拉的Theora和Vorbis<video>
:MP4中的H.264和MP3<video>
:MP4中的H.264和AAC
从所有数据来看,似乎 .mp4 (确切地说, H.264视频,AAC音频,MPEG-4 )是这里的选择,因为它在所有平台(iOS,Android,网络浏览器)中都受支持。但是,请注意,您仍然需要检查每个平台(不同版本的Android,不同的Web浏览器)上的兼容性问题,这将在每个站点上进行说明。
答案 1 :(得分:1)
添加来自Andrew T.的更多信息。
根据Andrew的结论设置参数:
// To Set Audio Encoder: AAC
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
// To set Video Encoder: H264
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
// To set Output Video format: mp4
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
希望它有所帮助...... !!!