2011-06-21 11 views
7

Tôi có một số video được mã hóa H.264 hiển thị chính xác trong HTML5 trong trình duyệt web nhưng không hiển thị chính xác trên iPad. Khi tôi sử dụng video H.264 mà tôi đã tải xuống từ Internet, video của tôi hiển thị chính xác trên iPad, vì vậy đây không phải là vấn đề về HTML.iPad không hiển thị video H.264 với HTML5

Dưới đây là các thông tin về ffmpeg video của tôi -

của tôi ban đầu mov video:

Có vẻ dòng 1 bộ giải mã tốc độ khung hình khác với tỷ lệ khung hình container: 6000.00 (6000/1) -> 30,00 (30/1)

Input # 0, mov, mp4, m4a, 3gp, 3g2, mj2, từ 'a_video.mp4':

Metadata:

major_brand  : qt 
minor_version : 537199360 
compatible_brands: qt 

Thời gian: 00: 00: 42,74, hãy bắt đầu: 0,000000, bitrate: 220 kb/s

Stream #0.0(eng): Audio: aac, 44100 Hz, stereo, s16, 94 kb/s 
Stream #0.1(eng): Video: h264, yuv420p, 762x464, 122 kb/s, 30 fps, 30 tbr, 3k tbn, 6k tbc 

Sau khi sử dụng Handbrake để chuyển đổi mov của tôi đến một mp4, nhưng không hiển thị trên các iPad:

Có vẻ dòng tốc độ khung 0 giải mã khác với tỷ lệ khung hình container: 180000.00 (180000/1) -> 29,97 (30000/1001)

Input # 0, mov, mp4, m4a, 3gp, 3g2, mj2, từ 'a_video.m4v':

Metadata:

major_brand  : mp42 
minor_version : 0 
compatible_brands: mp42isomavc1 
encoder: HandBrake 0.9.5 2011010300 

Thời gian: 00: 00: 42,77, hãy bắt đầu: 0,000000, bitrate: 169 kb/s

Suối # 0.0 (und): Video: h264, yuv420p, 752x464 [ PAR 381: 376 DAR 381: 232], 35 kb/s, PAR 145161: 141376 DAR 145161: 87232, 29,97 fps, 29,97 tbr, 90k tbn, 180k tbc
Luồng # 0,1 (eng): Âm thanh: aac, 44100 Hz , âm thanh nổi, s16, 128 kb/s

Đây là một .mp4 Tôi tìm thấy trực tuyến mà không hiển thị trên iPad:

Có vẻ dòng tỷ lệ khung hình 1 bộ giải mã khác với tỷ lệ khung hình container: 180000.00 (180000/1) -> 25,00 (25/1)

Input # 0, mov, mp4, m4a, 3gp, 3g2, mj2, từ 'a_video_3_emu.mp4':

Metadata: major_brand: M4VP
minor_version: 1
compatible_brands: M4VPM4A mp42isom
encoder: CoreMediaAuthoring 677, CoreMedia 420,17, i38 6

Thời gian: 00: 01: 38.01, bắt đầu: 0,000000, bitrate: 1023 kb/s

Suối # 0.0 (und): Âm thanh: aac, 32000 Hz, mono, S16, 97 kb/s
Luồng số 0.1 (und): Video: h264, yuv420p, 480x360 [PAR 1: 1 DAR 4: 3], 914 kb/s, 25 fps, 25 TBR, 90k TBN, 180k tbc

Có ai nhìn thấy một cái gì đó sai với cách tôi mã hóa video của mình?

Sửa

Lúc đầu lý thuyết của tôi là iPad là nhạy cảm với các định dạng container khác nhau; nhưng dường như không phải như vậy. Tôi đã quay một video có hiển thị chính xác trên iPad và chuyển đổi nó thành một .mov, và nó vẫn còn phát chính xác trên iPad. Vì vậy, phải có một vấn đề với cách iPad đối phó với luồng H.264 cơ bản.

+0

Mp4 có hoạt động khi xem trang trên trình duyệt trên máy tính để bàn không? – Niklas

+0

Có. Điều này chỉ xảy ra trên iPad. Nó có một cái gì đó để làm với mp4 vs m4v. – jgoldberg

+0

Tôi vừa chạy lệnh này trên video đã hiển thị trên iPad: ffmpeg -i a_video_3_emu.mp4 -acodec copy -vcodec mpeg4 output.mp4. output.mp4 vẫn làm việc trên iPad. Có vẻ như đó có thể không phải là vấn đề về vùng chứa nhưng luồng cơ bản. – jgoldberg

