Từ điển

Time base là gì?

Nếu bạn đã tìm thấy một giá trị cho Time Base trong tệp của mình, chắc chắn bạn sẽ muốn biết nó có ý nghĩa gì. Tìm hiểu thông tin mà chúng tôi đã thu thập về siêu dữ liệu Time Base.

time-base

Time Base là đơn vị thời gian mà một luồng dùng để đếm. Thay vì lưu dấu thời gian (timestamp) theo giây, một tệp media đếm theo từng nhịp (tick) của đồng hồ riêng, và time base cho biết mỗi nhịp đó dài bao lâu. Nó được viết dưới dạng một phân số của một giây.

Những tệp nào chứa nó và giá trị đó đến từ đâu

Bạn sẽ thấy time base trên từng luồng riêng lẻ bên trong tệp media - hình ảnh, âm thanh và mọi phụ đề trong các tệp MP4, MOV, MKV, WebM, AVI và các luồng truyền tải MPEG, cũng như trong các tệp âm thanh độc lập. Mỗi luồng có time base riêng, nên âm thanh và video trong cùng một tệp thường đếm theo các đơn vị khác nhau.

Giá trị này được chọn bởi bộ mã hóa (encoder) hoặc chương trình tạo ra tệp. Một số định dạng container yêu cầu một time base cụ thể và cố định luôn giá trị đó; khi định dạng cho phép tự chọn, chương trình ghi tệp sẽ chọn một giá trị phù hợp với nội dung, và tệp có thể chỉ dùng đúng giá trị mặc định của chương trình đó.

Giá trị trông như thế nào

Nó luôn là một phân số, và mẫu số là số nhịp (tick) trên một giây:

  • 1/1000 - một mili giây cho mỗi nhịp, lựa chọn thường gặp trong các tệp Matroska và WebM
  • 1/90000 - được dùng từ lâu trong các luồng truyền tải MPEG
  • 1/48000 - các luồng âm thanh thường đếm theo mẫu (sample), nên time base khớp với tần số lấy mẫu
  • 1/12800 - một giá trị thường thấy trên các luồng video trong tệp MP4

Để đổi một dấu thời gian sang giây, hãy nhân nó với phân số. Một presentation timestamp là 12800 trong một luồng có time base 1/12800 nghĩa là chính xác ở giây thứ nhất; với time base 1/1000, một dấu thời gian là 3500 nghĩa là ở giây thứ ba rưỡi. Đó là lý do tại sao các dấu thời gian thô trong báo cáo trông như những con số khổng lồ - chúng là số nhịp, không phải số giây. Các ứng dụng cũ đôi khi còn in thêm một dòng Codec Time Base riêng bên cạnh dòng này.

Tại sao nó quan trọng

Mọi thứ trong một tệp media đều xảy ra tại một số nguyên nhịp, nên time base quyết định độ chi tiết về thời gian mà luồng đó có thể biểu diễn. Nếu một khung hình hoặc một mẫu rơi vào giữa hai nhịp, dấu thời gian của nó phải được làm tròn, và lỗi làm tròn sẽ cộng dồn.

Đó là một vấn đề thực sự với các tốc độ khung hình video không phải số nguyên. Ở tốc độ phát sóng 30000 khung hình mỗi 1001 giây, một khung hình kéo dài hơi hơn 33 mili giây nhưng không phải một số nguyên mili giây, nên một time base theo mili giây không thể đặt chính xác bất kỳ khung hình nào. Một time base có nhiều nhịp trên giây hơn - tức mẫu số của phân số lớn hơn - có thể rơi chính xác vào mọi ranh giới khung hình, đó là lý do các bộ mã hóa ưa dùng các giá trị như 1/12800 hoặc 1/90000 hơn là mili giây thuần túy.

Hệ quả thể hiện dưới dạng lỗi căn thời gian hơn là thứ bạn có thể thấy trong một khung hình đơn lẻ: âm thanh từ từ lệch nhịp với hình ảnh, khoảng cách khung hình không đều, một điểm cắt hoặc thao tác tua đến hơi lệch vị trí. Ghép các tệp mà luồng của chúng đếm theo những time base khác nhau nghĩa là mọi dấu thời gian đều phải được đổi tỉ lệ, và việc chuyển đổi đó là một nguồn lỗi đồng bộ kinh điển. Trường này tự thân không ảnh hưởng đến chất lượng hình ảnh hoặc âm thanh, và không chứa thông tin cá nhân.

Meta Keys