Tôi muốn gắn thẻ video rõ ràng là bt.601, thay vì "không xác định". Tôi biết người chơi thường chọn bt.601 làm mặc định cho các video có chiều rộng dưới 1280 pixel, nhưng tôi muốn làm rõ rằng bt.601 là ma trận màu chính xác cho video.
Điểm gắn bó là không có bt601
tùy chọn cho ffmpeg hoặc libx264, chỉ có bt709 và một số người khác.
Tôi có một số video được hạ thấp từ HD và vẫn ở bt.709, nhưng không được gắn thẻ đúng. Vì vậy, khi tôi xem video, đôi khi tôi phải tự chuyển trình phát của mình sang bt.709 . Gắn thẻ rõ ràng là bt.601 sẽ liên lạc với những người xem trong tương lai (ví dụ như bản thân tôi) rằng đó chắc chắn là bt.601, và không phải là video bt.709 được gắn thẻ sai khi tôi xem nó mediainfo
.
Một trường hợp sử dụng khác cho trường hợp này là nếu bạn nâng cao video bt.601 lên 1280 hoặc cao hơn mà không thực hiện chuyển đổi colormatrix (sử dụng -vf colormatrix
), người chơi sẽ giả sử bt.709 không chính xác nếu bạn để thông tin màu không xác định.
colormatrix
Bộ lọc video của FFMpeg không hỗ trợ bt601
dưới dạng ma trận màu đầu vào hoặc đầu ra, nhưng cũng không đặt thẻ. (Vì nó không có tác dụng phụ là thiết lập các tùy chọn màu của ffmpeg, nên nó từ chối thậm chí hoạt động với src và giống như vậy -vf colormatrix=bt601:bt601
.)
ffmpg in -color_primaries bt709 -color_trc bt709 -colorspace bt709 out
sẽ gắn thẻ video đầu ra là sử dụng bt.709 cho yuv <-> rgb. Các thẻ kết thúc bên trong dòng bit video, không chỉ trong thùng chứa (vì đây dường như là một thứ dành riêng cho codec, không phải là vật chứa, ít nhất là cho các thùng chứa mp4 và mkv).
ví dụ: mediainfo
đầu ra:
Complete name : out.mkv
...
Writing application : Lavf57.14.100
Writing library : Lavf57.14.100
Video
ID : 1
Format : AVC
...
Writing library : x264 core 148 r2638+4 afcf21c
Encoding settings : cabac=1 / ref=8 / ...
Language : English
Default : Yes
Forced : No
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
Vì vậy bt.709 rất dễ gắn thẻ. Vấn đề là, tôi không thấy bt.601 ở bất cứ đâu. Là một trong những tên khác là bí danh cho nó, hoặc thực sự không có cách nào để xác định rõ ràng?
x264 --fullhelp output:
--colorprim <string> Specify color primaries ["undef"]
- undef, bt709, bt470m, bt470bg, smpte170m,
smpte240m, film, bt2020
--transfer <string> Specify transfer characteristics ["undef"]
- undef, bt709, bt470m, bt470bg, smpte170m,
smpte240m, linear, log100, log316,
iec61966-2-4, bt1361e, iec61966-2-1,
bt2020-10, bt2020-12
--colormatrix <string> Specify color matrix setting ["???"]
- undef, bt709, fcc, bt470bg, smpte170m,
smpte240m, GBR, YCgCo, bt2020nc, bt2020c
ffmpeg -h full
hiển thị cùng một bộ tùy chọn cho các tùy chọn màu của nó, -c:v libx264
bộ giải mã video của ffmpeg chuyển sang x264. Có bất kỳ bí danh nào trong số này cho bt.601 hoặc có ma trận màu tương đương về số không?
-color_primaries smpte170m -color_trc smpte170m -colorspace smpte170m
).