2014-10-03 9 views
16

Tôi đang làm việc trên dự án chia sẻ video và tự hỏi điều gì xảy ra nếu có định dạng video tương thích với hầu hết người chơi trên Web, Android & iOS.Tôi nên chọn định dạng video như thế nào trên Web, Android và iOS?

Ứng dụng sẽ làm việc như thế này:

  1. người dùng có thể lấy video từ các thiết bị di động (iOS và Android)
  2. những người dùng khác có thể chơi video trên thiết bị di động (iOS và Android) và các trình duyệt web.

Tôi không quen với các định dạng video khác nhau. Tôi nhận thấy rằng .mov và .mp4 được sử dụng trong iOS. Nhưng tôi cho rằng .mov không thể được phát trên Android và các trình duyệt web ngoại trừ Safari? Bất cứ ai có thể đưa ra một gợi ý?

Trả lời

36

Từ 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+) 

Mặt khác, từ iOS Developer Library - Media Layer,

iOS hỗ trợ nhiều định dạng video chuẩn công nghiệp và tiêu chuẩn nén, bao gồm:

  • Video H.264, tối đa 1,5 Mb/giây, 640 x 480 pixel, 30 khung hình/giây, Thấp Phiên bản đa phương tiện của Cấu hình cơ sở H.264 với âm thanh AAC-LC lên tới 160 Kb/giây, 48 kHz, âm thanh nổi ở định dạng tệp .m4v, .mp4 và .mov

  • Video H.264, tối đa 768 Kbps, 320 x 240 pixel, 30 khung hình/giây, Cấu hình cơ bản lên tới cấp 1,3 với âm thanh AAC-LC lên tới 160 Kb/giây, 48 kHz, âm thanh nổi ở định dạng .m4v, .mp4 và .mov

  • Video MPEG-4, tối đa 2,5 Mb/giây, 640 x 480 pixel, 30 khung hình/giây, Cấu hình đơn giản với âm thanh AAC-LC lên tới 160 Kb/giây, 48 kHz, âm thanh nổi ở định dạng .m4v, .mp4 và .mov

  • Nhiều định dạng âm thanh, bao gồm các định dạng được liệt kê trong Audio Technologies

Ngoài ra, từ MDN - Media formats supported by the HTML audio and video elements (<video> thẻ trong HTML5),

  • <video>: VP8 và Vorbis trong WebM
  • <video>: VP9 và Opus trong WebM
  • <video> : Truyền trực tuyến VP9 và Opus/VP8 và Opus trong WebM qua Media S ource Extensions (MSE)
  • <video>: Theora và Vorbis trong Ogg
  • <video>: H.264 và MP3 trong MP4
  • <video>: H.264 và AAC trong MP4

Từ tất cả dữ liệu, có vẻ như .mp4 (để được chính xác, video H.264, âm thanh AAC, ở định dạng MPEG-4) là sự lựa chọn ở đây, vì nó được hỗ trợ trong tất cả các nền tảng (iOS, Android, trình duyệt web). Tuy nhiên, hãy lưu ý rằng bạn vẫn phải kiểm tra các vấn đề tương thích trên mỗi nền tảng (phiên bản Android khác nhau, trình duyệt web khác nhau), được giải thích trên từng trang web.

+0

nơi bạn có thể tìm thấy giải pháp toàn cầu? – Amanni

+0

hi .. tôi cho rằng hiện không có bộ mã hóa nào cho HEVC trên Android. Điều đó có nghĩa là người ta không thể mã hóa bằng HEVC. Chỉ có bộ giải mã khả dụng. Vui lòng sửa tôi nếu tôi sai @Andrew T –

1

Thêm thông tin khác từ câu trả lời của Andrew T.

Để thiết lập các thông số từ kết luận của 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); 

Hy vọng nó giúp ... !!!

Các vấn đề liên quan