2010-11-21 11 views
14

Tôi đang sử dụng Adobe Media Encoder CS5 để mã hóa tệp FLV thành H.264 để hiển thị trên web qua HTML5 và tệp video phát rất tốt Safari trong OS X (và trong Firefox được mã hóa thành OGG) nhưng trên bất kỳ thiết bị iOS nào (iPad, iPhone), tôi nhận được biểu tượng phát có dấu gạch chéo chạy qua nó.MP4 mã hóa H.264 được trình bày trong HTML5 phát trên Safari nhưng không phải là thiết bị iOS

Có ai gặp phải điều này trước đây và nếu có, có ý tưởng nào về lý do không?

Cảm ơn.

+0

Bạn đã đọc bài viết này: [hướng dẫn phân phối trình duyệt qua video html5 bao gồm cả ipad] (http://www.robwalshonline.com/posts/tutorial-serving-html5-video-cross-browser-including-ipad/)? –

Trả lời

5

Tôi biết điều này có câu trả lời được đánh dấu, nhưng chúng tôi có cùng một vấn đề chính xác.

Sự cố đã kết thúc là cài đặt trên mạng nội bộ của chúng tôi.

Sau khi bật bảng điều khiển safari trên iPad, chúng tôi thấy rằng khi cố gắng tải video, chúng tôi đã nhận được một "byte_range_error_message" đang được ghi lại. Có vẻ như các thiết bị di động yêu cầu nội dung này khác với các thiết bị máy tính để bàn, bằng cách yêu cầu một số byte nhất định tại một thời điểm. Chúng tôi đã phát hiện ra rằng video phát ra tốt khi điện thoại sử dụng mạng 3G của họ, nhưng không phải khi họ tải video qua wifi nội bộ. Rất nhiều nghiên cứu sau đó đã dẫn chúng tôi đến bài viết MSDN này: http://support.microsoft.com/kb/922330

Giải thích cách tìm cài đặt trong tường lửa của chúng tôi để cho phép thiết bị yêu cầu video đúng cách. Chúng tôi cũng tìm thấy một thiết lập tương tự trên một trong các bộ định tuyến D-Link của chúng tôi cho một mạng wifi riêng biệt cũng có vấn đề.

+0

Ý tưởng/câu trả lời thay thế luôn được chào đón. –

21

Chúng tôi đã gặp sự cố này và nhận thấy rằng mã hóa các tệp theo tiêu chuẩn của chế độ xem web trên iPhone đã tạo các tệp có hiệu lực.

Không phải tất cả các tệp Mp4 được mã hóa H.264 đều được iPhone hỗ trợ (hoặc Chrome cho vấn đề đó) và sự khác biệt nhỏ trong quá trình mã hóa có thể tạo ra các video không hoạt động. Ngay cả khi các cài đặt mã hóa tương tự EXACT đã được sử dụng, H.264 là bộ mã hóa tốc độ bit thay đổi, vì vậy các video khác nhau có thể vượt quá giới hạn tốc độ bit, khiến một số hoạt động khác và không hoạt động.

Các thiết lập mã hóa mà đã thành công đối với chúng tôi là:

  • Chỉ sử dụng H.264 Baseline Profile Cấp 3,0
  • Nghị quyết dưới 640 x 480 và tốc độ khung hình lên đến 30 fps
  • khung B không được hỗ trợ trong cấu hình cơ sở.
  • giới hạn tốc độ bit là 900kb.

Đây là số reference mà chúng tôi đã sử dụng để đến các cài đặt đó.

+2

Đến nay câu trả lời tốt nhất! – bcm

+0

Đối với người dùng sau khi hiệu ứng: bạn có thể tìm thấy mức h.264 trong cài đặt mô-đun đầu ra/Tùy chọn định dạng/Video - Cấp – FireStream

+0

KHÔNG BAO GIỜ sử dụng tùy chọn mã hóa "Khởi động nhanh" (trong Handbrake, nó được gọi là "Tối ưu hóa web"). sẽ không phát trên thiết bị iOS. Để biết chi tiết, hãy xem http://stackoverflow.com/a/24076523/1066234 –