• Thứ Ba, 07/09/2010 13:45 (GMT+7)

    HTML5, VP8, WebM và web video

    Phương Uyên
    Video đang trở thành một thế lực thật sự trên Internet, và có một thế lực mới thách thức vị thế của Flash (hiện chiếm trên 75% video trên web).

    Hầu như không người dùng web nào không biết YouTube – website khởi xướng đưa video lên web (ra mắt khoảng giữa năm 2005). Video đã dần trở nên phổ biến trên Internet và là một phần tất yếu của web.


    Trình phát HTML5 video có thể chạy trên iPhone và iPad (http://jilion.com/sublime/video)
    Nhưng trước HTML5 (xem thêm bài viết về HTML5 trên ID:A1001_88), không có một “cú pháp chuẩn” để nhúng video vào trang web. Hầu hết video bạn thấy trên web đều được hiển thị nhờ “plug-in” – thư viện bổ sung trình duyệt, đó có thể là QuickTime, RealPlayer hay Flash (video trên YouTube dùng Flash). Các plug-in này tích hợp với trình duyệt tốt đến nỗi người dùng hầu như không nhận biết, cho đến khi xuất hiện sản phẩm "đình đám" iPad không hỗ trợ Flash – một plug-in đang "thống trị" trên 98% máy tính toàn cầu…

    Video có sẵn của web

    Có lẽ, <video> là một trong những thẻ lệnh mới của HTML5 được quan tâm nhiều nhất. Tương tự thẻ <img> (dùng cho hình ảnh), <video> cho phép hiển thị video trong trình duyệt (browser) mà không cần đến thư viện bổ sung. 

    Không như Flash “biệt lập” thường khó trao đổi dữ liệu với thành phần web khác và gây khó khăn cho các cỗ máy tìm kiếm, nội dung video hiển thị với HTML5 là một thành phần web nên dễ “nói chuyện” với các thành phần web khác hay với các dịch vụ web. Hứa hẹn trong tương lai gần, video trong HTML5 sẽ có những tính năng hấp dẫn như tìm kiếm, trao đổi qua thoại, phụ đề tự động…
    Khác <img>, một thẻ <video> có thể khai báo một hay nhiều tập tin (file) video để trình duyệt chọn hiển thị tùy thuộc định dạng video và codec hỗ trợ. HTML5 không giới hạn định dạng video và codec.

    Ví dụ:

    Trình duyệt hỗ trợ thẻ <video>

    <video width="320" height="240" controls>
    <source src="pr6.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
    <source src="pr6.webm" type='video/webm; codecs="vp8, vorbis"'>
    <source src="pr6.ogv" type='video/ogg; codecs="theora, vorbis"'>
    </video>

    Tuy nhiên thẻ <video> chỉ là một phần của câu chuyện.

    Một chút kiến thức cơ bản. Khi nói “xem video”, người ta hàm ý sự kết hợp hình và tiếng. Nhưng bạn chỉ cần có 1 file video chứ không phải 2 file riêng biệt. Đó có thể là “file AVI” hay “file MP4”. Thật sự, “AVI” hay “MP4” chỉ là các “định dạng chứa”. Tương tự, file ZIP hay RAR có thể chứa file bất kỳ bên trong nó, định dạng chứa video xác định cách thức lưu dữ liệu liên quan đến hình và tiếng. 

    Định dạng và codec
    FLV là định dạng chứa Flash Video dùng codec H.263. Ngoài ra còn có Flash VP6 dùng codec VP6. Codec H.264 được sử dụng trong nhiều định dạng khác nhau (.flv, .mp4, .mov) và trên các thiết bị di động của Apple dùng trình duyệt hỗ trợ HTML5. Microsoft công bố IE sẽ hỗ trợ HTML5 với codec mặc định là H.264. Chưa rõ cuộc chiến định dạng sẽ được hoá giải hoặc càng khốc liệt với WebM và VP8 của Google.

    Một file video thường có nhiều "đường" (track) – một đường hình (video, không có âm thanh) và một hay nhiều đường tiếng (audio, không có hình). Các đường hình và tiếng gắn với nhau. Mỗi đường có kèm "siêu dữ liệu", như tỉ lệ khung hình kèm đường hình hay ngôn ngữ kèm đường tiếng. File chứa cũng có "siêu dữ liệu", như tựa đề video, ảnh bìa, số tập phim…

    Hiện có rất nhiều định dạng chứa video, có thể kể một số định dạng phổ biến như: MPEG 4 (.mp4 hay .m4v), Audio Video Interleave (.avi), QuickTime (.mov), Flash Video (.flv), Matroska (.mkv)…

    Khi bạn xem video, trình phát video (video player) làm nhiều việc đồng thời:

    1. “Đọc hiểu” định dạng file chứa để tìm các đường hình và tiếng.

    2. Giải mã dữ liệu hình và hiển thị trên màn hình 

    3. Giải mã dữ liệu tiếng và gửi ra loa.

    Video codec (kết hợp của từ “coder” và “decoder”) là thuật toán mã hóa và giải mã dữ liệu hình. Hiện có rất nhiều loại video codec, nổi bật trong số đó là H.264 (còn được gọi là “MPEG-4 part 10” hay “MPEG-4 Advanced Video Coding”), Theora (dựa trên VP3) và VP8.

    Định dạng búp bê Nga

    Matroska là tên tiếng Anh có gốc từ tiếng Nga chỉ loại búp bê có chứa búp bê khác bên trong. Định dạng Matroska Multimedia Container có thể chứa không giới hạn số lượng đường hình (video), tiếng (audio) và phụ đề (subtitle) trong một file duy nhất. Kiểu file Matroska là .mkv cho video (có cả audio và phụ đề), .mka cho audio và .mks cho phụ đề. 

    Điểm khác biệt của định dạng Matroska với các định dạng khác ở chỗ nó có thiết kế linh hoạt và dễ mở rộng, đó là nhờ sử dụng ngôn ngữ EBML (Extensible Binary Meta Language) cho phép bổ sung codec bất kỳ (hiện tại và tương lai) mà không phá vỡ tính tương thích. 

    Có thể chứa nhiều loại codec như H.264, VC-1, Theora, AAC, AC3, Vorbis… Matroska hiện là định dạng lý tưởng để chứa video chất lượng cao. Đây là chuẩn mở và không tính phí sử dụng.

    Vấn đề là không có một tổ hợp định dạng video + codec nào hiện nay làm việc được với mọi trình duyệt. Internet Explorer (IE) và Safari ủng hộ H.264 (thuộc sở hữu của MPEG-LA) – codec tốt nhất hiện nay, nhưng phí sử dụng cao (có thể lên đến 5 triệu USD mỗi năm); Firefox và Opera hậu thuẫn Theora – một codec nguồn mở “sơ khai” (Theora không còn được phát triển từ năm 2004, nhưng có các bản cập nhật 1.0 tháng 11/2008 và 1.1 tháng 9/2009). Cá biệt chỉ có trình duyệt Chrome hỗ trợ cả H.264 và Theora.

    Sự chia rẽ này gây khó khăn cho việc "chinh phục" video trên web của HTML5. Và VP8 được cho là chìa khóa giải quyết vấn đề.

    Codec mới, tốt và miễn phí

    Thị phần codec

    VP8 là video codec mới nhất và sau cùng được On2 Technologies phát triển. Những codec nổi tiếng được On2 phát triển gồm VP3 (tiền thân của Theora), VP6 (Adobe sử dụng cho Flash Player 8 và các phiên bản sau), VP7 (Skype sử dụng).

    On2 đã mở mã nguồn VP3 cách đây nhiều năm, nhưng đây là codec “sơ khai”, giống như H.263, không thể cạnh tranh với H.264.

    Ra mắt năm 2003, VP7 được đánh giá cao hơn các bộ mã hóa H.264 thời đó. Lý do không phải vì VP7 tốt hơn H.264 mà vì H.264 chỉ mới hoàn tất đặc tả kỹ thuật. Tuy nhiên VP7 không thâm nhập được thị trường do ‘kín cửa’. Nhiều năm qua, On2 không hề cập nhật VP7 và các bộ mã hóa H.264 mới như x264 qua mặt. 

    VP8 được giới thiệu là “VP7 cải tiến” (chủ yếu cải thiện tốc độ giải mã bằng phần mềm). Về kỹ thuật, VP8 cho chất lượng tương đương H.264 và có nhiều tiềm năng phát triển. 

    Đầu năm 2010 Google mua lại On2 và công khai đặc tả kỹ thuật VP8 cùng với mã nguồn mã hóa và giải mã. Sau đó, ngày 19/5, Goolge "mở" luôn bản quyền VP8 và miễn phí sử dụng.
     

    Mới, tốt và miễn phí, VP8 có khả năng làm thay đổi cục diện thị phần codec.

    Định dạng thay FLV

    Cùng ngày 19/5, Google công bố định dạng video mới với tên gọi WebM, một phần của dự án nguồn mở WebM (www.webmproject.org). 

    WebM, viết tắt của “Web Media”, là định dạng chứa biến thể của Matroska (xem “Định dạng búp bê Nga”) được thiết kế tối ưu cho việc truyền phát video qua giao thức HTTP. 

    Trình duyệt hỗ trợ thẻ <video>
    WebM chỉ chứa video mã hóa theo VP8 và audio mã hóa theo Vorbis (mặc dù về mặt kỹ thuật không hạn chế). Lý do của việc này nhằm đảm bảo người dùng luôn xem được file WebM (đuôi “.webm”) mà không cần cài đặt thêm bất kỳ codec nào khác - vấn đề mà các định dạng như AVI đang gặp phải (file AVI có thể dùng nhiều loại codec khác nhau như DivX, Xvid, H.264...)
     

    WebM dùng DocType “webm” (Matroska dùng DocType “matroska”). Định dạng này sẽ được các trình duyệt phổ biến như IE, Firefox, Chrome, Opera hỗ trợ trong phiên bản sắp tới. Adobe cũng thông báo sẽ hỗ trợ WebM trong phiên bản Flash kế tiếp.  

    Nhằm thử nghiệm HTML5, theo Google, từ 19/5, tất cả video đưa lên YouTube có độ phân giải từ 720p trở lên sẽ được mã hoá theo định dạng WebM. Đây là bước đi quan trọng hứa hẹn mở ra thế hệ web video mới như YouTube đã từng làm với Flash Video.

    Nhưng câu chuyện chưa kết thúc. Thế lực mạnh nhất hiện nay thúc đẩy việc áp dụng tính năng video của HTML5 là các thiết bị di động của Apple. Các thiết bị này nói không với Flash nhưng chưa “gật” với VP8 và WebM.

    Flash, thời oanh liệt có còn? 

    Tiền thân của Flash là SmartSketch, một ứng dụng vẽ hình cho máy tính dùng bút chạy hệ điều hành PenPoint. PenPoint thất bại, SmartSketch được chuyển sang chạy trên Microsoft Windows và Mac OS. Internet phát triển, SmartSketch được chuyển thành ứng dụng ảnh vectơ động trên web, cạnh tranh với Macromedia Shockwave. Năm 1995, SmartSketch được bổ sung các tính năng ảnh động theo khung hình và được phát hành với tên FutureSplash Animator chạy trên nhiều nền tảng. Năm 1996, Adobe mua lại FutureSplash và đổi tên thành Flash rút gọn từ “Future” và “Splash”.

    Lúc đó, Flash là lựa chọn duy nhất có khả năng xử lý đồ họa vectơ động và có tính tương tác (Flash có khả năng nhận thông tin qua chuột, bàn phím, micro và có ngôn ngữ lập trình hướng đối tượng gọi là ActionScript), hỗ trợ các chuẩn mở như H.263 và MP3, có định dạng chứa đơn giản (FLV) dễ thao tác và làm việc tốt hơn bất kỳ định dạng nào khác. 

    File Flash có thể hiển thị trên nhiều hệ điều hành máy tính và nhiều loại thiết bị, dùng thư viện Flash Player được cung cấp miễn phí cho các trình duyệt thông dụng (một số thiết bị di động dùng Flash Lite).

    Flash trở nên phổ biến nhờ sự đa năng và linh hoạt. Ước tính trên 98% máy tính toàn cầu cài đặt Flash Player, 75% video trên web dùng định dạng Flash. Và rồi Flash (Adobe) ngủ quên trên chiến thắng, chậm cải tiến. Đã có nhiều lời than phiền về codec lạc hậu, ngốn tài nguyên hệ thống, bảo mật lỏng lẽo của Flash, và gần đây cao trào với việc iPad - máy tính bảng "đình đám" mới ra mắt của Apple không hỗ trợ Flash. 

    Giờ đây người ta bắt đầu nói đến HTML5 như giải pháp thay thế Flash. Những gì Flash làm được thì HTM5 hứa hẹn cũng làm được. Cần kiểm chứng? Bạn hãy dùng thử 5 mẫu ứng dụng HTML5 đặc sắc tại http://www.designer-daily.com/5-awesome-html5-demos-6715.

    Giờ Flash mới giật mình, vội vàng cập nhật codec và hứa hẹn hỗ trợ định dạng video mới, đưa ra Flash Player (phiên bản 10.1 mới được đưa ra trong tháng 6/2010) chạy tốt cả trên máy tính lẫn điện thoại di động. 

    HTML5 còn mới, nhiều site tên tuổi cung cấp video Internet vẫn đang dùng Flash. Trước mắt vị trí hàng đầu của Flash chưa bị ảnh hưởng. Nhưng tương lai hứa hẹn sẽ có sự tranh tranh thực sự.

     

    Từ khóa: Phương Uyên
    ID: A1007_70