Để hỗ trợ nhiều trình duyệt, bạn cần sử dụng FFmpeg để chuyển đổi .mov
thành hai vùng chứa khác nhau: một vùng chứa MP4 và một vùng chứa WebM. Ngang bằng
bạn nên chỉ định một bộ mã hoá và giải mã cùng lúc. Hiện tại,
chúng ta sẽ cho phép FFmpeg sử dụng chế độ mặc định.
Nếu bạn mới biết đến những khái niệm này, hãy tham khảo Thông tin cơ bản về tệp nội dung nghe nhìn trước khi tìm hiểu thêm. Ngoài ra, nếu bạn chưa cài đặt FFmpeg, hãy đọc Kiến thức cơ bản về ứng dụng đa phương tiện để thiết lập Docker.
Chúng tôi đang sử dụng đề xuất cài đặt Docker và
tệp glocken.mov trong mục Chuẩn bị tệp đa phương tiện cho web
đã thêm vào thư mục media
. Chúng tôi sử dụng FFmpeg phiên bản 4.3.2 cho tất cả
trong phần này.
Vùng chứa
Trước tiên, chúng ta cần tạo 2 vùng chứa từ tệp .mov
có .mp4
và .webm
đuôi tệp có cả luồng âm thanh và video bên trong tệp.
Xem bài viết Thông tin cơ bản về tệp nội dung nghe nhìn
để biết thêm thông tin về vùng chứa và luồng, nếu bạn không biết sự khác nhau giữa
chúng.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
WebM
/media # ffmpeg -i glocken.mov glocken.webm
WebM mất nhiều thời gian tạo hơn MP4. Không có gì bất ngờ khi bạn nhìn vào
kết quả. Trong khi MP4 nén xuống còn khoảng 83%
dung lượng của tệp gốc
, WebM sẽ giảm xuống còn 78%
so với kích thước ban đầu, nhưng có thể nhỏ hơn nhiều.
Kết quả của bạn sẽ khác. Bạn cần lưu ý rằng FFmpeg 4.2.2
đặt giá trị
tốc độ bit mặc định của video thành 200k
và trong 4.3.2
, tốc độ bit không được đặt tốc độ bit mặc định.
Nhờ vậy, video không còn chỉ là4%
một bản gốc. Bạn có thể tự xem
bằng cách sử dụng lệnh bas ls -a
trong thư mục chứa các tệp đa phương tiện của bạn.
Ví dụ:
/media # ls -l
-rw-r--r-- 1 root root 12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root root 10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root root 9503301 Mar 7 18:30 glocken.webm
Để tải một tệp nhỏ, bạn làm như sau:
/media # ffmpeg -i glocken.mov -b:v 200k glocken.webm
...
frame= 300 fps=3.6 q=0.0 Lsize= 483kB time=00:00:10.01 bitrate= 395.0kbits/s speed=0.121x
video:359kB audio:117kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.356068%
/media # ls -l
-rw-r--r-- 1 root root 12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root root 10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root root 494497 Mar 7 18:45 glocken.webm
Kiểm tra thành phẩm của bạn
Để xác minh kết quả của bạn, hãy sử dụng FFmpeg và Shaka Packager như đã hiển thị trong Kiến thức cơ bản về ứng dụng đa phương tiện:
/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4
Bộ mã hoá và giải mã
Tiếp theo là bộ mã hoá và giải mã. Như đã nêu trong phần Kiến thức cơ bản về tệp nội dung nghe nhìn, một bộ mã hoá và giải mã
không giống với vùng chứa (loại tệp). Hai tệp của cùng một vùng chứa
có thể chứa dữ liệu được nén bằng các bộ mã hoá và giải mã khác nhau. Ví dụ: định dạng WebM
cho phép mã hoá âm thanh bằng Vorbis hoặc Opus. Để thay đổi bộ mã hoá, chúng ta
sử dụng FFmpeg. Ví dụ: lệnh này sẽ xuất ra một tệp .mkv
có âm thanh vorbis
và một bộ mã hoá và giải mã video av1
.
/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv
Trong ví dụ này, cờ -c:a
và -c:v
dùng để chỉ định âm thanh và
bộ mã hoá và giải mã video tương ứng.
Trang Chuyển đổi nội dung nghe nhìn có danh sách các lệnh cần thiết để chuyển đổi bộ mã hoá và giải mã. Các bảng dưới đây tóm tắt các thư viện được sử dụng trong FFmpeg để thực hiện chuyển đổi bộ mã hoá và giải mã cho các tệp WebM và MP4. Đây là những nên sử dụng các định dạng tương ứng cho DASH (Truyền phát thích ứng động qua HTTP) và HLS (Phát trực tuyến dựa trên HTTP).
Video
Bộ mã hoá và giải mã | Phần mở rộng | Thư viện |
---|---|---|
av1 | WebM, mkv | libaom-av1 |
h264 | MP4 | libx264 |
vp9 | WebM | libvpx–vp9 |
Âm thanh
Bộ mã hoá và giải mã | Phần mở rộng | Thư viện |
---|---|---|
aac | MP4 | aac |
công trình | WebM | cung thiên bình |
Vorbis | WebM | libvorbis |
Tiếp theo, chúng tôi sẽ hướng dẫn bạn cách thay đổi tốc độ bit của các tệp mới tạo.