Tôi đang phát triển một trang web ống và hiện đang gặp sự cố với định dạng H.264. Tôi nhận thấy rằng YouTube đã đưa các video hi-def của họ vào một thùng chứa MP4, vì vậy về mặt logic, tôi cũng làm như vậy.
Tiếp theo, tôi đã cài đặt mod_h264_streaming
cho lighttpd để thực hiện công việc truyền phát và quét dòng thời gian.
Vấn đề là các tệp lớn (> 500MB ở độ phân giải hơi cao) sẽ mất mãi mãi để bắt đầu đệm (Tôi đọc rằng Flowplayer và các trình phát Flash khác cần tải xuống siêu dữ liệu trước). Tôi đã di chuyển nguyên tử xmov ra phía trước tệp bằng MP4Box (Tôi cũng đã thử Qt QuickStart), nhưng điều đó không có ích.
Tiếp theo, tôi đọc rằng tôi cần xen kẽ các bản âm thanh, vì vậy tôi cũng đã làm điều đó. Điều này gây ra không có thay đổi: các video vẫn chậm.
Vì vậy, tôi đã thử đưa bộ phim H.264 chính xác vào một thùng chứa FLV và bộ đệm phát lại bắt đầu gần như ngay lập tức - không bị chậm.
Vậy tôi còn thiếu gì ở đây? Tại sao tôi lại chọn bộ chứa MP4 với mô-đun mod_264_streaming
, có vẻ siêu chậm, trên bộ chứa FLV thông thường có tích hợp của lighttpd mod_flv_streaming
? Rõ ràng, nhiều trang web chọn container MP4, nhưng tôi không hiểu tại sao.
Và như một câu hỏi phụ, tôi đã thử sử dụng <video>
thẻ HTML5 để thử cùng một bộ phim MP4 H.264 và quá trình cọ rửa rất nhanh ! Tôi đã xem xét tệp nhật ký của lighttpd và tôi nhận thấy rằng các trình phát Flash video.mp4?start=234
sẽ xuất hiện mỗi khi dòng thời gian được xóa, trong khi các trình duyệt sử dụng <video>
thẻ HTML5 gốc không làm như vậy. Đây có phải là một số hạn chế của Flash? Tại sao Flash streaming không thể nhanh như phát trực tuyến HTML5?