Trả lời

3

Nếu bạn có luồng video H.264 - bất kể vùng chứa (mov, m4v, mp4) - và video HTML5 của bạn hiển thị trong trình duyệt web nhưng không hiển thị trên iPad, có hai khả năng sửa lỗi:

Giải pháp đầu tiên là chuyển đổi luồng video H.264 thành mpeg4.

ffmpeg -i video_h264_not_working.mov -acodec copy -vcodec mpeg4 video_mpeg.mov

(Ngoài ra, bạn có thể chọn MPEG4 H.264 thay vì trong Handbrake.)

Giải pháp thứ hai là để tái chế video H.264 với các thông số sau:

ffmpeg -i video_h264_not_working.mov -vcodec libx264 -r 25 -b 516k -bt 516k -crf 22 -vpre normal video_h264.mov

giải pháp thứ hai đến từ: http://houseoflaudanum.com/navigate/howtos/html5-video-no-webm/

Tôi đoán trong trường hợp trước, codec mpeg4 thoải mái hơn trên iPad; và trong trường hợp sau, iPad không thích một số thông số luồng từ mã hóa H.264 gốc, do đó, việc "dọn dẹp" là cần thiết.

Để xác định xem luồng video của bạn thực sự là gì, chỉ cần thực hiện ffmpeg -i myvideo.mov.

1

Tôi đã mã hóa thành công thành công và chuyển mã HTML5 video bằng cách sử dụng miễn phí Miro Video Converter (OS X, Windows) như được đề xuất trong Video on the Web section of Dive Into HTML5 bởi Mark Pilgrim.

Trình chuyển đổi video Miro có thể chuyển đổi hầu như mọi tệp video thành MP4, Theora hoặc MP3 (chỉ âm thanh). Nó có cài đặt trước sẽ chuyển đổi video với kích thước và định dạng chính xác cho điện thoại phổ biến, iPod và các trình phát đa phương tiện khác. Chỉ cần chuyển đổi video của bạn và sao chép nó vào thiết bị của bạn.

Đó là một cách siêu đơn giản để chuyển đổi hầu hết mọi video thành MP4, WebM (vp8), Ogg Theora hoặc cho Android, iPhone và hơn thế nữa. Bạn sẽ cảm thấy thoải mái rằng nó hoàn toàn miễn phí và nguồn mở 100%.

Một tiện ích chuyển đổi video thực sự khác là Video Monkey, một ứng dụng mã hóa video miễn phí dành riêng cho Mac. Nó được tạo ra sau sự sụp đổ của công cụ tuyệt vời Visual Hub. Video Monkey mượn rất nhiều từ công cụ chuyển đổi video Visual Hub, cả về mặt khái niệm lẫn từ vùng mã gốc được đăng lên SourceForge dưới dạng TranscoderRedux.

+0

Tôi có cùng một vấn đề. Miro không hoạt động. Trong thực tế, khi tôi chuyển đổi .wmv thành .webm để sử dụng với Chrome, sự cố đó bị treo. (Để tham khảo: Handbrake và VLC cũng không hoạt động với iPad, nhưng cả hai đều có thể tạo ra các định dạng video khác nhau hoạt động với Chrome) – Bobby

0

sudo port install ffmpeg và thử nước sốt bí mật này:

#!/bin/bash 
BR=512k 
WIDTH=640 
HEIGHT=272 
input=${1} 

# strip off the file extension 
output=$(echo ${input} | sed 's/\..*//') 

# works for most videos 
ffmpeg -y -i ${input} -f mpegts -acodec libmp3lame -ar 48000 -ab 64k -s ${WIDTH}x${HEIGHT} -vcodec libx264 -b ${BR} -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -subq 7 -trellis 0 -refs 0 -coder 0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 200k -maxrate ${BR} -bufsize ${BR} -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 30 -qmax 51 -qdiff 4 -level 30 -aspect ${WIDTH}:${HEIGHT} -g 30 -async 2 ${output}-iphone.ts 

Điều chỉnh chiều rộng và chiều cao đối với video gốc và thiết lập bitrate như bạn thấy phù hợp. Chuyển video gốc làm tham số cho tập lệnh. Hoạt động với hầu hết mọi định dạng nguồn. Bạn cần macports cho lệnh cổng.