STDIO
Tìm kiếm gần đây
    • Nội dung
    • QR Code
    • 0
    • 0
    • Sao chép

    Tìm Hiểu Về WebM

    WebM là một loại định dạng video file mã nguồn mở, royalty-free, được thiết kế cho nền web, thay thế cho các định dạng video file tốn phí trước đây. Ngoài ra, bài viết cũng sẽ giới thiệu chương trình FFmpeg, chương trình hỗ trợ convert các định dạng video khác về WebM.

    Ẩn Danh

    18/07/2016
    27/08/2020
    6 phút đọc
    Tìm Hiểu Về WebM

    Công nghệ WebM

    Giới thiệu chung

    WebM là một định dạng file được thiết kế để phục vụ cho nền web. Một tập tin WebM bao gồm video stream sử dụng VP8/VP9 codec, audio stream sử dụng Vorbis hoặc Opus codec, và WebVTT để làm phụ đề. Cấu trúc tập tin WebM xây dựng dựa trên định dạng Matroska media container.

    VP8 và VP9 là gì?

    VP8 và VP9 là các công nghệ nén video mã nguồn mở, được phát triển bởi Google. Không như các công nghệ nén khác, VP8 và VP9 đều royalty-free, nghĩa là bạn không cần trả tiền bản quyền cho tác giả nếu sử dụng công nghệ đó.

    Vorbis và Opus là gì?

    Vorbis và Opus là các công nghệ nén audio mã nguồn mở, được phát triển bởi Xiph Foundation. Cũng như VP8/VP9, các công nghệ này hoàn toàn miễn phí.

    Ưu điểm sử dụng WebM

    • VP8/VP9 sử dụng CPU với hiệu suất cao, khi convert định dạng sang WebM kích thước file sẽ được giảm đáng kể nhưng vẫn đem lại các thước phim chất lượng tốt.
    • Thay thế cho định dạng GIF.
    • Quá trình chuyển đổi từ các định dạng video khác sang WebM rất dễ dàng, nhanh chóng bằng công cụ FFmpeg.
    • Bản quyền BSD.

    Phần mềm FFmpeg

    Giới thiệu chung

    FFmpeg là phần mềm cung cấp các thư viện xử lý dữ liệu đa phương tiện mã nguồn mở. FFmpeg có khả năng encode/decode nhiều loại định dạng video, audio khác nhau. Ngoài ra, FFmpeg còn hỗ trợ các tính năng chụp và quay màn hình, xử lý đồ hoạ cho video như cut, drop, frame capturing,…

    Cài đặt FFmpeg

    FFmpeg được phát triển trên hệ điều hành GNU/Linux. Tuy nhiên, FFmpeg vẫn có thể được compiled để sử dụng trên các HĐH thông dụng khác như Mac OS X, Microsoft Windows.
    Tải về FFmpeg: ffmpeg.org/download.html

    Linux

    Cài đặt với hệ điều hành Ubuntu-based:

    1. sudo add-apt-repository ppa:mc3man/trusty-media
    2. sudo apt-get update
    3. sudo apt-get dist-upgrade
    4. sudo apt-get install ffmpeg

    Windows

    1. Tải về chương trình Zeranoe FFmpeg: ffmpeg.zeranoe.com/builds/
    2. Chạy file ff-prompt.bat để gắn đường dẫn của ffmpeg.exe vào System Path.
    3. Vào Command Prompt, gọi ffmpeg –h để kiểm tra xem FFmpeg đã được cài đặt thành công hay chưa.

    Ngoài ra, nếu bạn muốn sử dụng GUI thay cho CLI, sau đây là các chương trình mã nguồn mở hỗ trợ giao diện cho FFmpeg:

    Sử dụng FFmpeg

    FFmpeg Command Line Options

    Sau đây là cú pháp sử dụng để convert một video về WebM:

    ffmpeg -i <source> -c:v libvpx -b:v 1000K –c:a libopus out.webm

    Với các tuỳ chọn:

    • -i: Chỉ định FFmpeg biết tập tin đầu vào cần convert.
    • -c:v libvpx: Chỉ định FFmpeg encode video bằng VP8.
    • -b:v 1000K: Chỉ định FFmpeg encode video với bitrate là 1000 kilobits.
    • -c:a libopus: Chỉ định FFmpeg encode audio bằng Opus.

    Các tuỳ chọn phổ biến khác như:

    • -threads: Chỉ định FFmpeg sử dụng multithreading. Nhập số lượng core để xử lý hoặc số 0 để sử dụng tất cả.
    • -an: Tắt audio. Sử dụng khi cần convert file *.gif sang *.webm, hoặc tạo video mà không cần audio.
    • -crf: Định giá trị CRF từ 4-63. Số càng thấp chất lượng càng cao, nên chọn từ số 10 trở xuống để được video tốt nhất.
    • -ss: Sử dụng tham số này khi muốn cắt video nhỏ từ một video lớn.
    • -t: Định tổng thời gian mà video cần cắt. Ví dụ muốn cắt một cảnh từ giây thứ 5 đến giây thứ 20 của một đoạn clip như sau: -ss 00:00:05 –t 00:00:15
    • -vf: Xây dựng bộ lọc trong quá trình encode, với cú pháp: -vf <filter>=<param>
    • scale: scale nhận 2 đối số phân cách bởi dấu hai chấm, chỉ định chiều rộng và dài của video. Chọn số -1 nếu cần FFmpeg scale video theo tỷ lệ của video gốc, ví dụ: -vf scale=640:-1.
    • -metadata: Thay đổi metadata của video, ví dụ nếu muốn thêm title vào metadata: -metadata title="STDIO ©".
    • Ngoài ra, còn có các tuỳ chọn nâng cao khác để hiệu chỉnh video theo yêu cầu mong muốn như 2-pass encoding, audio channel, tolerance, … có thể tham khảo tại các trang web nằm ở cuối bài.

    Sau đây là các video có sử dụng thư viện của FFmpeg, đây là đoạn phim gốc sử dụng H.264/AAC, kích thước 374.63 KB.

    Đây là phim được convert từ đoạn clip gốc VP8/Vorbis 224.97 KB: File small.webm

    Video sử dụng VP8 có kích thước nhỏ hơn H.264 40%, phù hợp để chia sẻ trên Internet.

    Ngoài ra, nếu cần yêu cầu FFmpeg convert video có kích thước lớn hoặc cần đảm bảo chất lượng cho video sau khi convert, tùy chỉnh các tùy chọn nâng cao phù hợp. Sau đây là một bộ phim hoạt hình mã nguồn mở được sử dụng làm ví dụ: Big Buck Bunny: bbb3d.renderfarming.net/download.html

    Chọn video Standard 2D – 480p HD – 24fps (MPEG-4/AC3) với kích thước 210 MB:

    MPEG-4/AC3
    Input Details

    Đây là video convert bằng FFmpeg trên Linux Mint, với tuỳ chọn sau:

    ffmpeg -i input.avi -c:v libvpx-vp9 -pass 1 -b:v 1000K -threads 8 -speed 4 \
    -tile-columns 6 -frame-parallel 1 \
    -an -f webm /dev/null && \
    ffmpeg -i input.avi -c:v libvpx-vp9 -pass 2 -b:v 1000K -threads 8 -speed 1 \
    -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 \
    -c:a libopus -b:a 64k -f webm out.webm

    Nếu sử dụng FFmpeg trên Windows thì thay "/dev/null" bằng "NUL".

    Đây là phương pháp 2-pass encoding, lần pass đầu tiên FFmpeg sẽ tạo một file log dạng "ffmpeg2pass-X.log" với "X" là số stream, và lần pass thứ 2 sẽ tạo file output "out.webm". Sau khi convert, thu được video VP9/Opus 73.5 MB:

    VP9/Opus
    VP9 Details

    Đây là video convert bằng WebM for Retards, với các tuỳ chọn như hình sau:

    WebM for Retards - Options

    Thu được video VP8/Vorbis 145 MB:

    VP8/Vorbis
    VP8 Details

    Như vậy, sử dụng WebM sẽ giảm đáng kể bộ nhớ, đồng thời sử dụng ít chi phí cho rendering, thuận tiện cho ta đặt video vào website.

    WebM trên HTML5

    Trước đây, khi muốn chèn video vào Web cần các plugin như Silverlight, Adobe Flash hỗ trợ cho người dùng chạy video. Tuy nhiên, việc sử dụng phần mềm bên thứ ba rất nguy hiểm do kẻ xấu có thể lợi dụng lỗ hổng bảo mật của phần mềm để ăn cắp thông tin người dùng. Vì vậy, HTML5 video player là giải pháp thay thế cho các phần mềm đó.

    Cách chèn WebM vào trang web bằng HTML <video>:

    <video controls>
        <source src="video.webm" type="video/webm" />
        <source src="video.mp4" type="video/mp4" />
    </video>
    

    Các trình duyệt hiện nay đều hỗ trợ khả năng xem WebM VP8/VP9, dần dần thay thế cho các công nghệ nén video trả phí khác như H.264/H.265.

    Tham khảo

    0 Bình luận

    Đề xuất

    Tìm Hiểu về Window.localStorage
    Tìm hiểu về localStorage trong HTML5 và cách sử dụng thông qua ...
    Tìm Hiểu về Strings trong Python
    Tìm hiểu về kiểu dữ liệu Strings và các phương thức thao tác trên ...
    20/03/2015

    Khám phá

    Tìm Hiểu về Tuples trong Python
    Tìm hiểu kiểu dữ liệu Tuples trong Python.
    25/03/2015
    Một Số Kiến Thức Điện Tử Cơ Bản
    Tìm hiểu 1 số kiến thức điện cơ bản trước khi bắt đầu tìm hiểu sâu về ...
    Linear Search - Tìm Kiếm Tuyến Tính
    Tìm hiểu về Linear Search - tìm kiếm tuyến tính qua code mẫu.
    Tìm Hiểu về fstream
    Kiến thức về file là một trong những kiến thức quan trọng đối với các ...
    11/05/2015
    Tìm Hiểu về Window.sessionStorage
    Hướng dẫn sử dụng sessionStorage với JavaScript thông qua code ví dụ.
    Lập Trình Hiệu Ứng Trong Cocos2d-x 3.x.x
    Bài viết nằm trong loạt bài viết của chương trình Tự Học Cocos2d-x ...
    Affiliate Marketing là gì?
    Tìm hiểu về cách thu lợi từ cộng đồng của bản thân đã gầy dựng và phát ...
    Tìm Hiểu về Game Loop - Vòng Lặp Game
    Game loop là 1 vòng lắp được lặp đi lặp lại liên tục, giữ cho game vận ...
    Khi bạn nhấn vào liên kết sản phẩm do STDIO đề xuất và mua hàng, STDIO có thể nhận được hoa hồng. Điều này hỗ trợ STDIO tạo thêm nhiều nội dung hữu ích. Tìm hiểu thêm.
    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020