Hợp nhất các kênh RGB trong FFMPEG


0

Tôi có ba video thang độ xám, đại diện cho các kênh màu đỏ, xanh lá cây và xanh dương từ một video. Tôi trích xuất chúng bằng cách sử dụng extractplanes lọc và gửi chúng qua các đường ống khác nhau.

Bây giờ tôi muốn kết hợp chúng một lần nữa. Nhưng trong khi extractplanes đang hoạt động hoàn hảo, mergeplanes không phải là. Nỗ lực ban đầu của tôi là thế này:

[r][g][b] mergeplanes=0x001020 [output]

Điều này diễn giải các kênh RGB của tôi là YUV, đây không phải là điều tôi muốn. Nỗ lực tiếp theo của tôi là thế này:

[r][g][b] mergeplanes=0x001020:rgb24 [output]

Nhưng theo thông báo lỗi, Only planar formats with more than one component are supported. (Tương tự cho tất cả các định dạng pixel RGB và RGBA khác mà tôi đã thử.)

Có cách nào khác để đặt các kênh này lại với nhau không? Hoặc một số cách để thuyết phục mergeplanes để xuất RGB?

Câu trả lời:


0

Như thông báo lỗi, mergeplanes chỉ có thể xuất ra ở định dạng phẳng: nghĩa là tất cả các giá trị thành phần đầu tiên cùng nhau, sau đó tất cả các giá trị thành phần thứ hai cùng nhau, v.v. Các định dạng RGB của FFMPEG là không phẳng: chúng nhóm các giá trị theo pixel, không theo thành phần. Vì thế mergeplanes không thể làm việc với họ.

Tuy nhiên, FFMPEG không hỗ trợ định dạng GBRP (Green-Blue-Red Planar). Vì vậy, bạn có thể có mergeplanes xuất sang đó, sau đó chuyển đổi sang RGB từ đó. Chỉ cần thay đổi thứ tự của các thành phần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.